![声明不会“破坏”的环境](https://linux22.com/image/395297/%E5%A3%B0%E6%98%8E%E4%B8%8D%E4%BC%9A%E2%80%9C%E7%A0%B4%E5%9D%8F%E2%80%9D%E7%9A%84%E7%8E%AF%E5%A2%83.png)
在 LaTeX 中是否有一种方法可以声明一个命令或环境,除非绝对必要,否则它将“拒绝”跨页面中断?
用例:我有许多文档项目(全部通过 Doxygen 的 XML 生成),其中几个只有几行。在某些情况下,一页 (A4) 最多可以容纳四个这样的项目。
现在,一个这样的文档项目开始一个新的\section
或\subsection
(取决于上下文),并且它不应该在(子)部分标题和内容之间中断。也就是说,标题和内容必须始终保持在同一页上。该规则的唯一例外是,如果标题和内容合在一起,它们将不适合一个页面,如果它们在新的页面上开始。
我想我所寻找的可以描述为“垂直不良度”值,并且我需要一种方法来垂直测量项目并在必要时让它们流到下一页。
答案1
我认为您的请求没有好的答案。正如 David Carlise 所说,章节标题和后续文本始终在同一页上,而 JouleV 建议将您的文本放入框中。请考虑以下内容(不包括我的任何拼写错误):
\documentclass{article}
\newcommand{\stuff}{Bunch of stuff \\ more stuff \\ yet more.}
\begin{document}
\mbox{}
\vspace{0.85\textheight} % move near bottom of page
\section{One}
\begin{minipage}{\textwidth} % box some text
\stuff
\end{minipage}
\clearpage % next page
\mbox{}
\vspace{0.85\textheight}
\section{two}
\stuff
\end{document}
在第一部分中,文本被框起来并保留在同一页上,但在第二部分中,文本没有被框起来并继续在下一页上。如果您将更改为,\vspace
则o.86\textheight
第一部分从第二页开始,并且第 1 页为空。
本质上只需使用:
\section{...}
your text