ntheorem 和 psframebox - 坏框分割

ntheorem 和 psframebox - 坏框分割

我在排版方框定理时遇到了一些麻烦。我习惯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}

有没有办法既能保留盒子的分裂,又能同时防止盒子在盒子的第二部分为空时被分裂?

相关内容