\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>
。