mdframed 在 TeXlive 2011 和 TeXlive 2012 中的行为不同

mdframed 在 TeXlive 2011 和 TeXlive 2012 中的行为不同

我注意到 TeXlive 2011 和 TeXlive 2012 之间存在一些不一致之处。我正在维护一个文档类,但在更新到 TeXlive 2012 后我突然意识到它不能正常工作。

问题是 amsthm 和 thmtools 之间存在冲突(尽管我无法获得合理大小的 MWE 来说明该特定问题)。我选择重写 documentclass 中的定理环境,改用 ntheorem 并绕过 thmtools。一切看起来都很好,直到我注意到我的框架(mdframed 样式)定理在 TL2012 中的边距错误。(这个问题与我遇到的第一个问题完全无关。)

考虑以下代码:

\documentclass[twoside]{article}
\usepackage{lipsum}
\usepackage[framemethod=TikZ]{mdframed}

    \mdfdefinestyle{mdtheoremstyle}{%
      linewidth=1pt,
      roundcorner=4pt,
      frametitlerule=false,%
      apptotikzsetting={
        \tikzset{mdfframetitlebackground/.append style={fill=black!25}}
        \tikzset{mdfbackground/.append style={fill=black!10}}
      },
      frametitlefont={\sffamily\bfseries\small},
      theoremtitlefont={\sffamily\small},
      font=\itshape,
      frametitleaboveskip=3pt plus 1pt,
      frametitlebelowskip=2pt plus 1pt,
      innertopmargin=7pt plus 1pt minus 1pt,
      innerbottommargin=8pt plus 1pt minus 1pt,
      usetwoside=false,
      leftmargin=0pt,
      rightmargin=0pt,
      skipabove=14pt plus 2pt minus 6pt,
      skipbelow=14pt plus 2pt minus 6pt
    }        
    \mdtheorem[style=mdtheoremstyle]{fancytheorem}{Theorem}

    \begin{document}

    \lipsum[1]
    \begin{fancytheorem}
      Deep and significant result.
    \end{fancytheorem}
    \lipsum[2]

    \end{document}

使用(pdflatex 和)TL2011 编译它,我得到了预期的结果:

在此处输入图片描述

但通过 TL2012 运行同一个文件,我得到:

在此处输入图片描述

请注意,整个框架被推到右侧,大约 10pt。

当然,我可以修改边距,使 2012 版本看起来一样,但我希望 documentclass 能够同样工作,无论 TL 版本是什么。有什么建议吗?

答案1

您有很多尾随空格。查找%%%

\mdfdefinestyle{mdtheoremstyle}{%%%
  linewidth=1pt,
  roundcorner=4pt,
  frametitlerule=false,
  apptotikzsetting={%%%
    \tikzset{mdfframetitlebackground/.append style={fill=black!25}}%%%
    \tikzset{mdfbackground/.append style={fill=black!10}}%%%
  },
[...]

将它们插入到您的示例中,它就应该可以工作。

相关内容