我不明白amsmath 引入的split
和aligned
环境之间的区别,所以我发布这个问题是为了收集可能存在的细微细节。 可以立即观察到的一件事是split
仅适用于两列,而aligned
适用于任意数量的列。 但它们在其他直接可见的方面相似:
- 两者都必须被包裹在另一个引入数学的环境中,比如
\begin{equation}...\end{equation}
\tag{...}
两者都只允许整个组使用一个标签,而不是每行一个标签(编辑:不确定我从哪里得到这种印象,事实上两者都不允许任何\tag
,尽管aligned
的朋友gathered
确实允许单个\tag
,如此处所述)
我搜索了此网站上有关这些环境之间可能存在哪些差异的现有问题。我确实找到了这个问题:(split, align) 和 (gather, aligned) 之间的区别?,尽管问题的标题和措辞如此,但大多数答案仅关注split
和aligned
环境本身之间的差异。
编辑:收集迄今为止注意到的差异。
就像一个答案上述问题指出,在
equation
环境内部(但不在gather
或align
环境内部),split
和aligned
环境与周围文本具有不同的垂直间距。正如该问题的另一个答案所指出的那样,当这些环境的主体变得非常长时,它们的水平位置开始出现分歧。
正如 Mico 在评论中指出的那样,用户指南第 3.7 节
amsmath
指出,aligned
(与和alignedat
一起gathered
)接受可选的[t]
或[b]
参数,用于明确垂直放置任何方程标签。split
不接受任何此类参数。正如 egreg 所指出的他的回答,
split
另一方面,将遵守包的tbtags
或(默认)centertags
选项amsmath
。而aligned
及其朋友则不会。正如 Mico 的评论所暗示的,但我没有立即理解,
split
不应该与同一显示行上的任何其他排版材料一起使用。另一方面,aligned
它的朋友可以自由地与其他未对齐的材料,甚至其他块aligned
等组合。它们将水平并列并垂直居中。我在下面的答案。
split
也许这已经穷尽了和之间的差异aligned
:但是如果其他人知道其他差异,请指出。
答案1
一个重要的区别是split
服从centertags
(默认)或tbtags
选项。下面是一个例子
\documentclass[twocolumn]{article}
\usepackage[
% tbtags,
% leqno,
]{amsmath}
\begin{document}
\begin{align}
a&=b\\
\begin{split}
c&=d+{}\\
&=e+{}\\
&=f
\end{split}\\
g&=h
\end{align}
\end{document}
现在与取消注释的情况相同tbtags
:
现在也leqno
取消了注释:
相反,aligned
将根据垂直对齐选项获得方程编号: 居中\begin{aligned}...\end{aligned}
, 位于顶部\begin{aligned}[t]...\end{aligned}
, 位于底部\begin{aligned}[b]...\end{aligned}
。因此,如果涉及方程编号,最好split
尽可能使用。(我很少使用方程编号,所以我通常不费心。)
答案2
我注意到了另一个不同点。根据 AMS 用户指南(我手上的 2.0 版第 6 页和第 29 页):
该
split
结构应该构成封闭结构的整个主体,除了\label
不产生可见材料的命令之外。该
split
环境旨在充当方程式的整个主体,或align
orgather
环境的整行。在同一封闭结构中,其前后不能有任何印刷材料:\begin{equation} \left\{ % <-- Not allowed \begin{split} ... \end{split} \right. % <-- Not allowed \end{equation}
然而,在我的测试中(在阅读这些文章之前进行),这个限制似乎现在经常不被执行。下面是一个例子没有工作:
\documentclass[]{article}
\usepackage{amssymb,amsmath}
\begin{document}
\begin{equation}
\begin{aligned}
y=0
\end{aligned}
\qquad
\left. \begin{aligned}
B'&=-\partial\times E,\\
E'&=\partial\times B - 4\pi j,
\end{aligned}
\right\}
\qquad \text{Maxwell’s equations}
\qquad
\begin{aligned}
x=0
\end{aligned}
\end{equation}
\begin{equation}
% \begin{split}
% y=0
% \end{split}
% \qquad
\left. \begin{split}
B'&=-\partial\times E,\\
E'&=\partial\times B - 4\pi j,
\end{split}
\right\}
\qquad \text{Maxwell’s equations}
\enspace
\begin{split}
x=0
\end{split}
\end{equation}
\end{document}
生成结果:
并且在日志中我们看到相关的错误消息:
软件包 amsmath 警告:无法在此处使用;(amsmath)尝试在输入第 31 行上
`split'
进行恢复。`aligned'
但是,如果从以前的源中删除注释,那么排版就会很好(并且日志中没有警告):
水平间距与 略有不同aligned
。我希望我能更好地理解为什么split
在第二种情况下,同一显示行上的多个 s 有效,但在第一种情况下无效。不过,很明显,文档说这不是它的预期用途,并且如第一个例子所示,不能指望它可靠地执行该用途。如果您想要一行上对齐的方程块以及其他材料(包括但不限于其他对齐块),您应该使用和aligned
朋友(alignedat
, gathered
)。
答案3
我是通过搜索引擎来到这里的。我想这可能仍然是一个被积极关注的问题,也许值得指出我在aligned
和之间发现的另一个区别split
。
我无法在文档中确认这一点,但split
似乎尊重周围环境中特定列的二进制对齐align
。如果想要为内部表达式组提供单独的标签,这可能会很有用。我无法让它与一起工作aligned
。
例如,在这个例子中,有两组内部表达式(顶部和底部),它们接收单独的标签,并且仍然可以遵守特定列中的相互对齐。这似乎很容易实现split
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
\begin{split}
a &= b \\
cc &= dd
\end{split} \\[2ex]
\begin{split}
z_{1} &= a + b + c + d \\
z_{\mathrm{LONGT}} &= x_1 + x_2 + x_3 + x_4 \\
z_{234} &= a + b + c + d \\
z_{56} &= a + b + c + d
\end{split} \\[2ex]
a &= b & c &= d & e &= f \\[2ex]
& & \begin{split}
z_{1} &= a + b + c + d \\
z_{\mathrm{LONG}} &= x_1 + x_2 + x_3 + x_4 \\
z_{234} &= a + b + c + d \\
z_{56} &= a + b + c + d
\end{split} \\[3ex]
& & g &= h & &
\end{align}
\end{document}