希望达到的效果是,在修改定理样式时,无需重新写出\newtheoremstyle
的全部参数,希望可以继承自某个默认样式例如remark
或者plain
,而只用键值对覆盖新的选项参数。
例如下例:
实际上例中\newtheoremstyle
的大部分参数都是来自plain
...这样的syntax
极不优雅。另一个失败的尝试如下,希望使用keythorems
的hook
:
\documentclass[fontset=ubuntu]{ctexart}
\usepackage{zhlipsum}
\usepackage{amsthm}
\usepackage{keytheorems}
\newkeytheorem{theorem}[style=plain,title=定理]
\addtotheoremhook[theorem]{posthead}{\hspace*{2\ccwd}}
% // 有没有办法不显式重新指定新的 style, 而仅仅继承自 plain样式然后覆盖 headindent选项呢?
% // 例如上面失败的hook...
\begin{document}
\section{第一第一}
\section{第二第二}
\begin{theorem}
这是一个定理\zhlipsum[2]
\end{theorem}
\end{document}
但是效果不能如愿。目标是希望在定理前缩进两个文字的宽度...
感谢Eureka老师的帮助,似乎直接prehead
的hook在此处不适合该需求。
怪我妹仔细看文档,文档中有inherit-style
的选项,可以很方便地继承自某一样式。
如下例子:
\documentclass[fontset=ubuntu]{ctexart}
\usepackage{zhlipsum}
\usepackage{amsthm}
\usepackage{keytheorems}
\newkeytheoremstyle{IndentTheorem}{
inherit-style=plain,
headindent=2\ccwd
}
\newkeytheorem{theorem}[style=IndentTheorem,title=定理]
\begin{document}
\section{第一第一}
\section{第二第二}
\begin{theorem}
这是一个定理\zhlipsum[2]
\end{theorem}
\end{document}