拆分和对齐有什么区别?

拆分和对齐有什么区别?

我不明白amsmath 引入的splitaligned环境之间的区别,所以我发布这个问题是为了收集可能存在的细微细节。 可以立即观察到的一件事是split仅适用于两列,而aligned适用于任意数量的列。 但它们在其他直接可见的方面相似:

  • 两者都必须被包裹在另一个引入数学的环境中,比如\begin{equation}...\end{equation}
  • \tag{...}两者都只允许整个组使用一个标签,而不是每行一个标签(编辑:不确定我从哪里得到这种印象,事实上两者都不允许任何 \tag,尽管aligned的朋友gathered确实允许单个\tag,如此处所述)

我搜索了此网站上有关这些环境之间可能存在哪些差异的现有问题。我确实找到了这个问题:(split, align) 和 (gather, aligned) 之间的区别?,尽管问题的标题和措辞如此,但大多数答案仅关注splitaligned环境本身之间的差异。

编辑:收集迄今为止注意到的差异。

  • 就像一个答案上述问题指出,在equation环境内部(但不在gatheralign环境内部),splitaligned环境与周围文本具有不同的垂直间距。

  • 正如该问题的另一个答案所指出的那样,当这些环境的主体变得非常长时,它们的水平位置开始出现分歧。

  • 正如 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环境旨在充当方程式的整个主体,或alignorgather环境的整行。在同一封闭结构中,其前后不能有任何印刷材料:

\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}

生成结果: LaTeX 输出

并且在日志中我们看到相关的错误消息:

软件包 amsmath 警告:无法在此处使用;(amsmath)尝试在输入第 31 行上`split'进行恢复。`aligned'

但是,如果从以前的源中删除注释,那么排版就会很好(并且日志中没有警告):

LaTex 输出

水平间距与 略有不同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}

在此处输入图片描述

相关内容