因此,这个问题更多的是关于 TeX 的要点和内部工作原理,而不是实际的解决方案。LaTeX
(或 TeX?)如何确定是否发生分页符(我的意思是标题等之前的拉伸/流体类型,而不是页面已满时)?
它显然是确定性的,那么算法是什么?我可以在 TeX 宏中重现它,以检查在给定当前输出的某个进一步输入的情况下是否会发生分页符?
考虑这个 MWE 明确使用分页惩罚:
\documentclass[a4paper]{article}
\usepackage{blindtext}
\begin{document}
\blindtext[3]
\pagebreak % Pagebreak does occur here instead of later, comment out to see %
\section{Heading}
\blindtext
\end{document}
现在考虑这个稍微修改过的 MWE 来实现“自然”中断
\documentclass[a4paper]{article}
\usepackage{blindtext}
\begin{document}
\blindtext[4]
This is just some text to fill something.\\
This is just some text to fill something.\\
This is just some text to fill something.\\
This is just some text to fill something.\\
\section{Heading}
\blindtext
\end{document}
我有一些编程经验(包括一些 LaTeX 的软件包和类),但还没有深入研究过 LaTeX、TeX 的内部工作原理。如果您能提供一般性答案/代码片段,我将不胜感激。
再说一遍,我并不是在寻找对分页符做出反应的方法,而是提前检查。