我在排版方框定理时遇到了一些麻烦。我习惯ntheorem
在彩色框中排版定理,并通过\newshadedtheorem
宏定义它们。问题是,有时,当定理排版在页面底部时,彩色框会分散到各个页面上,但第二页中的部分是空的。为了澄清起见,这里有一个例子:
\documentclass{article}
\usepackage[showframe=true, pass]{geometry}
\usepackage[framed]{ntheorem}
\usepackage{framed}
\usepackage{pstricks}
\theoremstyle{break}
\def\theoremframecommand{\psframebox[fillstyle=solid, fillcolor=gray, linecolor=black,framesep=3mm]}
\newshadedtheorem{theorem}[section]{Theorem}
\begin{document}
.
\vskip 17.23cm
\begin{theorem}
this is a theorem.
\end{theorem}
\end{document}
我使用几何包只是为了了解页边距。结果如下。
如您所见,盒子分裂了,但是第二页的盒子部分是空的。
我认为我可以通过将框架包装在小页面中来防止这种情况,如下所示:
\theoremstyle{break}
\def\theoremframecommand{\psframebox[fillstyle=solid,fillcolor=gray, linecolor=black, framesep=3mm]}
\theoremprework{\noindent\begin{minipage}{\textwidth}}
\theorempostwork{\end{minipage}}
\newshadedtheorem{theorem}[section]{Theorem}
但这会完全阻止分裂,例如,以下代码将定理完全移到下一页。
\documentclass{article}
\usepackage[showframe=true, pass]{geometry}
\usepackage[framed]{ntheorem}
\usepackage{framed}
\usepackage{pstricks}
\theoremstyle{break}
\def\theoremframecommand{\psframebox[fillstyle=solid,fillcolor=gray, linecolor=black, framesep=3mm]}
\theoremprework{\noindent\begin{minipage}{\textwidth}}
\theorempostwork{\end{minipage}}
\newshadedtheorem{theorem}[section]{Theorem}
\begin{document}
.
\vskip 16.6cm
\begin{theorem}
this is a theorem \\
second line \\
third line
\end{theorem}
\end{document}
有没有办法既能保留盒子的分裂,又能同时防止盒子在盒子的第二部分为空时被分裂?