mdframed 内的标签弄乱了间距

mdframed 内的标签弄乱了间距

我对与和的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

相关内容