amsmath 的对齐环境与数组环境

amsmath 的对齐环境与数组环境

aligned今天我发现了包的环境的存在。但是,从 amsldoc.pdf 第 3.7 节中提供的示例来看,amsmath我看不出使用它代替环境有什么好处。特别是,因为我可以通过使用环境获得几乎相同的结果:arrayarray

\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不需要它。)

在此处输入图片描述

总之,arrayaligned是不同的工具,每个工具都有其优点和缺点,具体取决于要解决的问题:array在单元格水平对齐方面更灵活,aligned具有其他功能,使其在某些情况下更可取。别忘了alignedat,它允许指定列对之间的水平空间。

还要注意的是alignalignat没有array对应部分:array人们无法用数字来编号(至少,很容易)。

答案2

请注意,在您的示例中,您没有使用对齐点&对齐=只是因为BE恰好具有相同的宽度。如果您更改示例,例如使用W或完全不同的表达式,那么您必须更加努力才能获得 周围的正确间距=

答案3

首先,请注意间距和两条线的挤压之间的差异。我不知道区分这两者的内部机制,但就使用而言,aligned 要简单得多,让我可以专注于方程而不是数组元素。在 amsmath 中的矩阵环境 bmatrix、pmatrix 和 vmatrix 中可以注意到类似的差异,而使用各种括号和数组环境手动创建此类矩阵则不行。

相关内容