LaTeX 数学制表:我们可以以这种方式使 alignat 工作吗?

LaTeX 数学制表:我们可以以这种方式使 alignat 工作吗?

下面第二个alignat说明了我的问题。

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat*}{2}
  a &= & b \\
    &  & + c
\end{alignat*}
\begin{alignat*}{2}
  a &= & b \\
    &  & + c \\
    &= \text{long expression}
\end{alignat*}
\end{document}

我想要等式的第三行不是改变前几行的间距。换句话说,我想要一个行为类似于tabbing环境的数学环境。有人能帮忙吗?

编辑:我上面展示的例子是一个简化的例子。在我的实际问题中,对应于的部分= b相当复杂。如果我们使用下面的 Werner 解决方案,我们将重复 中的整个复杂表达式\phantom{}。所以,我猜没有现成的类似制表符的环境?

我目前的解决方法是使用\hspace*{}代替\phantom{},手动调整位置。(我并不是说它更好。手动调整很烦人。)

编辑2:Werner 让我意识到,我大大简化了代码,因此\phantom{{}={}}简化代码是一个很好的解决方案。因此,下面的示例更准确地说明了我最初的问题:

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\begin{align*}
  a &= b [ c + d \\
    &\phantom{{}=b [ c} + e] \\
    &= \text{long expression}
\end{align*}
\end{document}

在这种情况下,(我认为)我们必须在 中重复上一行的一部分,当和很复杂\phantom时,这很烦人。正如我在上面的“编辑”中所说,我目前使用来避免在 中重复复杂的表达式。bc\hspace*phantom

答案1

有无数种方法可以实现这种一致性。以下仅列举两种:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\begin{alignat*}{2}
  a &={} && b \\
    &    && + c
\end{alignat*}

\begin{align*}
  a &= b \\
    &\phantom{{}={}} + c \\
    &= \text{long expression}
\end{align*}
\end{document}

答案2

为了让第三行不是影响您可以使用的前两个的间距\rlap{\text{long expression}},因此不需要更改该行之前的任何内容:

在此处输入图片描述

笔记:

  • 我还添加了一对花括号,如,{}+c以便将其+视为二元运算符。

代码:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat*}{2}
  a &= & b \\
    &  & {}+ c
\end{alignat*}
\begin{alignat*}{2}
  a &= & b \\
    &  & {}+ c \\
    &= \rlap{\text{long expression}}
\end{alignat*}
\end{document}

相关内容