20 使用keytheorems可否继承自默认样式后修改某个key-vals

发布于 2025-01-10 21:24:10

希望达到的效果是,在修改定理样式时,无需重新写出\newtheoremstyle的全部参数,希望可以继承自某个默认样式例如remark或者plain,而只用键值对覆盖新的选项参数。

例如下例:

image.png

实际上例中\newtheoremstyle的大部分参数都是来自plain...这样的syntax极不优雅。另一个失败的尝试如下,希望使用keythoremshook:

\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}

但是效果不能如愿。目标是希望在定理前缩进两个文字的宽度...

image.png

查看更多

关注者
0
被浏览
65
1 个回答
Sagittarius Rover
我要成为Typst糕手/(ㄒoㄒ)/~~

感谢Eureka老师的帮助,似乎直接prehead的hook在此处不适合该需求。

怪我妹仔细看文档,文档中有inherit-style的选项,可以很方便地继承自某一样式。

image.png

如下例子:

\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}

image.png

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览