我在使用帕斯基普和thm工具包。我想使用 thmtools 提供的框来构建我的定理引理等。我感兴趣的是鍵盤=M盒子,但一旦装载 parskip 包,一切都出错了。我不想放弃的原因帕斯基普是我不喜欢自动缩进,而它对于段落之间的间隔很实用。
让我用代码和图像来说明这一点。
未加载 parskip:
\documentclass[12pt]{article}
\usepackage{amsmath}
%\usepackage{parskip}
\usepackage{amsthm,thmtools}
\declaretheorem[thmbox=M]{theorem}
\begin{document}
\begin{theorem}[without parskip]
blabla bla bla,
\[\sum_{k=1}^n k^2 = \dfrac{n(n+1)(2n+1)}{6}.\]
\end{theorem}
\end{document}
结果如下,
加载 parskip 后:
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{parskip}
\usepackage{amsthm,thmtools}
\declaretheorem[thmbox=M]{theorem}
\begin{document}
\begin{theorem}[with parskip]
blabla bla bla,
\[\sum_{k=1}^n k^2 = \dfrac{n(n+1)(2n+1)}{6}.\]
\end{theorem}
\end{document}
导致一片混乱,
有谁有解决方案来解决这个问题?
多谢!
答案1
thmbox
将 option 的值初始化leftmargin
为\parindent
。因此,如果thmbox
加载后 parskip
,leftmargin
设置为 0pt 后问题再次出现:
\documentclass[12pt]{article}
\usepackage{parskip}
\usepackage{thmbox}
\begin{document}
\begin{thmbox}[M]{The title}
Some text, some more text, asufficient amount to get afull box with several lines.
\end{thmbox}
% with `article` class option 12pt, \parindent defaults to 1.5em
\begin{thmbox}[M,leftmargin=1.5em]{The title}
Some text, some more text, asufficient amount to get afull box with several lines.
\end{thmbox}
\end{document}
如需直接使用thmbox
,请在工作前加载parskip
。
情况有点混乱thmtools
:它只在第一次使用选项thmbox
时加载。在所有这些用法之后加载仍然是可行的,但在这里我建议在整个序言之后和之前使用的后期钩子中加载:(它相当于来自包。)\declaretheorem
thmbox={<thmbox options>}
parskip
\declaretheorem
parskip
begindocument
begindocument/before
\AtEndPreamble
etoolbox
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{amsthm,thmtools}
\usepackage[pass,showframe]{geometry}
\declaretheorem[thmbox={M,leftmargin=1.5em}]{theorem}
\AddToHook{begindocument/before}{%
\usepackage{parskip}%
}
\begin{document}
\begin{theorem}[with parskip]
blabla bla bla,
\[\sum_{k=1}^n k^2 = \dfrac{n(n+1)(2n+1)}{6}.\]
\end{theorem}
\end{document}
\parindent
还可以在加载之前备份值parskip
,然后将该值传递给thmbox
选项leftmargin
,例如
\newlength{\origparindent}
\setlength{\origparindent}{\parindent}
\usepackage{parskip}
...
\declaretheorem{thmbox={M,leftmargin=\origparindent}}{theorem}