我希望使用 amsmath 将用 LaTeX 编写的文章压缩到一定页数。
在文本中,我有许多编号的数学显示,我会在整篇文章中引用它们。但是,它们占用了相当多的垂直空间。因此,我想更改它们上方和下方空白的高度。
我曾尝试使用负垂直空间,但它们往往会弄乱其他东西。
答案1
有四个参数定义这个空间,你可以查看它们的值,例如通过
\showthe\abovedisplayskip
\showthe\belowdisplayskip
\showthe\abovedisplayshortskip
\showthe\belowdisplayshortskip
如果前一行文本的内容少于公式的宽度,则使用“..short..” 。在标准 LaTeX 的情况下displaymath
(或\[...\]
简称),它的行为有点奇怪,因为它.6\linewidth
在垂直模式下开始时会在这种显示前面添加一个宽度为的明确空框。因此,您会在显示屏前面看到一个空行,并且此外 \abovedisplayskip
被使用。这不是针对equation
环境进行的(这里低级 TeX 添加了空行,但它只包含一个\indent
框),所以这是一个奇怪的历史“特征”。
这些参数的值取决于字体大小,在默认类(例如article
)中,LaTeX 将它们设置为执行\normalsize
、\small
或的一部分\footnotesize
。其他字体大小命令不会更改它们,可能是因为 Leslie 认为在类似命令中\huge
不会排版任何显示。
因此,您可以根据自己的喜好进行更改\setlength
,例如
\setlength\abovedisplayskip{5pt plus 2pt minus 2pt}
或者任何你认为适合你的设计的值(加号和减号部分定义了空间在必要时可以拉伸或收缩的程度)。但那个定义必须替换字体大小命令中的定义,或者至少必须添加到它的末尾,以便它覆盖先前设置的任何内容。一个简单的方法是
\makeatletter
\g@addto@macro \normalsize {%
\setlength\abovedisplayskip{5pt plus 2pt minus 2pt}%
\setlength\belowdisplayskip{5pt plus 2pt minus 2pt}%
}
\makeatother
只要您不排版显示\small
或\footnotesize
就不需要向这些命令附加值,但如果是这样,可以使用相同的方法。
(感谢 egreg 指出我的错误,没有记住这是与尺寸相关的)
答案2
除了 Frank 列出的参数之外,还要注意如果在\begin{equation}
此参数上方有一个空白行,则会导致显示屏上方生成一个空行。