数学模式的制表符?

数学模式的制表符?

我正在寻找与 同义的东西tabbing,但用于数学模式。

我读到这alignat*应该可以解决问题,但这似乎表现不同。例如:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\begin{alignat*}{2}
S_4^{t} &= \{&\langle rdi, r12, rax' \rangle \mid \langle rdi, r12, rax \rangle \in S_4~\wedge \\
&& rax' = \{ rax \mid rax > 0 \} \}\\
\end{alignat*}

\end{document}

第二行看起来是右对齐的,而我希望标记&彼此对齐,然后所有文本左对齐(如tabbing)。

有人可以修复此代码,或者建议替代方案吗?

答案1

按照数学缩进环境alignat提供了多个rl对齐对。由于您的第二个对齐旨在l对齐,因此您需要使用双 &&。第一个 & 跳过对齐对r的对齐列rl

在此处输入图片描述

笔记:

  • align环境还提供多个rl比对。然而alignat不是align在对齐对之间插入环境所占的额外空间rl。因此,对于需要在对齐点与环境之间留出间隔的情况,alignat需要手动插入这些间隔。
  • 另一种方法是使用array环境。但需要小心使用 删除列间距@{},并使用 确保关系运算符或二元运算符具有正确的间距,{}以使 TeX 认为运算符另一侧有一个元素。这会产生与上述相同的结果。

代码:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\begin{alignat*}{3}
S_4^{t} &= \{&&\langle rdi, r12, rax' \rangle \mid \langle rdi, r12, rax \rangle \in S_4~\wedge \\
        &    &&rax' = \{ rax \mid rax > 0 \} \}
\end{alignat*}

\[\begin{array}{l@{}l@{}l}
S_4^{t} &{}= \{&\langle rdi, r12, rax' \rangle \mid \langle rdi, r12, rax \rangle \in S_4~\wedge \\
        &      &rax' = \{ rax \mid rax > 0 \} \} \\
\end{array}\]
\end{document}

相关内容