newmdtheoremenv
我在格式化环境或将mdtheorem
环境添加到定理表时遇到了麻烦,这取决于您如何看待它。
我的 MWE:
\documentclass{article}
\usepackage{amsthm,thmtools}
\usepackage{mdframed}
\usepackage{xcolor}
\usepackage{mdframed}
\mdfdefinestyle{guidelinestyle}{%
linecolor=black,
linewidth=1pt,
frametitlerule=true,
frametitlefont=\sffamily\bfseries,
frametitlebackgroundcolor=gray!20,
innertopmargin=\topskip,
}
% \newmdenv[style=guidelinestyle]{asEnv}{asEnv}[section]
\newmdtheoremenv[style=guidelinestyle]{asTheoremEnv}{asTheoremEnv}[section]
\mdtheorem[style=guidelinestyle]{asTheorem}{asTheorem}[section]
\begin{document}
\expandafter\csname [email protected]\endcsname
%\listoftheorems[ignoreall,show=xxx] % this is how I actually display it in my document
\listoftheorems
\section{My section}
% \begin{asEnv}[As environment, it appears in ToTh]
% But it doesn't look like what I want.
% \end{asEnv}
\begin{asTheoremEnv}[As theoremEnv, it appears in ToTh]
But it doesn't look like what I want.
\end{asTheoremEnv}
\begin{asTheorem}[As theorem, it does not appear in ToTh]
But it looks a lot better!
\end{asTheorem}
\end{document}
这将生成如下文档:
我已经发现这个问题描述了同样的问题,但由于它可以追溯到 2012 年 4 月,而我的版本mdframed
是 2013 年的,所以我认为它不适用(而且我看不出它应该在哪个版本中得到解决)。
我想要的是,环境看起来像文档中的后者,但出现在定理表中。
有人能帮我实现这个功能吗?我不太关心具体用了什么包,如果
- 它出现在定理列表中,并且
- 定理有边框和某种突出显示的标题栏
答案1
您可以教导thmtools
将\mdtheorem
其用作\newtheorem
命令。文档中有一个提示,thmtools
说明它如何处理该thmbox
选项。
如果你引入一个新mdthm
密钥:
\makeatletter
\define@key{thmdef}{mdthm}[{}]{%
\thmt@trytwice{\def\thmt@theoremdefiner{\mdtheorem[#1]}}{}}
\makeatother
那么你可以写
\declaretheorem[mdthm={style=guidelinestyle},numberwithin=section]{theorem}
mdframed
将选项作为参数传递给mdthm
。这将产生您请求的定理样式和定理列表中的条目:
\documentclass{article}
\usepackage{mdframed}
\usepackage{amsthm,thmtools}
\usepackage{xcolor}
\usepackage{mdframed}
\mdfdefinestyle{guidelinestyle}{%
linecolor=black,
linewidth=1pt,
frametitlerule=true,
frametitlefont=\sffamily\bfseries,
frametitlebackgroundcolor=gray!20,
innertopmargin=\topskip,
}
\makeatletter
\define@key{thmdef}{mdthm}[{}]{%
\thmt@trytwice{\def\thmt@theoremdefiner{\mdtheorem[#1]}}{}}
\makeatother
\declaretheorem[mdthm={style=guidelinestyle},numberwithin=section]{theorem}
\begin{document}
\listoftheorems
\section{My section}
\begin{theorem}[Is in list of theorems!]
Text.
\end{theorem}
\end{document}