我可以(子)对齐多行方程中的部分线(但不是全部线)吗?

我可以(子)对齐多行方程中的部分线(但不是全部线)吗?

我有一个多行方程,希望其中的一些行与附加符号对齐。下面是一个例子,其中所有行都与等号对齐,但第 2 行和第 3 行还应与乘号对齐:

y = a + b + c +
    (5 - 3)   x (10 - 5) +
    (10 - 30) x (10 - 1) +
    e + f + g + h

目前我使用

\begin{align}
  \begin{split}\label{mylabel}
    y ={}&a + b + c +
         &(5 - 3) \times (10 - 5) +
         &(10 - 30) \times (10 - 1) +
         &e + f + g + h
  \end{split}
\end{align}

将等式与等号后面的等式对齐。

有没有办法在\times第 2 行和第 3 行添加对齐,而无需强制将整个第一行和最后一行“放在对齐的一侧”?

答案1

您可以使用alignedalignedat

示例输出

\documentclass{article}

\usepackage{amsmath}

\begin{document}

\begin{align}
  \begin{split}\label{mylabel}
    y &= a + b + c\\
         &\quad
         \!\begin{alignedat}[t]{2}
           &+ (5 - 3) &&\times (10 - 5) \\
           &+ (10 - 30) &&\times (10 - 1) \\
         \end{alignedat}\\
         &\quad + e + f + g + h
  \end{split}
\end{align}

\end{document}

alignedat提供了多对列,第一对列右对齐,下一对列左对齐,等等。环境前会自动插入一个标准的小空格,我用负片细空格将其取消\!

我保留了你的外部,aligned假设你有充分的理由这样做,但equation在这个具体案例中看起来更合适。此外,我还将二元运算符相对于换行符移动,以提供更标准的外观。如果你真的想把它们放在行尾,那么你必须+{}\\每次都写一遍才能得到正确的间距:

\begin{align}
  \begin{split}\label{mylabel}
    y ={}& a + b + c +{}\\
         &
         \!\begin{alignedat}[t]{2}
           &(5 - 3) &&\times (10 - 5) +{}\\
           &(10 - 30) &&\times (10 - 1) +{}\\
         \end{alignedat}\\
         &e + f + g + h
  \end{split}
\end{align}

但这不是拆分此类方程的标准方法。

相关内容