如何在多个对齐环境中保持一致?

如何在多个对齐环境中保持一致?
\documentclass[letterpaper,10pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
w &z &t
\end{align}
\begin{align}
w+w+w+w &z+z+z+z &t+t+t+t
\end{align}
\end{document}

就其本身而言,这些列的对齐方式会有所不同。有没有办法让不同对齐环境中的至少部分对齐方式保持一致?

答案1

如果您无法使用\intertext,则需要确定每个比对周围最宽的元素。捕获这些“最宽元素”的最简单方法是使用eqparbox。下面我定义\eqmathbox[<tag>][<align>]{<stuff>}将其内容<stuff>放在一个宽度最大的盒子中,所有内容都<tag>以特定的<align>宽度显示。

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath,eqparbox,xparse}

% 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

\usepackage{lipsum}

\begin{document}
\lipsum*[1]
\begin{align}
  \eqmathbox[left][r]{w} &\eqmathbox[centre][l]{z} & \eqmathbox[right][r]{t}
\end{align}
\lipsum*[2]
\begin{align}
  \eqmathbox[left][r]{w+w+w+w} & \eqmathbox[centre][l]{z+z+z+z} & \eqmathbox[right][l]{t+t+t+t}
\end{align}
\lipsum*[3]

\end{document}

对齐选择与 R &L &R &L ... 样式相匹配align

因为eqparbox使用类似 TeX 的\label系统\ref来管理长度,所以每次更改最宽元素时都需要至少编译两次<tag>

相关内容