如何在 `amsmath` 的 `align` 环境中指定内容的对齐方式?

如何在 `amsmath` 的 `align` 环境中指定内容的对齐方式?

考虑一下这个MWE:

\documentclass[preview]{standalone}

\usepackage{amsmath}

\begin{document}
    \begin{align*}
        &\phantom{\rightarrow} & \text{2nd-order mechanics} \\
        &\rightarrow & \text{non-negligible inertia} \\
        &\rightarrow & \text{directional migration} 
    \end{align*}

    \begin{align*}
        &\phantom{\rightarrow} & \text{rule: decaying persistence memory} & \\
        &+ & \text{rule: increase persistence after collision} & \\
        &\rightarrow & \text{directional migration} &
    \end{align*}
\end{document}

输出:

在此处输入图片描述

我希望最终结果是这样的:

    2nd-order mechanics 
--> non-negligible inertia 
--> directional migration 

    rule: decaying persistence memory  
 +  rule: increase persistence after collision  
--> directional migration 

这两个例子略有不同,因为在第二个例子中environment,我想确保 s\rightarrow+在其环境中视觉上处于中心位置(将该列的对齐方式设置为居中)?

在这两个例子中,我希望文本本身在其列中左对齐。

我该如何强制执行此行为?还是我使用了错误的工具?我可以使用表格(例如,参见):

\documentclass[preview]{standalone}

\usepackage{amsmath}

\begin{document}
    \begin{tabular}{cl}
        $\phantom{\rightarrow}$ & 2nd-order mechanics \\ 
        $\rightarrow$ & non-negligible inertia \\
        $\rightarrow$ & directional migration  
    \end{tabular} 

    \begin{tabular}{cl}
        $\phantom{\rightarrow}$ & rule: decaying persistence memory \\ 
        $+$ & rule: decaying persistence memory \\
        $\rightarrow$ & directional migration  
    \end{tabular} 
\end{document}

在此处输入图片描述

答案1

像这样?

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\begin{document}
    \begin{align*}
         & \text{2nd-order mechanics} \\
    \to{}& \text{non-negligible inertia} \\
    \to{}& \text{directional migration} \\[2ex]
         & \text{rule: decaying persistence memory}\\
    {}+{}& \text{rule: increase persistence after collision} \\
    \to{}& \text{directional migration}
    \end{align*}
\end{document}

请注意,此答案中的代码在上组和下组中仅使用一个基于 & 的对齐点。(相比之下,您的设置具有两个甚至三个 & 对齐点。)请注意,在和中都存在-{}称为“空数学组” 。空数学组对于获得适合关系运算符(例如(又名))和二元运算符(例如)的水平间距至关重要。(要验证这一点,请运行答案\to{}{}+{}\to\rightarrow+没有空的数学组,看看会发生什么。)最后,为什么有必要提供空的数学组,+但只有一个,\to才能获得正确的间距?原因在于amsmath包在遇到实例时选择实现对齐操作的方式&。(如果您真的想知道 LaTeX 如何处理这些对齐操作,请提出一个新问题。)


或者,考虑采用一个array环境。

在此处输入图片描述

\documentclass{article}
\usepackage{array}
\newcolumntype{L}{>{$}l<{$}}
\newcolumntype{C}{>{{}}c<{{}}}

\begin{document}
\[
\setlength\arraycolsep{0pt}
\renewcommand\arraystretch{1.33}
\begin{array}{CL}
         & 2nd-order mechanics \\
    \to  & non-negligible inertia \\
    \to  & directional migration \\[2ex]
         & rule: decaying persistence memory\\
    +    & rule: increase persistence after collision \\
    \to  & directional migration
\end{array}
\]
\end{document}

答案2

下面是一个解决方案,展示了我的评论中所说的内容(在前两个对齐中),并为这种奇怪的对齐使用方法创建了一个环境:

\documentclass{article}
\usepackage{environ}
\usepackage{amsmath}


\NewEnviron{strangealign}{\def\ra{\rightarrow\,\hspace{60pt}}\def\pl{+\,\,\hspace{60pt}}\begin{align*}\BODY\end{align*}}



\begin{document}
    \begin{align*}
        & \text{2nd-order mechanics} \\
        \rightarrow\hspace{10pt} & \text{non-negligible inertia} \\
        \rightarrow\hspace{10pt} & \text{directional migration} 
    \end{align*}

    \begin{align*}
        & \text{rule: decaying persistence memory}  \\
        +\,\,\hspace{40pt}& \text{rule: increase persistence after collision}  \\
        \rightarrow\,\hspace{40pt}& \text{directional migration} 
    \end{align*}

    \begin{strangealign}
      &\text{Initial text}\\
      \pl&\text{Some text here}\\
      \ra&\text{Some other text left aligned}
    \end{strangealign}
\end{document}

输出:

在此处输入图片描述

答案3

这是一份工作tabular

\documentclass{standalone}
\usepackage{amsmath}

\newcommand{\tra}{\ensuremath{\rightarrow}}% text right arrow

\begin{document}

\begin{tabular}{@{}r@{ }l@{}}
     & 2nd-order mechanics \\
\tra & non-negligible inertia \\
\tra & directional migration
\end{tabular}

\qquad\vrule\qquad

\begin{tabular}{@{}r@{ }l@{}}
     & rule: decaying persistence memory \\
+    & rule: increase persistence after collision \\
\tra & directional migration
\end{tabular}

\end{document}

垂直线只是为了分隔两个表格。

在此处输入图片描述

\begin{tabular}{@{}c@{ }l@{}}如果我使用它来将符号置于第一列的中心,就会发生这种情况。

在此处输入图片描述

相关内容