我如何才能对齐多个对齐的环境?

我如何才能对齐多个对齐的环境?

我有这个方程式:

\begin{align}
  \begin{aligned}
    x&=y & z&=w & k&=j \\
    a&=b & c&=d & e&=f \\
  \end{aligned}
  \\
\begin{aligned}
    x+a&=y+b & z+c&=w+d & z+x&=b \\
    a+q&=b+w & c+e&=d+r & e+t&=f+y \\
\end{aligned}
\end{align}

我希望所有列都彼此对齐,如下例所示:

在此处输入图片描述

我曾尝试用以下可怕的方式手动调整空间:

\begin{align}
 x&=y & z&=w & k&=j\nonumber\\[-.25\baselineskip]
 \\[-.75\baselineskip]
 a&=b & c&=d & e&=f
 \nonumber\\
 x+a&=y+b & z+c&=w+d & z+x&=b\nonumber\\[-.25\baselineskip]
 \\[-.75\baselineskip]
 a+q&=b+w & c+e&=d+r & e+t&=f+y\nonumber
\end{align}

是否有 TeXnician 解决方案可以做到这一点?

答案1

您需要捕获每个方程中最宽元素的宽度。然后您可以使用这些宽度在宽度较小的元素之间强制对齐。

下面我稍微修改了一下eqparboxvia存储每个ged 框\eqmathbox[<tag>][<align>]{<math>}的最大宽度,内容各不相同。在框内,您可以根据需要更改 ment(eft、entre 或ight)。<tag><math><align>lcr

在此处输入图片描述

\documentclass{article}

\usepackage{eqparbox,xparse,amsmath}

% https://tex.stackexchange.com/a/34412/5764
\makeatletter
\NewDocumentCommand{\eqmathbox}{o O{c} m}{%
  \IfValueTF{#1}
    {\def\eqmathbox@##1##2{\eqmakebox[#1][#2]{$##1##2$}}}
    {\def\eqmathbox@##1##2{\eqmakebox{$##1##2$}}}
  \mathpalette\eqmathbox@{#3}
}
\makeatother

\begin{document}

\begin{gather}
  \begin{aligned}
    \eqmathbox[ll][r]{x} &= \eqmathbox[lr][l]{y} & 
      \eqmathbox[cl][r]{z} &= \eqmathbox[cr][l]{w} & 
      \eqmathbox[rl][r]{k} &= \eqmathbox[rr][l]{j} \\
    a &= b & c &= d & e &= f \\
  \end{aligned}
  \\
  \begin{aligned}
    x + a &= \eqmathbox[lr]{y + b + c} & 
      \eqmathbox[cl]{z + c + e} &= w + d & 
      z + x &= \eqmathbox[rr]{b + i + j} \\
    \eqmathbox[ll]{a + q + d} &= b + w & 
      c + e &= \eqmathbox[cr]{d + r + o} &
      \eqmathbox[rl]{p + e + t} &= f + y
  \end{aligned}
\end{gather}

\end{document}

相关内容