在amsart
类中,小节标题以粗体显示。有没有办法将它们包含在内\textsc
?
答案1
我本来要建议您加载sectsty
包并发出指令\subsectionfont{\normalfont\scshape}
,但后来我想起该sectsty
包与文档类不兼容amsart
。amsart
文档类定义\subsection
如下:
\def\subsection{\@startsection{subsection}{2}%
\z@{.5\linespacing\@plus.7\linespacing}{-.5em}%
{\normalfont\bfseries}}
该指令\@startsection
是一个非常低级的 LaTeX 宏,它接受六个 [6!] 个参数。最后一个参数(默认值:)\normalfont\bfseries
与子节级标题文本使用的字体形状和其他特征相关。
为了实现所需的格式目标,只需将以下说明添加到文档的序言中即可:
\usepackage{etoolbox} % for "\patchcmd" macro
\patchcmd{\subsection}{\bfseries}{\scshape}{}{}
请注意,前面代码块中的第二行包含\scshape
而不是\textsc
。前者是一个 switch(就像\bfseries
),它执行不是接受一个参数,而后者是接受一个参数的命令。请注意,原始定义包含\bfseries
,而不是\textbf
,原因相同:这里需要一个 switch。
完整的 MWE:
\documentclass{amsart}
\usepackage{etoolbox}
\patchcmd{\subsection}{\bfseries}{\scshape}{}{}
\begin{document}
\setcounter{section}{1}
\subsection{Hello World}
\end{document}