强制将小节标题改为标题大小写(AMSart 类)

强制将小节标题改为标题大小写(AMSart 类)

有没有办法强制 amsart 中子部分的标题默认为标题大小写?我试过了,但没有成功:

\documentclass{amsart}
\usepackage[utf8]{inputenc}
\usepackage{etoolbox}
\usepackage{titlecaps}

\makeatletter
\patchcmd{\subsection}{\bfseries}{\titlecap}{}{}
\makeatother

\begin{document}

\maketitle

\section{Section}

\subsection{Subsection with lowercase letters}

\end{document}

答案1

\bfseries替换为\titlecap不起作用的原因是它\bfseries是一个不带参数的声明,而是\titlecap一个需要参数的宏。

但是,这种方法可能有效,重新定义\@sect为查找子节(当#2= 2 时),并在找到后将子节标题替换#8\titlecap{#8}。我还关闭了\bfseries#6因为这似乎是 OP 想要的。

\documentclass{amsart}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{etoolbox}
\usepackage{titlecaps}

\makeatletter
\let\sv@sect\@sect
\def\@sect#1#2#3#4#5#6[#7]#8{%
  \ifnum#2=2 
    \def\next{\sv@sect{#1}{#2}{#3}{#4}{#5}{\normalfont}[#7]{\titlecap{#8}}}%
  \else
    \def\next{\sv@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{#8}}%
  \fi
  \next
}
\makeatother

\begin{document}

\section{Section}

\subsection{Subsection with lowercase letters}

\subsection{another test case}

\end{document}

在此处输入图片描述

答案2

看看我的代码。它通过使用\uppercase

\documentclass{amsart}
\usepackage[utf8]{inputenc}
\usepackage{etoolbox}
\usepackage{titlecaps}

\makeatletter
\patchcmd{\subsection}{\bfseries}{\titlecap}{}{}
\makeatother

\begin{document}


\maketitle

\section{\uppercase{Section}}

\subsection{\uppercase{Subsection with lowercase letters}}

\end{document}

希望这能有效。

在此处输入图片描述

相关内容