
amsmath
環境を使用することcases
と、array
環境を使用してケース付きの関数を記述することの違いをすべて完全に理解したいと思います。
フォーラムの他の質問を読んだ後の私の現在の理解は次のとおりです。
array
左と右にパディングが付きます。これは{@{}ll@{}}
、この関連する質問。array
垂直方向の間隔の問題が発生するが、これはよく理解できない。この関連する質問。array
とはどちらもcases
、たとえば を使用して行間のスペースを変更できます\\[2ex]
。array
を使用するよりも、を使用する方が列の配置を変更するのがはるかに簡単ですcases
。- の左のブレースは
cases
の左のブレースよりも高いようですarray
。しかし、その理由がわかりません。 - 意味的には、使用の方
cases
が適切です。 cases
読み込みが必要ですamsmath
全体的に、 のデフォルトバージョンの方がcases
優れているようですが、array
よりカスタマイズ可能です。
私が見逃している他の違いはありますか? 環境の 1 つを使用してフォーマットできるが、他の環境ではフォーマットできないケースを含む関数の側面はありますか?
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
|x| =
\begin{cases}
x & \text{if}\ x\geq 0\\
-x & \text{if}\ x<0\\
\end{cases}.
\]
\end{document}
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
|x| =
\left\{\begin{array}{ll}
x & \text{if}\ x\geq 0\\
-x & \text{if}\ x<0\\
\end{array}\right..
\]
\end{document}
私が本当に知りたいのは、どちらの環境が優れているのか、そしてその理由は何かということです。私はarray
長年使用してきましたが、 に切り替えることを検討していますcases
。
答え1
cases
inのコードamsmath
は
\renewenvironment{cases}{%
\matrix@check\cases\env@cases
}{%
\endarray\right.%
}
\def\env@cases{%
\let\@ifnextchar\new@ifnextchar
\left\lbrace
\def\arraystretch{1.2}%
\array{@{}l@{\quad}l@{}}%
}
array
列指定が で{@{}l@{\quad}l@{}}
、配列ストレッチが 1.2 の場合も同様です。