考虑以下 MWE
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
&abcde \\
&= vwxyz
\end{align*}
\end{document}
这产生了
我想将顶行的开头(“a”)与底行表达式的开头(“v”)对齐。
我尝试移动“=”后的对齐字符,但它弄乱了等号周围的间距:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
&abcde \\
=& vwxyz
\end{align*}
\end{document}
我也尝试使用幻影“=”,但它似乎只考虑等号本身的宽度,而不是它周围的间距:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
&\phantom{=} abcde \\
&= vwxyz
\end{align*}
\end{document}
实现这一目标的正确方法是什么?
答案1
不幸的是,SE 的典型答案是“如何做”,而不是“为什么”。我试图填补这个空白。
LaTeX 对齐环境的工作原理(粗略地说)类似于
\halign{\hfil$\displaystyle{#}$&$\displaystyle{{}#}$\hfil\cr ...data&data... \cr}
这意味着第一列由 设置,$\displaystyle{data}$
而第二列由 设置$\displaystyle{{}data}$
。这里的 emtpy 组{}
创建一个 Ord 类型的空数学原子。这个想法是从 Plain TeX 宏中复制而来的。
如果data
第二列是=abc
,则结果为{{}=abc}
。等号创建一个 Rel 类型的原子。我们在这里看到 Ord Rel Ord Ord Ord。Ord-Rel 对\thickmuskip
在它们之间留有空间,而 Rel-Ord 也留有相同的空间,因此我们在等号周围留有空间。
如果data
第一列中的 为 ,=
则我们有{=}
,它会在原子核中产生等号的 Ord 原子,且没有间距。但如果 为 ,data
则={}
我们有{={}}
,即 Rel-Ord ,这会\thickmuskip
在 Rel 和 Ord 之间产生间距。
数学原子之间的间距使用 TeXbook 第 170 页给出的表格进行控制。你可以在这个文件在第 3 页。