我对与和的mdframed
结合有问题。请考虑以下代码,它是从大型文档中剥离出来的 MWE。\parskip
\label
\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\parskip=32pt
\begin{document}
\begin{mdframed}[suppressfirstparskip=false,frametitle={Theorem 1.}]
Text
\label{Yeah}
\end{mdframed}
\begin{mdframed}[suppressfirstparskip=false,frametitle={Theorem 2.}]
\label{Yeah}
Text
\end{mdframed}
\end{document}
(我知道这个\label
命令在这里没有意义;但它在我的原始文档中有意义,并且我在该文档中看到了相同的行为)。此代码呈现如下:
显然,第二定理由于命令而导致垂直空间过多\label
。有办法解决这个问题吗?
编辑:在@Gonzalo Medina 回答之后,我添加了\leavevmode
我实际使用的环境。这几乎让我到达了我想要的位置,只是我的文档中仍然出现了一个意外的空间。MWE 是:
\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\parskip=32pt
\newenvironment{theorem}[1]%
{\begin{mdframed}[suppressfirstparskip=false,frametitle={#1}]\leavevmode\ignorespaces}%
{\end{mdframed}}
\begin{document}
\begin{theorem}{Theorem 1.}
Text
\label{Yeah}
\end{theorem}
\begin{theorem}{Theorem 2.}
\label{Yeah}
Text
\end{theorem}
\end{document}
呈现如下:
第二个环境中有一个多余的空格。
编辑2:我最终在范围\label
内进行了替换mdframed
:
\makeatletter
\newenvironment{theorem}[1]%
{\begin{mdframed}[suppressfirstparskip=false,frametitle={#1}]%
\let\@oldlabel=\label%
\renewcommand\label[1]{\@oldlabel{##1}\ignorespaces}%
\leavevmode\ignorespaces}%
{\let\label=\@oldlabel%
\end{mdframed}}
\makeatother
答案1
垂直模式下材料问题的另一个例子;使用\leavevmode
:
\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\parskip=32pt
\begin{document}
\begin{mdframed}[suppressfirstparskip=false,frametitle={Theorem 1.}]
Text
\label{Yeah}
\end{mdframed}
\begin{mdframed}[suppressfirstparskip=false,frametitle={Theorem 2.}]
\leavevmode\label{Yeah}%
Text
\end{mdframed}
\end{document}
在编辑问题之后,我在第二个环境中%
的参数后添加了一个字符,\label
以防止出现不必要的空格。
如果您对类似定理的结构感兴趣,也许您可以使用\newmdtheoremenv
。