将二元运算符对齐到关系符号的右侧的最​​佳方法是什么?

将二元运算符对齐到关系符号的右侧的最​​佳方法是什么?

我知道你通常会被告知要将二元运算符对齐到关系符号的右侧,如下所示(使用{align*}):

\begin{align*}
x={}&a+b+c\\
    &+d+e+f
\end{align*}

但是,如果这样做,让 + 与 a 完全齐平,看起来会更好吗(尽管更容易出错)?

\begin{align*}
x={}&a+b+c\\
    &{+}\: d+e+f
\end{align*}

(即使用大括号将“+”变成普通符号,并手动添加“+”和“d”之间的中等空格。)

编辑:我正试图完全按照规则 3.3.5b 中所说的那样,“在连词处断开并与第一个动词的右侧对齐”,第 46 页数学类型(1999 年更新版)。

答案1

首先,我想总结并讨论一下变体。

\begin{align*}
x={}&a+b+c\\
    &+d+e+f
\end{align*}

未对齐

TeX 在显示和文本样式中在二元运算符周围添加空格,因此将其+移动到右侧并破坏对齐。

cmhughes 的变体将+符号对齐。由于仅水平空间重要,因此示例使用\hphantom

\begin{align*}
x={}&a+b+c\\
    &\hphantom{a}+d+e+f
\end{align*}

加号对齐

等式右侧第一个二元运算符的对齐方式有点随意。也a可能是一个巨大的加法,将第二行移到右边距很远的地方。

我同意 MSC 的观点,即取消加号前的空格是有意义的。他删除了加号的二元运算符属性,并手动为以下操作数添加了空格:

\begin{align*}
x={}&a+b+c\\  
    &{+}\: d+e+f
\end{align*}

右侧对齐

也可以反过来实现,即删除二元运算符前面的空格:

\begin{align*}
x={}&a+b+c\\
    &\mskip-\medmuskip+ d+e+f
\end{align*}

这也可以作为宏实现:

\newcommand*{\leftbin}{%
  \nonscript\mskip-\medmuskip
  \mathbin
}

\begin{align*}
x={}&a+b+c\\
    &\leftbin+d+e+f
\end{align*}

它也可以用作\leftbin{+}。空格仅在文本和显示数学样式中添加。因此\nonscript使用(参见egreg的注释)。 \mathbin确保下一个数学原子或子公式被视为二元运算符。

答案2

我喜欢

\begin{align*}
   x&=a+b+c\\
    &\quad+d+e+f
\end{align*}

引用

答案3

这是一个有趣的话题。我总是:

\begin{align*}
x=&\ a+b+c\\
  &+ d+e+f
\end{align*}

但我不确定这是否有任何缺点。

相关内容