ケースとアレイ環境

ケースとアレイ環境

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

casesinのコード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 の場合も同様です。

関連情報