我用\documentclass{book}
。
- 如果我使用
\flushbottom
,我会收到类似这样的消息Underfull \vbox (badness 10000) has occurred while \output is active []
。请参阅问题。 - 当我使用时这些消息会消失
\raggedbottom
,但页面内容的高度当然会因页面而异。
因此,似乎没有最佳解决方案,只能在“邪恶”之间进行权衡……LaTeX 专业人士对此事的看法是什么?在这种情况下应该选择哪个选项?
答案1
没有一个普遍正确的答案。
\raggedbottom
当然是一种更容易实现的格式,因为您失去了均衡页面内容的限制。
但是,如果您愿意,\flushbottom
则必须确保页面内容适合指定的大小。例如,如果您的内容完全由 15 pt 基线上的文本行组成,行或段落之间没有可拉伸的空白,并且文本主体高度不是该值的倍数\baselineskip
,那么每一个页面会不够满,因为 TeX 无法达到指定的大小,所以必须断行。解决方案是调整\baselineskip
和/或以兼容,或者,如果在网格上排版不是绝对要求,则在行之间(通过提供组件)或段落之间(通过提供组件)\textheight
添加一些垂直拉伸粘连。\baselinestretch
plus
\parskip
plus
在最后的编辑阶段,您可能希望使用 来逐页(或逐跨)调整页面大小\enlargethispage
。
也可以看看
答案2
使用这个技巧,你会得到一个,\textheight
这样每页都包含整数行(等于不使用这个技巧时得到的行数)
\documentclass[12pt]{book} % or 10pt or 11 pt
\usepackage{setspace}
\setstretch{1.15}
\setlength{\dimen0}{\textheight}
\addtolength{\dimen0}{-\topskip}
\divide\dimen0\baselineskip
\setlength{\textheight}{\number\dimen0 \baselineskip}
\addtolength{\textheight}{\topskip}
\usepackage{lipsum}
\begin{document}
\lipsum
\end{document}
或者,您可以加载geometry
包并使用其选项heightrounded
(但这也会改变其他页面参数)。