parskip 和类似参数如何表现

parskip 和类似参数如何表现

我尝试格式化一个双列文章文档,其中包含一些跨两列的图形、小表格等。我用它\raggedbottom来避免文本中出现大量空白/粘连,但有时这样做会增加太多空间,导致两列的底线不对齐。现在我尝试调整段落长度和parskip

将 parskip 设置为\setlength{\parskip}{0pt plus 0.1in minus 0.01in}似乎会产生良好的效果,但在某些地方段落之间的间距仍然比我想要的要大,而新的 parskip 长度应该允许(我使用字体大小 9,有时段落之间的间距是 0.5 英寸...)。

我将其改为\setlength{\parskip}{0pt plus 0.005in minus 0.01in},得到的长度与之前完全相同。此外,plus 0.1in从代码中删除 会使文本的行为与我使用的 一样\raggedbottom

所以我的问题是,parskip 如何表现,以及我如何强制它使用我尝试实现的值?

答案1

考虑

\documentclass{article}

\addtolength\textheight{-20.7\baselineskip}

%\setlength\parskip{0pt plus 1pt}
\setlength\parskip{0pt}
\flushbottom
\begin{document}

aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa


bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb

\pagebreak
ccc

\end{document}

在第一页上,第一段和第二段的行数总和不等于\textheight,并且\flushbottom意味着页面末尾没有拉伸,并且没有可拉伸性,\parskip因此根本没有胶水拉伸,所以页面末尾很短(好像\raggedbottom已经生效了)但这非常糟糕,tex 警告:

Underfull \vbox (badness 10000) has occurred while \output is active [1]

然而,如果你给它一点弹性\parskip

\setlength\parskip{0pt plus 1pt}

然后\parskip拉伸以占据所有可用空间,这样\flushbottom即使\parskip过度拉伸也能实现。如下0pt plus 1pt所示,您可以获得

Underfull \vbox (badness 4660) has occurred while \output is active [1]

如果可拉伸性较小,视觉输出虽然相同,但会非常糟糕0pt plus 1sp

Underfull \vbox (badness 10000) has occurred while \output is active [1]

相反,如果你指定 parskip 可以拉伸到足够的程度,那么它根本不会被认为是坏的。0pt plus 5pt 产生相同的视觉输出,但没有关于盒子未满的警告。

相关内容