aligned
今天我发现了包的环境的存在。但是,从 amsldoc.pdf 第 3.7 节中提供的示例来看,amsmath
我看不出使用它代替环境有什么好处。特别是,因为我可以通过使用环境获得几乎相同的结果:array
array
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
\left.\begin{aligned}
B'&=-\partial\times E,\\
E'&=\partial\times B - 4\pi j,
\end{aligned}
\right\}
\qquad \text{Maxwell’s equations}
\end{equation*}
\begin{equation*}
\left.\begin{array}{l}
B'=-\partial\times E,\\
E'=\partial\times B - 4\pi j,
\end{array}
\right\}
\qquad \text{Maxwell’s equations}
\end{equation*}
\end{document}
给出输出
它们之间有什么区别?为什么在这种情况下一个比另一个更受青睐?
答案1
aligned
基本上为您提供了一系列r@{}l
列对;因此,列对中的两列之间没有间距。但是,有一个技巧可以调整事物,以便x&=y
在等号或任何其他关系符号周围提供正确的间距,而这些通常是需要对齐点的地方。
进行了一些控制,以使线条在垂直方向上不会太近,而 中没有这样做array
。下面是视觉比较。请注意 中必须做的不同之处array
:必须{}
在 之前添加=
并使用\dfrac
。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\!\begin{aligned}
a&=bbb & c&=\frac{x}{y} \\
aa&=bbbb & cc&=\frac{x}{y}
\end{aligned}
\]
\[
\begin{array}{@{}r@{}l@{\quad}@{}r@{}l@{}}
a&{}=bbb & c&{}=\dfrac{x}{y} \\
aa&{}=bbbb & cc&{}=\dfrac{x}{y}
\end{array}
\]
\end{document}
(由于历史原因,保留了\!
其中的故障amsmath
;但是,如果不需要进行比较,也不会造成太大损害。的较新版本amsmath
不需要它。)
总之,array
和aligned
是不同的工具,每个工具都有其优点和缺点,具体取决于要解决的问题:array
在单元格水平对齐方面更灵活,aligned
具有其他功能,使其在某些情况下更可取。别忘了alignedat
,它允许指定列对之间的水平空间。
还要注意的是align
和alignat
没有array
对应部分:array
人们无法用数字来编号(至少,很容易)。
答案2
请注意,在您的示例中,您没有使用对齐点&
对齐=
只是因为B
和E
恰好具有相同的宽度。如果您更改示例,例如使用W
或完全不同的表达式,那么您必须更加努力才能获得 周围的正确间距=
。
答案3
首先,请注意间距和两条线的挤压之间的差异。我不知道区分这两者的内部机制,但就使用而言,aligned 要简单得多,让我可以专注于方程而不是数组元素。在 amsmath 中的矩阵环境 bmatrix、pmatrix 和 vmatrix 中可以注意到类似的差异,而使用各种括号和数组环境手动创建此类矩阵则不行。