我发现该软件包中似乎有一个错误mdframed
。我的目标是使用一个允许我创建跨多个页面的着色定理环境的软件包(thmtools
不允许这样做)。运行这个最小示例:
\documentclass{memoir}
\usepackage[english]{babel}
\usepackage{amsthm}
\usepackage{mdframed}
\usepackage{blindtext}
\newmdtheoremenv{theorem}{Theorem}
\begin{document}
\chapter{Hello}
\marginpar{\vspace*{9pt}\chapnumfont\thechapter} % COMMENT IN/OUT
\begin{theorem}
\blindtext[2]
\end{theorem}
\begin{theorem}
\blindtext[3]
\end{theorem}
\end{document}
当标记行被注释掉时,定理将按预期呈现 - 即第二个定理跨越第一页和第二页。但是,当标记行被注释时,这两个定理将生成在不同的页面上。标记行只是在侧面添加了章节编号。
有人知道这个 bug 的来源吗?此外,有办法解决这个问题吗?我希望定理能够跨越页面,就像这个包设计的那样!
答案1
虽然我不知道具体发生了什么,但我不认为这是 中的一个错误mdframed
,而是 的一个糟糕的交互\marginpar
。作为一种解决方法,您可以\marginnote
从marginnote
包中使用:
\documentclass{memoir}
\usepackage[english]{babel}
\usepackage{amsthm}
\usepackage{mdframed}
\usepackage{marginnote}
\usepackage{blindtext}
\newmdtheoremenv{theorem}{Theorem}
\begin{document}
\chapter{Hello}
\marginnote{\chapnumfont\thechapter}
\begin{theorem}
\blindtext[2]
\end{theorem}
\begin{theorem}
\blindtext[3]
\end{theorem}
\end{document}