案例與數組環境

案例與數組環境

我想完全理解使用環境amsmathcases使用array環境編寫帶有案例的函數之間的所有差異。

這是我在閱讀論壇中的其他問題後目前的理解:

  • array左側和右側都有填充物。可以使用{@{}ll@{}}以下方法來抑制它:這個相關問題
  • array創建我不完全理解的垂直間距問題。看這個相關問題
  • array和都cases允許使用例如 來更改行之間的間距\\[2ex]
  • 使用 更改列的對齊方式array比使用 更改要容易得多cases
  • 的左括號cases似乎比 的左括號高array。但我不明白為什麼。
  • 使用cases在語義上更合適。
  • cases需要載入amsmath

總的來說,預設版本似乎cases更好,但array更可自訂。

我還缺少其他差異嗎?函數的某個方面是否可以使用一種環境進行格式化,但不能使用另一種環境進行格式化?

\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,數組拉伸為 1.2

相關內容