Auctex:将表格与嵌套组对齐的强大方法

Auctex:将表格与嵌套组对齐的强大方法

我在 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以便重置整个对齐。

相关内容