![防止环境分成两页](https://linux22.com/image/271295/%E9%98%B2%E6%AD%A2%E7%8E%AF%E5%A2%83%E5%88%86%E6%88%90%E4%B8%A4%E9%A1%B5.png)
我正在为一个数学文档创建自己的环境(诸如定理、定义、引理等环境……通常由与环境相对应的标题和环境末尾可能出现的内容组成(例如,证明环境末尾有一个可爱的小方块))。然而,我讨厌这样的事情
引理。
--------------------------此处分页----------------
词条中的文本开头
会发生这种情况。在环境描述中,有没有什么方法可以要求环境将所有内容放在一页中?类似于“no-page-break-allowed-here”命令。
编辑:例如,我希望修改这个环境以使其不会中断:
\newenvironment{definition}
{
\textbf{\underline{Definition.}}
\vspace{12 pt}
\itshape
}
答案1
对于类似定理的结构,最好使用专用包(amsthm
或者ntheorem
是最受欢迎的,并且它们都有一个前端:thmtools
)。使用其中任何一个包,您都可以轻松定义定理样式以及使用这些样式的编号或未编号结构。
在以下示例中,我使用amsthm
包来定义一个未编号的结构,其规范与definition
代码片段的环境类似。第六\newline
个强制参数中使用的 导致定理的头部出现在其自己的一行上,但不会阻止头部和主体之间出现不必要的分页符。为此,我使用了\needspace
needspace
包裹:
\documentclass{article}
\usepackage{needspace}
\usepackage{amsthm}
\newtheoremstyle{definition}
{\topsep}
{\topsep}
{\itshape}
{0pt}
{\bfseries}
{\newline}
{0pt\needspace{2\baselineskip}}%
{\thmname{\underline{#1}}~\thmnote{(#3)}}
\theoremstyle{definition}
\newtheorem*{definition}{Definition}
\begin{document}
\vspace*{43\baselineskip}% just to test that no separation is produced
\begin{definition}
Test
\end{definition}
\end{document}
最后要说的是,与问题无关,带下划线的文字通常不被认为是一种良好的印刷习惯;就您而言,使用粗体字体和下划线似乎是多余的。