有条件的分页符?

有条件的分页符?

如果页面的最后一行是某个字符串,有没有办法让 LaTeX 插入分页符?

\noindent \textsl{Solution}:

非常感谢!

答案1

对于这种情况我喜欢使用needspace包。它提供请求可自定义页面剩余空间量的命令,如果空间不足,则会插入分页符。

您可以定义一个宏:

\usepackage{needspace}
\newcommand*{\solution}{%
  \Needspace{2\baselineskip}%
  \noindent\textsl{Solution}:%
}

\Needspace这样,如果“解决方案”是页面的最后一行,那么就会在“解决方案”之前插入分页符,正如您所希望的那样。如果更多空间似乎更合适,您可以增加参数中的值。

该包定义了进一步的命令变体\needspace(对于空间量稍微宽松一些)和\Needspace*,它们遵循\flushbottom与无星号命令相反的配置\Needspace,这会导致底部参差不齐。

在任何情况下,我都建议创建一个宏\solution,以便以后在文档中使用。原因是逻辑格式 - 如果您以后决定使用或 之类的命令\textbf代替或,则只需更改宏定义,而不是整个文本。\textsl\section*\subsection*

相关内容