
我想完全理解使用環境amsmath
和cases
使用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
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,數組拉伸為 1.2