当我有多个部分定理时,我会在定理环境中使用枚举环境。但是,我不喜欢列表从与定理标题相同的级别开始,因为这会产生难看的缩进,而且部分 (1) 永远不会与其他部分对齐。所以我将其排版如下:
\begin{theorem}
\
\begin{enumerate}
\item First item.
\item Second item.
\end{enumerate}
\end{enumerate}
问题是,如果定理出现在页面底部附近,LaTeX 会在定理标题之后立即断页,产生如下内容
定理1。
- 第一项
- 第二项
有什么方法可以防止这种情况发生?(我不关心分页符是在定理标题之前发生还是在第一项之后发生。)也许我应该使用除“\”之外的其他东西?非常感谢您的帮助。
答案1
你可以使用\Needspace*
该needspace
包的宏来告诉 LaTeX,以下材料需要在当前页面上至少留出一定量的空间,否则会强制分页。这个量3\baselineskip
意味着至少有三行,即定理标题、分隔线和第一行。
另请参阅如何避免成为孤儿?这可能是重复的。
\documentclass{article}
\usepackage{amsthm}
\usepackage{lipsum}
\usepackage{needspace}
\newtheorem{theorem}{Theorem}
\newenvironment{Theorem}{%
\Needspace*{3\baselineskip}%
\theorem
}{\endtheorem}
\begin{document}
\lipsum[1-10]
\begin{Theorem}
\
\begin{enumerate}
\item First item.
\item Second item.
\end{enumerate}
\end{Theorem}
\end{document}
答案2
不需要新定理环境名称的已接受答案的替代方法如下:
\documentclass{article}
\usepackage{amsthm}
\usepackage{lipsum}
\usepackage{needspace}
\newtheorem{theorem}{Theorem}
\let\ORGtheorem\theorem
\def\theorem{%
\Needspace*{3\baselineskip}
\ORGtheorem
}
\let\ORGendtheorem\endtheorem
\def\endtheorem{%
\ORGendtheorem
}
\begin{document}
\lipsum[1-10]
\begin{Theorem}
\
\begin{enumerate}
\item First item.
\item Second item.
\end{enumerate}
\end{Theorem}
\end{document}
如果您正在为现有文档创建样式文件,此解决方案可能会很有用。