我在 emacs/AucTex 中使用以下代码来对齐类似表格的环境:
(defun align-environment ()
"Apply align to the current environment only."
(interactive)
(save-excursion
(LaTeX-mark-environment)
(align (point) (mark))))
自动从:
\begin{align}
\begin{ZX}
Hello & foo\\
Bye & x
\end{ZX}
\end{align}
到
\begin{ZX}
Hello & foo \\
Bye & x
\end{ZX}
这对可读性有很大帮助。不幸的是,这对群体/环境来说非常不健壮。例如,对齐:
\begin{align}
\begin{ZX}
Hello & foo \\
Bye \begin{pmatrix}A & B \\ C & D\end{pmatrix} & x
\end{ZX}
\end{align}
会给我:
\begin{align}
\begin{ZX}
Hello & foo \\
Bye \begin{pmatrix}A & B \\ C & D\end{pmatrix} & x
\end{ZX}
\end{align}
代替
\begin{align}
\begin{ZX}
Hello & foo \\
Bye \begin{pmatrix}A & B \\ C & D\end{pmatrix} & x
\end{ZX}
\end{align}
类似地,这个:
\begin{align}
\begin{ZX}
Hello & foo \\
Bye {A & B \\ C & D} & x
\end{ZX}
\end{align}
将与以下项对齐:
\begin{align}
\begin{ZX}
Hello & foo \\
Bye {A & B \\ C & D} & x
\end{ZX}
\end{align}
代替
\begin{align}
\begin{ZX}
Hello & foo \\
Bye {A & B \\ C & D} & x
\end{ZX}
\end{align}
我甚至没有提到以下事情:
\begin{align}
\begin{ZX}
A & Hello & foo \\
{B \\ C} & Bye
\begin{pmatrix}
A & B \\
C & D
\end{pmatrix} & x
\end{ZX}
\end{align}
符合
\begin{align}
\begin{ZX}
A & Hello & foo \\
{B \\ C} & Bye
\begin{pmatrix}
A & B \\
C & D
\end{pmatrix} & x
\end{ZX}
\end{align}
代替
\begin{align}
\begin{ZX}
A & Hello & foo \\
{B \\ C} & Bye
\begin{pmatrix}
A & B \\
C & D
\end{pmatrix} & x
\end{ZX}
\end{align}
或者,最后一个例子,
\begin{align}
\begin{ZX}
A & B
\end{ZX} = & % RESET ALIGN
\begin{ZX}
A & B
\end{ZX}
\end{align}
已经很好地对齐了,并且不应该变成:
\begin{align}
\begin{ZX}
A & B
\end{ZX} = & % RESET ALIGN
\begin{ZX}
A & B
\end{ZX}
\end{align}
是否可以使对齐功能更加健壮?
奖金:我还希望能够发表评论,% RESET ALIGN
以便重置整个对齐。