如何轻松对齐方程中嵌套序列的元素?

如何轻松对齐方程中嵌套序列的元素?

我希望有一个方程,其中序列的每个下一个元素都位于新行上,并与前一个元素对齐,但在多个级别上。这就像 Lisp 代码中的对齐,但是以数学符号表示,而不是代码列表。

如果我使用align,它对一个级别来说很好,但是,如果我将它用于更多级别,其他级别将在第一级别对齐的最长行的末尾对齐。如果我aligned对每个其他级别的对齐实例都使用 ,它会起作用,但很快就会变得混乱。最后有一个演示。

如何轻松对齐嵌套序列的元素?这意味着不会有太多样板代码,例如每个对齐实例的环境。我想象弹性制表位会很好用,但我还没有在 LATEX 中找到并实现它们。

\documentclass{minimal}
\usepackage[paperwidth=5cm, paperheight=7cm]{geometry}
\usepackage{amsmath}

\begin{document}

\begin{align*}
    A = ( \  & \mathrm{stuff}, \\
        & \begin{aligned}
            ( \  & z, \\
                & \begin{aligned}
                    ( \  & 1, \\
                        & 2 \  ),
                \end{aligned} \\
                & a, \\
                & b \  ),
            \end{aligned} \\
            & \mathrm{stuff2} \  )
\end{align*}

\end{document}

在此处输入图片描述

答案1

在此处输入图片描述

可以通过以下方式NiceArray实现alignat*

\documentclass{book}

\usepackage{amsmath}
\usepackage{nicematrix}

\begin{document}
    
    \begin{minipage}[t]{2.5cm}
        
        with \verb|NiceArray|
        
        $\setlength{\arraycolsep}{0mm}
        \begin{NiceArray}[t]{l l l l l l}
            1 & & & & &
            \\
            & 2 & & & &
            \\
            & & 3 & & &
            \\
            & & & 4 & &
            \\
            & & & & 5 &
            \\
            & & & & & 6
        \end{NiceArray}$
    \end{minipage}%
    \hspace*{0.5cm}%
    \begin{minipage}[t]{2.5cm}
        
        with \verb|alignat*|
        
        \vspace*{-1.75\baselineskip}
        
        \begin{alignat*}{6}
            1 & & & & &
            \\
            & 2 & & & &
            \\
            & & 3 & & &
            \\
            & & & 4 & &
            \\
            & & & & 5 &
            \\
            & & & & & 6
        \end{alignat*}
    
    \end{minipage}
    
\end{document}

答案2

我更喜欢这个解决方案:nath 包提供\wall,它确保每一行都从其位置开始,除非它被其他行覆盖\wall或被取消\return,因此\wall\return可以嵌套。

\usepackage{nath}


\[
    A = ( \  \wall \mathrm{stuff}, \\
             ( \  \wall z, \\
                   ( \  \wall 1, \\
                        2 \  ), \return \\
                   a, \\
                   b \  ), \return \\
             \mathrm{stuff2} \  ) \\
\]

相关内容