为什么 parskip 包会弄乱 mdframed 中的间距?

为什么 parskip 包会弄乱 mdframed 中的间距?

考虑以下 MWE:

\documentclass{article}
\usepackage{amsthm}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{lipsum} 
%\usepackage[parfill]{parskip}

\newtheorem{theo}{Theorem}
\surroundwithmdframed[outerlinewidth=0.5pt,
  innerlinewidth=0.5pt,
  middlelinewidth=1.5pt,
  middlelinecolor=white,
  innertopmargin=0]{theo}

\begin{document}
\lipsum[4]

\begin{theo}
\lipsum[4]
\end{theo}

\lipsum[4]
\end{document}

一切看起来都很棒:定理有一个很好的内边距,并且上下的间距非常相等。

现在,我想使用 parskip 包,但是当我启用它时,我得到了这个丑陋的结果:

间距混乱。

我可以尝试分别调整所有这些边距,看看哪个看起来最好(例如我会使用innertopmargin=12pt),但从长远来看这似乎不是一个很好的解决方案。

我怎样才能恢复之前正确的间距?

答案1

使用mdfsetup而不是 就surroundwithmdframed可以达到目的:

\documentclass{article}
\usepackage{amsthm}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{lipsum} 
\usepackage[parfill]{parskip}

\mdfsetup{
    outerlinewidth=0.5pt,
    innerlinewidth=0.5pt,
    middlelinewidth=1.5pt,
    middlelinecolor=white,
    innertopmargin=\topskip,
    skipabove=\baselineskip,
    skipbelow=0,
    nobreak=true
}

\newmdtheoremenv{theo}{Theorem}

\begin{document}
\lipsum[4]

\begin{theo}
\lipsum[4]
\end{theo}

\lipsum[4]
\end{document}

间距很好。

相关内容