相对于前一行对齐

相对于前一行对齐

我正在寻找一种方法来对齐单独的行,但始终相对于前一行中的某个标记。我的用例是以特定方式对齐数学环境中的方程式,但出于演示目的,让我首先使用以下几行来展示它:

----a----
a------b
c--b
d---c
e--d  

在这种情况下,我希望将每一行相对于前一行对齐,以使字母匹配:

----a----
    a------b
        c--b
    d---c
 e--d     

我确信使用表格可以做到这一点。但要使用表格来实现这一点,在我看来,您需要提前知道需要多少列(当您想要添加更多行时,这可能会发生变化),而我正在寻找一种灵活的解决方案,因为每一行都只需要参考前一行进行对齐。

或者我是否遗漏了有关表格的某些功能,而这些功能无法通过这种方式解决我的问题?


为了更具体一点,下面是我想用到的一个实例。代码如下:

\documentclass{article}


\begin{document}
    $$
    \phi(G\,a\,n) 
    \\ \phi \circ g (~\phi (a) [\overline n] ~)
    \\ \phi (a) [\overline n] 
    \\ \phi \circ g (\, \forall y. \, \phi(d)[z,y] \to \varphi[y] \, ) [\overline n]
    \\ (\forall y. \, \phi(d)[z,y] \to \varphi[y] \, )[\overline  n]
    \\ \forall y. \, \phi(d)[\overline n,y] \to \varphi[y]
    \\ \forall y. \, \overline{\Delta \,n} = y \to \varphi[y]
    \\ \varphi[\overline{\Delta \,n}]
    \\ \varphi[\overline{G \,n \,n}]
    $$  
\end{document}

外观:

在此处输入图片描述

我希望它看起来是这样的:

是的,这是使用了很多“~”来完成的。我希望这能让你明白我为什么要寻找更好的解决方案

答案1

  • 正如我在评论中提到的,尝试使用amsmath环境align和/或alignat
\documentclass{article}
\usepackage{mathtools}

\begin{document}
With \verb+align+ and insert spaces before last two rows:
\begin{align*}
    &   \phi(G\,a\,n)                       \\
    &   \phi \circ g (~\phi (a) [\bar{n}])  \\ 
    &   \phi (a) [\overline n]              \\ 
\phi \circ g (\, \forall y. \, \phi(d)[z,y] 
    & \to  \varphi[y] \, ) [\bar{n}]                   \\ 
(\forall y. \, \phi(d)[z,y]
    & \to  \varphi[y] \, )[\bar{n}]                    \\ 
\forall y. \, \phi(d)[\bar{n},y]
    & \to  \varphi[y]\quad                             \\ 
\forall y. \, \overline{\Delta \,n} = y
    & \to  \varphi[y]\                                   \\ 
    &\quad\ \varphi[\overline{\Delta \,n}]              \\ 
    &\quad\ \varphi[\overline{G \,n \,n}]
\end{align*}
or with \verb+alignat+
\begin{alignat*}{3}
    &   \mathrlap{\phi(G\,a\,n)}                        \\
    &   \mathrlap{\phi \circ g (~\phi (a) [\bar{n}])}   \\
    &   \mathrlap{\phi (a) [\overline n]}               \\
\phi \circ g (\, \forall y. \, \phi(d)[z,y]
    & \to && \varphi[y] \, ) [\bar{n}]                  \\
(\forall y. \, \phi(d)[z,y]
    & \to {} && \varphi[y] \, ) [\bar{n}]                  \\
\forall y. \, \phi(d)[\bar{n},y]
    & \to && \varphi[y]\quad                            \\
\forall y. \, \overline{\Delta \,n} = y
    & \to && \varphi[y]\                                \\
    &&& \varphi[\overline{\Delta \,n}]                  \\
    &&& \varphi[\overline{G \,n \,n}]
\end{alignat*}

\end{document}
  • 因为mathrlap你需要加载mathtools
  • 在 LaTeX 文档中不要使用 $$` 作为数学分隔符

在此处输入图片描述

相关内容