我正在使用 thmtools 定义自定义示例环境。我将头部样式设为斜体,但数字样式不正确:它以正常模式显示,而不是斜体(数字后的点样式正确)。如果我将头部样式设为粗体,则数字样式正确。是我遗漏了什么还是有错误?
最小工作示例:
\documentclass[11pt,twoside]{article}
\usepackage{amsthm,thmtools}
\declaretheoremstyle[
name=Example,
spaceabove=\topsep, spacebelow=\topsep,
headindent=0pt, postheadspace=1ex,
headfont=\normalfont\itshape, headpunct=.,
bodyfont=\normalfont,
qed=$\diamond$
]{example}
\declaretheorem[style=example]{example}
\begin{document}
\begin{example}
test
\end{example}
\end{document}
答案1
问题是thmtools
定义
\def\NUMBER{\bgroup\@upn{##2}\egroup}
和
\let\@upn=\textup
因此,更改为斜体不会对始终以直立字体排版的数字产生任何影响;覆盖此设置的一种方法(我不确定这是否是一种好的印刷习惯)是使用preheadhook
重新定义\@upn
:
\documentclass[11pt,twoside]{article}
\usepackage{amsthm,thmtools}
\makeatletter
\declaretheoremstyle[
preheadhook=\renewcommand\@upn{},
name=Example,
spaceabove=\topsep, spacebelow=\topsep,
headindent=0pt, postheadspace=1ex,
headfont=\itshape,notefont=\itshape, headpunct=.,
bodyfont=\normalfont,
qed=$\diamond$
]{example}
\declaretheorem[style=example]{example}
\makeatother
\begin{document}
\begin{example}
test
\end{example}
\end{document}