我重现了一个简单的示例,显示了我的间距问题。描述:页面完全被文本填满,只有 1-2 个单词可以过渡到下一页,尽管看起来上一页还有足够的空间。我该如何解决这个问题?我意识到一个解决方案是\vspace*{-x pt}
,但我不知道它是否理想。我相信你们中的许多人都遇到过这种情况。正确的处理方法是什么?
梅威瑟:
\documentclass[a4paper, 12pt, headsepline]{scrreprt}
\usepackage[onehalfspacing]{setspace}
\usepackage{amsmath, amssymb, mathtools}
\usepackage{mathptmx}
\usepackage[a4paper,showframe]{geometry}
\geometry{left=2cm,right=5cm,top=2cm,bottom=2cm}
% \usepackage{lipsum} %\lipsum
\usepackage[pangram]{blindtext}
\begin{document}
\Blindtext[1][4]%1 paragraph, 3 pangrams
Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem
% \vspace*{-1pt}
\end{document}
如果你取消注释该行\vspace*{-1pt}
,你会看到它起作用了。但我不确定这是否无害或是最好的方法。
编辑:我需要保留这些geometry
值,因此如果可能的话,解决方案应该保持原样。
谢谢。
答案1
这取决于你想要发生什么,如果你设置
Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem%
\widowpenalty10000
然后,仅仅占用一行就会产生无限的惩罚,因此占用了两行(导致第一页不足)。
如果你想让这条线停留在第一页,那么 vspace 是一个不错的解决方案,或者更好的方法是使用
\enlargethispage{1pt}
但是您也应该避免陷入这种情况,方法是确保\textheight
-\topskip
是的倍数\baselineskip
,以便在没有标题或其他显示材料且带有可拉伸白色空间的页面上,文本行确实完全适合并且不会留下看起来像空行但不太合适的视觉间隙。
如果你添加
\showthe\dimexpr\textheight-\topskip-40\baselineskip\relax
你看
> -0.5426pt.
l.14 ...\textheight-\topskip-40\baselineskip\relax
这就是为什么你的最后一行不太合适。
答案2
如果您将heightrounded
选项添加到几何中,包将尽可能小地改变所请求的文本高度,以容纳整数行数。
通过您的设置您可以获得
\textheight=731.23584pt
而使用heightrounded
,你会得到
\textheight=731.77844pt
没有人会注意到大约 0.5pt 的差异。页面将被填满。