\newpage 可以接受像 \pagebreak 这样的参数吗?

\newpage 可以接受像 \pagebreak 这样的参数吗?

我在文章类中重新定义了 \subsection

    \renewcommand\subsection{%
\penalty-8888
%\pagebreak[3]
\@startsection {subsection}{1}{0em}{1\parskip plus 1\parskip minus 1\parskip}{1\parskip plus 1\parskip minus 1\parskip}{\centering\rmfamily\bfseries\scshape}%
}

在我的文本中,某个部分靠近底部。启用 pagebreak[3] 并注释掉 \penalty 后,该部分从下一页开始,但前一个文本会向底部扩展。这是预料之中的。如果我使用 \penalty-8888 选项,情况也是如此。

如果我将 \newpage 放在我的子部分之前,页面底部会有一个空白区域。这是预期的,也是我想要的,但只有在必要时才会出现(比如在页面的三分之二处);是否可以使用 \pagebreak 之类的参数来缓和它的触发?

PS:实际上,我也重新定义了 \subsubsection,也遇到了同样的问题。我也重新定义了 \section,但我在其中明确添加了 \newpage,所以一切正常。

答案1

你可能想替换

\penalty-8888

比如

\par\vspace{0pt plus .3\textheight}\pagebreak[3]\vspace{0pt plus -.3\textheight}

这将允许空间在分页符之前延伸至文本高度的 30%,因此页面很短,但如果没有发生分页,则两个 vspace 会抵消并且不会添加额外的空间。

或者更简单,但有点弹性

\filbreak

相关内容