在对齐方程中使用 =& 的关系间距误差

在对齐方程中使用 =& 的关系间距误差

以下示例中的中间公式在符号周围的间距似乎不正确=。唯一的区别是我使用了=&来对齐=符号周围,而不是&=

这让我很担心,因为有时候我想模拟“多行方程”,并且我希望方程像那样对齐,但根本不加符号=

这是已知的、可解释的行为吗?也就是说,这是一个错误还是一个功能?

\documentclass{minimal}
\usepackage{amsmath}
\begin{document}
\[
 a=b
\]
 \begin{align*}
  a =& b\\
  c =& d
 \end{align*}
 \begin{align*}
  a &= b\\
  c &= d
 \end{align*}
\end{document}

输出

答案1

技术原因是align环境{}开始第二在每个对齐列中,但不将其添加到结尾第一的一。这样,当您写入 时,等号的行为就如同位于两个变量之间&=。老实说,我不明白为什么它不在第一个单元格中也添加一个;尽管它偶尔会改变间距(例如在写入 时=&),但它似乎从未以明显错误的方式这样做过。

正如其他人所建议的,您可以={}&在希望等号具有正确间距时进行书写。

答案2

这是一个功能,而且非常重要:对于绝大多数情况来说,它简单而高效,因为它经常align用于对齐关系符号处的连续行。有了它,&=您就能保证在=符号周围获得正确的间距。

另一方面,有时也需要“在等号后对齐”。有多种方法可以完成此任务。

例如,如果要对齐的等式的右边太长,则可以使用aligned

\begin{align}
a &= b\\
c &= \!\begin{aligned}[t]
     &axy+b\\
     &+y
     \end{aligned}
\end{align}

这绝不是一种“变通方法”:它正确地标记了人们将要实现的目标(除了可能确实算作小错误但也会存在语法的小调整=&)。

为什么 的开发者amsmath选择这个而不是=&? 嗯,一个原因是他们从 TeXbook 中借鉴了一些想法。 但更重要的是, 的许多案例都align遵循了模式

\begin{align}
x &= <some expression> \\
  &= <a development of that expression> \\
  &= <a further development>
\end{align}

语法=&会很麻烦。

在某些情况下,采用不同的对齐方式可能会很方便;我发现其中一些

a = {} &

解决了间距问题。

答案3

在对齐环境中,它被视为 A & B$A$ ${}B$这意味着如果你输入

\begin{align*}
 A  &  B  \\
 C  &  D
\edn{align*}

它实际输出的是一个包含四个项目的表格,例如

这就是 align 的工作原理。

至于你的问题,仅当其后有内容时才添加间距。如果“=”后面没有任何内容,则不会添加空格。

我也搞明白了为什么他们不在第一个单元格中添加 {} $A{}$ ${}B$。考虑A&=-B一下。如果在两个单元格中都添加 {},则“=”和“-”之间的间距会变大(空格被加了两次)。此外,“=”应该在右侧,否则减号会被识别为二​​元运算符,从而导致减号和 B 之间有额外的空格。

除了第一个之外,您看不到其他任何正确的间距。

在此处输入图片描述

在现实生活中,关系符号后面常常跟普通的,但要以普通/二进制/运算符来进行。因此作者建议“=”必须放在右边,以便“=”后面的字符能够被正确分类(Ord/Bin/Op)。

在我们的小例子中,只有当 Rel 在右边时,TeX 才能将减号理解为普通的而不是二进制的。

至于您的问题,如果您不介意手动调整间距,您可以使用A={} & B。或者您可以使用

A & = B \\
  &\phantom{\;=\;}C

\; 通常由 TeX 自动添加。

相关内容