为什么尾随换行符(\\)会改变方程的对齐方式?

为什么尾随换行符(\\)会改变方程的对齐方式?

我有 2 个方程,每个方程有两个等号。等号应该垂直对齐。我可以像这样生成预期的输出:1
如果您认为这只是错误的方法,请阅读脚注。你是对的。

% Full MWE at the bottom of the question
\begin{align*}
foooo &= bar &\hspace{-3.6cm}&= baz \\
abc &= defgh  &\hspace{-3.6cm}&= xyz
\end{align*}

输出 1

但是,如果我只是在(看似)无辜的\\第二个等式的末尾,\hspace显然不再有任何效果:

\begin{align*}
foooo &= bar &\hspace{-3.6cm}&= baz \\
abc &= defgh  &\hspace{-3.6cm}&= xyz \\
\end{align*}
%
\begin{align*}
foooo &= bar &&= baz \\
abc &= defgh  &&= xyz \\
\end{align*}

输出 2

我以前总以为\\等式的最后一行没有任何作用。现在,这个例子证明我错了。

问题:我想了解为什么尾随\\会改变我的方程式中的对齐/为什么它会破坏的效果\hspace{-3.6cm}

我添加了一个scrartcl标签,因为我意识到中的行为有所不同article。我的问题是基于的scrartcl


梅威瑟:

\documentclass{scrartcl}
\usepackage{amsmath}
\begin{document}
\begin{align*}
foooo &= bar &\hspace{-3.6cm}&= baz \\
abc &= defgh  &\hspace{-3.6cm}&= xyz 
\end{align*}

\begin{align*}
foooo &= bar &\hspace{-3.6cm}&= baz \\
abc &= defgh  &\hspace{-3.6cm}&= xyz \\
\end{align*}
\end{document}

1知道我不应该使用示例中所示的负空格,而应该alignat

\begin{alignat*}{2}
foooo &= bar &&= baz \\
abc &= defgh  &&= xyz
\end{alignat*}

然而,这个问题的重点是不是如何产生一定的对齐,但理解为什么尾随\\很重要。

答案1

观察到的行为的原因实际上不是尾随的\\,而是存在没有 的第三行\hspace{-3.6cm}。在下面的代码中,我在中间添加了这样一行,因此没有尾随的\\

\documentclass{scrartcl}
\usepackage{amsmath}
\begin{document}
\begin{align*}
foooo &= bar &\hspace{-3.6cm}&= baz \\
abc &= defgh  &\hspace{-3.6cm}&= xyz 
\end{align*}

\begin{align*}
foooo &= bar &\hspace{-3.6cm}&= baz \\
abc &= defgh  &\hspace{-3.6cm}&= xyz\\
\end{align*}
\begin{align*}
foooo &= bar &\hspace{-3.6cm}&= baz \\
      &      &               &      \\
abc &= defgh  &\hspace{-3.6cm}&= xyz 
\end{align*}
\end{document}

在此处输入图片描述

相关内容