在对齐环境中抑制一行上的 =

在对齐环境中抑制一行上的 =

如何在align环境中生成以下内容?

\begin{eqnarray*}& & abcd \\
&=& defg\\
&=& hijk
\end{eqnarray*}

我尝试

\begin{align*}&  abcd \\
&= defg\\
&= hijk
\end{align*}

但结果并不是我想要的。

答案1

为了避免猜测空间,您可以使用

\begin{align*}
  &\mathrel{\phantom{=}} abcd \\
  &= defg\\
  &= hijk
\end{align*}

答案2

这里你得到了第五个解决方案,这表明你想要做的事情确实有点棘手align

\documentclass{article}
\usepackage{amsmath}

\begin{document}
\begin{align*}
     & abcd \\
 ={} & defg \\
 ={} & hijk 
\end{align*}
\end{document}

技巧:如果左栏中有=,那么您需要在它后面放置一些内容以获得正确的间距。

答案3

这有点作弊,但在您的示例文档中,以下操作也有效:

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

 \begin{align*}
    a&bcd \\
  = d&efg \\
  = h&ijk
 \end{align*}

\end{document}

为什么?因为我知道 a、d 和 h 的宽度都一样。这个技巧出奇地具有普遍性。

另一个解决方案给出几乎相同的结果eqnarray

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

 \begin{equation*}
  \begin{aligned}
   & & abcd \\
   &=& defg \\
   &=& hijk
  \end{aligned}
 \end{equation*}

\end{document}

这是可行的,因为aligned子环境(必须包含在更大equation或类似的环境中)会缩小以精确适应其内容,并以最小量分隔列。您可以通过重新定义来调整此量\minalignsep

\renewcommand*{\minalignsep}{2em} % 10pt by default

就像这个答案中说的:我可以全局将 `aligned` 的默认列分隔符从 \quad 更改为 \qquad 吗?

不过,就我个人而言,我会采用 Hendrik Vogt 的方法。

答案4

\begin{align*}
  &\quad\, abcd \\
  &=       defg \\
  &=       hijk
\end{align*}

相关内容