在article
课堂上,有时我们的定义或定理(类定理环境)可能会被分成两部分,分布在两页上。我想知道有没有办法避免这种情况发生,而无需手动清除页面?
答案1
下面是一个使用的示例mdframed
。您将看到第一页上的段落被拉长,因为定理环境不允许中断。
如果是双面书,最好的解决方案可能是有一个系统,允许从左手页面换到右手页面,但不能反过来。如果tcolorbox
没有类似的东西我会感到惊讶。
\documentclass[a4paper]{memoir}
% standard packages
\usepackage{amsmath,amssymb,amsthm,mathtools,bm}
\usepackage{mdframed}
\usepackage{kantlipsum}
\mdfdefinestyle{myenvs}{%
hidealllines=true,%
nobreak=true, % comment this to allow breaking
leftmargin=0pt,
rightmargin=0pt,
innerleftmargin=0pt,
innerrightmargin=0pt,
}
\newmdtheoremenv[style=myenvs]{theorem}{Theorem}
\begin{document}
\kant[1-3]
\begin{theorem}
\kant[1-2]
\end{theorem}
\kant
\end{document}
答案2
正如@daleif 所怀疑的那样,还有一种tcolorbox
方法可以回答这个问题。
最基本的答案假设 OP 只希望现有的定理环境变得牢不可破。让我们将此环境命名为theorem
。它通过以下方式变得牢不可破:
\tcolorboxenvironment{theorem}{blanker,before skip=10pt,after skip=10pt}
可以根据需要调整跳过值。完整的建议答案是:
\documentclass{article}
\usepackage{amsmath,amssymb,amsthm}
\usepackage[skins]{tcolorbox}
\usepackage{lipsum}
\theoremstyle{plain}% from amsthm
\newtheorem{theorem}{Theorem}% from amsthm
\tcolorboxenvironment{theorem}{blanker,before skip=10pt,after skip=10pt}
\begin{document}
\lipsum[1-4]
\begin{theorem}
\lipsum[1]
\end{theorem}
\lipsum[2]
\end{document}
当然,如果需要的话,有很多方法可以让盒子变得色彩缤纷和花哨。此外,tcolorbox
还提供自己的定理环境,但这是另一个故事。
为了完整性:mdframed
与修补现有环境具有相同的机制\surroundwithmdframed
。您可以抛硬币来决定使用哪个包 :-)
答案3
如果没有这个图,它就会被分成多页。
\documentclass{article}
\usepackage{mathtools}
\usepackage{lipsum}
\newtheorem{thm}{Theorem}
\begin{document}
\lipsum[1-4]
\begin{figure}[thb]
\begin{thm}
\lipsum[5-6]
\end{thm}
\end{figure}
\lipsum[7-10]
\end{document}