我注意到 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}}%%%
},
[...]
将它们插入到您的示例中,它就应该可以工作。