vbox 未满(不良率 10000)带有回忆录

vbox 未满(不良率 10000)带有回忆录

抱歉,这个问题已经被问过很多次了,但是我无法轻易找到我的具体问题的答案。

我正在使用 XeLaTeX 和回忆录类来制作一个相当长的文档(100 页),其中包含许多部分,其中一些部分不到一页。我收到很多 underfull vbox 错误:

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

因为章节标题有时会落在页面边界上。这会迫使 XeLaTeX 在章节标题前插入难看的空格(参见下面的 MWE)。我看过很多关于如何手动解决这个问题,但由于文档的长度和经常变化的事实,这种方法效率不高。

我的问题是:有没有办法告诉 XeLaTeX 自动增加行距(或做其他技巧)以自动修复 vbox 不足的错误?

MWE 如下:

\documentclass[a4paper,12pt]{memoir}
\usepackage[hmargin={2.5cm, 2.5cm}, vmargin={3.5cm,3.5cm}, headheight=1.5em]{geometry}
\usepackage{lipsum}
\begin{document}

\chapter{Hello}

\section{Hello1}
\lipsum[2]

\section{Hello2}
\lipsum[3-4]

\section{Hello3}
\lipsum[3]

\end{document}

答案1

这是因为memoir在下运行\flushbottom,并且由于Hello3标题移动到下一页,所以memoir找到它理想的xelatex做大幅度伸展。这与在 下做同样的事情无关pdflatex

尝试添加

\raggedbottomsection

你的序言,这有助于

顺便说一句:memoir有自己内置的保证金界面

答案2

这实际上取决于你想在哪些方面保持灵活性。我绝不会通过增加行距来填满一页。最好是让页面变短并在末尾留出空白,而不是这样做,让文本难以阅读。

如果你想让节头前的空间任意增加,你可以这样做

\advance\beforesecskip 0pt plus -1fill

这会使警告消失(并且示例中的第二部分会向下移动页面)

相关内容