为什么文本和“对齐”之间的空行有效果,而文本和“公式”之间的空行没有效果?

为什么文本和“对齐”之间的空行有效果,而文本和“公式”之间的空行没有效果?

所以我最近玩了一下,我注意到文本和和之间的空行会\begin{align}产生很大的垂直空白,而文本和之间的空行则不会出现这种情况\begin{equation},尽管方程式可能会产生非常微妙的影响,但我并不完全确定。我对此没有任何问题,但我很好奇为什么确实会发生这种情况。据我所知,LaTeX 通常不会忽略空行,例如形成段落。那么为什么在方程式环境前设置空行时会出现这种情况呢?

示例代码:

\documentclass{article}
\usepackage{amsmath}

\begin{document}
Line of text directly followed by "align"
\begin{align}
    a + b = c
\end{align}

Line of text followed by an empty line and then "align"

\begin{align}
    a + b = c
\end{align}

Line of text directly followed by "equation"
\begin{equation}
   a + b = c
\end{equation}

Line of text followed by an empty line and then "equation"

\begin{equation}
   a + b = c
\end{equation}

\end{document}

输出: 在此处输入图片描述

答案1

Enrico 完全正确:“不要在显示环境周围使用空行”(《LaTeX Companion》,第二版,第 481 页底部)。

但要解释一下区别:

之前的空行equation/align提供了额外的垂直空间\baselineskip(实际上,该行看起来是空的,但技术上并不空:它包含\indent框)。但是,equation然后使用的垂直空间\abovedisplayshortskip默认为 0pt(加上一些拉伸)。

无空行equation的垂直间距为\abovedisplayskip,默认情况下为 10pt(加上一些拉伸)。这几乎与 相同\baselineskip

环境align使用“显示对齐”,其大约为

$$\halign{ . . .}$$

这是低级 TeX 的array环境等效物。不过,它前面总是有垂直空格\abovedisplayskip

因此,align在获得和之前有一个空\baselineskipabovedisplayskip

查看:设置\abovedisplayshortskip\abovedisplayskip,并且equation获取与 相同的间距align

答案2

有时,我发现 LaTeX 中的标准间距不一定是错误的,只是不是我想要的,或者在上下文中不美观:将图像与文本行对齐,或者在表格或文本之间对齐,或任何其他示例。

也许这些会在 LaTeX3 中再次改变?谁知道呢?

同时,我只使用 \vspace 或 \space*(有时带负值)来实现我想要的效果。

相关内容