我尝试将\abovedisplayskip
和减小\belowdisplayskip
到 3pt 以节省纸张,而包含“大型”数学公式的公式与周围文本之间的分隔比“普通”数学公式之间的分隔要小,见图。是否无法将垂直分隔设置为相等?
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\setlength\abovedisplayskip{3pt}
\setlength\belowdisplayskip{3pt}
Some text some text some text some text some text
some text some text some text some text some text
some text some text some text some text
\begin{euqation*}
\sum_{n=1}^{\infty}a_n+\sum_{n=1}^{\infty}b_n=\sum_{n=1}^{\infty}c_n
\end{euqation*}
some text some text some text some text some text some text some text
\begin{euqation*}a_n+b_n=c_n\end{euqation*}
some text some text some text some text some text
\end{document}
答案1
\constskip
之后每次都使用我的宏\end{equation*}
\def\constskip{\par\hrule height 0pt \vskip -\ht\strutbox \vskip 1ex \noindent\strut}
\hsize = .7\textwidth
Some text some text some text some text some text
some text some text some text some text some text
some text some text some text some text
\begin{equation*}
\sum_{n=1}^{\infty}a_n+\sum_{n=1}^{\infty}b_n=\sum_{n=1}^{\infty}c_n
\end{equation*}\constskip
some text some text some text some text some text
\begin{equation*}
a_n+b_n=c_n
\end{equation*}\constskip
some text some text some text some text some text
\begin{equation*}
a + b + w + e + t + u = c
\end{equation*}\constskip
some text some text some text some text some text
编辑:double const skip
在等式前任意位置添加\aconstskip
。
\def\constskip{\par\hrule height 0pt \vskip -\ht\strutbox \vskip 1ex
\noindent\vrule width 0pt height \ht\strutbox}
\def\aconstskip{\par\hrule height 0pt \nobreak\vskip -\baselineskip
\noindent \hbox to \hsize{\hfill \vrule width 0pt depth \baselineskip}}
\abovedisplayskip = 4pt
\belowdisplayskip = 5pt
\hsize = .7\textwidth
Some text some text some text some text some text
some text some text some text some text some text
some text some text some text some text
\aconstskip\begin{equation*}
\sum_{n=1}^{\infty}a_n+\sum_{n=1}^{\infty}b_n=\sum_{n=1}^{\infty}c_n
\end{equation*}\constskip
some text some text some text some text some text
\aconstskip\begin{equation*}
a_n+b_n=c_n
\end{equation*}\constskip
some text some text some text some text some text
\aconstskip\begin{equation*}
a + c + w + e + s + u = c
\end{equation*}\constskip
some text some text some text some text some text
答案2
在这种情况下,如果你使用\showboxbreadth=\maxdimen \showboxdepth=3 \tracingoutput=1 \tracingonline=1
并查看 LaTeX 的输出,你会看到
\vbox(633.0+0.0)x407.0
........elided.............
..\glue(\lineskip) 0.0
..\vbox(550.0+0.0)x345.0, glue set 453.92645fil
...\write-{}
.........elided............
...\glue(\abovedisplayskip) 0.0
...\glue(\lineskip) 1.0
...\hbox(16.51393+12.67783)x105.99545, shifted 119.50227, display [] **first equation**
...\penalty 0
...\glue(\belowdisplayskip) 0.0
...\glue(\lineskip) 1.0
.............elided.........
...\glue(\abovedisplayskip) 0.0
...\glue(\baselineskip) 1.49994
...\hbox(10.50006+5.50006)x71.90155, shifted 136.54922, display [] **second equation**
...\penalty 0
...\glue(\belowdisplayskip) 0.0
...\glue(\baselineskip) 0.34915
.........elided...........
你可以看到,对于第一个方程,TeX 在\lineskip
方程前后插入了一个 ,但对于第二个方程,它插入了一个\baselineskip
。我不太清楚\lineskip
和之间的区别\baselineskip
,但是这条信息说
如果 TeX 确定一行的底部和下一行的顶部距离小于
\lineskiplimit
(Plain TeX 中的默认值:0pt),那么它会放弃\baselineskip
并插入\lineskip
之间相邻的线(不是它们的基线,而是一条线的底部与下一条线的顶部之间的线)。
由于第一个方程包含一个\sum
高于 的\baselineskip
,方程的顶部和前一行的底部将接触,因此 TeX 插入一个\lineskip
。在方程下方,下一行文本的顶部和方程的底部将接触,因此 TeX 再次插入一个\lineskip
。
由于第二个等式很短,其内容的顶部和上一行的底部不接触,因此 TeX 插入\baselineskip
。同样,在等式下方,下一行的顶部和等式的底部不接触,因此 TeX 再次插入\baselineskip
。
我不太确定如何稳健地解决这个问题(@Alexey 的回答是一个开始),但它有助于解释为什么你会看到两个方程式之间的不同行为。