考虑一下这个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@{}}
如果我使用它来将符号置于第一列的中心,就会发生这种情况。