防止环境分成两页

防止环境分成两页

我正在为一个数学文档创建自己的环境(诸如定理、定义、引理等环境……通常由与环境相对应的标题和环境末尾可能出现的内容组成(例如,证明环境末尾有一个可爱的小方块))。然而,我讨厌这样的事情

引理。

--------------------------此处分页----------------

词条中的文本开头

会发生这种情况。在环境描述中,有没有什么方法可以要求环境将所有内容放在一页中?类似于“no-page-break-allowed-here”命令。

编辑:例如,我希望修改这个环境以使其不会中断:

\newenvironment{definition}
{
    \textbf{\underline{Definition.}}
    \vspace{12 pt}
    \itshape
}

答案1

对于类似定理的结构,最好使用专用包(amsthm或者ntheorem是最受欢迎的,并且它们都有一个前端:thmtools)。使用其中任何一个包,您都可以轻松定义定理样式以及使用这些样式的编号或未编号结构。

在以下示例中,我使用amsthm包来定义一个未编号的结构,其规范与definition代码片段的环境类似。第六\newline个强制参数中使用的 导致定理的头部出现在其自己的一行上,但不会阻止头部和主体之间出现不必要的分页符。为此,我使用了\needspaceneedspace包裹:

\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}

最后要说的是,与问题无关,带下划线的文字通常不被认为是一种良好的印刷习惯;就您而言,使用粗体字体和下划线似乎是多余的。

相关内容