LaTeX 实现空间不足时换到下一页
LaTeX实现与下段同页
需求
用一个自定义命令\head{}生成类似标题的效果,当标题在页面结尾时,想让它出现在下一页,此页结尾处留白,类似word中“与下段同页”的设置。
没那么麻烦
看 texdoc needspace
文档即可。
1 |
|
The
\needspace <length>
macro reserves an approximate amount of spacelength
for the material following to be kept on the same page. The accuracy of its calculations depend on what penalties are in effect, but is efficient and normally adequate. A short page will be ragged bottom even if \flushbottom is in effect.
ChatGPT
要实现在\head
命令发现自己出现在页尾时,将自己放到下一页,并在当前页结尾处留白,类似Word中的“与下段同页”设置,你可以使用\needspace
命令和\vfill
命令。
以下是一种可能的实现方法:
在导言区或你的自定义命令之前,添加以下代码:
1 |
|
然后,在你的自定义命令中添加如下代码:
1 |
|
上述代码首先使用\needspace{}
命令指定了所需的空间大小,这里设为2倍行高。这意味着如果当前页剩余空间不足以放置2行文字的高度,\head
命令将会在下一页开始新的一行。
接着,我们使用\par\nobreak
命令禁止在新页面的顶部产生分页符,并使用\vspace*{\fill}
命令添加垂直间距以填充当前页面的剩余空间。这样可以确保标题出现在新页面的开头,并在当前页面结尾处留白。
然后,我们使用\clearpage
命令创建新页面,并插入标题使用\section*{}
命令。再接着,使用\vspace*{\fill}
命令添加垂直间距以填充新页面上方的空白,并使用\par\nobreak
命令禁止在新页面的顶部产生分页符。
通过这种方式,\head
命令将在发现自己出现在页尾时,将标题放到下一页,并在当前页结尾处留白。希望对你有帮助!