如何更改 amsbook 类中的章节/部分样式?

如何更改 amsbook 类中的章节/部分样式?

在下图中,我不想显示“第 1 章”,只显示我为该章指定的名称(即此处的“第一章”),并且不将章节标题设为粗体,而只是将其设为大写。有人知道如何修改这些属性吗? 在此处输入图片描述

下面是生成上述图像的代码:

\documentclass{amsbook}

\begin{document}
\title{Test}
\author{Author}
\date{\today}
\maketitle
\tableofcontents
\clearpage

\chapter[First Chapter]{First Chapter}
\section[First Section]{First Section}
This is the first section of the first chapter

\end{document}

这里是我第一点的部分解决方案,但是,我不希望顶部有“1”,而只希望有“第一章”。

答案1

您需要进行相当深度的手术。

删除“第 N 章”并不难:只需从中删除相关部分即可\@makechapterhead

删除粗体也很容易,只需\bfseries在定义中删除\section即可。将章节标题大写,您还需要更多。

#8我的想法是将的定义\@sect(由给定的标题替换)更改为\formatsection{#8}并适当定义\formatsection。有必要做一些\csname技巧,以便只对部分进行大写转换。

例如,由于我们没有定义\formatsubsection,所以小节标题将不会大写。

\documentclass{amsbook}
\usepackage{etoolbox}

\makeatletter
\def\@makechapterhead#1{\global\topskip 7.5pc\relax
  \begingroup
  \fontsize{\@xivpt}{18}\bfseries\centering
%    \ifnum\c@secnumdepth>\m@ne
%      \leavevmode \hskip-\leftskip
%      \rlap{\vbox to\z@{\vss
%          \centerline{\normalsize\mdseries
%              \uppercase\@xp{\chaptername}\enspace\thechapter}
%          \vskip 3pc}}\hskip\leftskip\fi
     #1\par \endgroup
  \skip@34\p@ \advance\skip@-\normalbaselineskip
  \vskip\skip@ }
\def\section{%
  \@startsection{section}% #1
  {1}% #2
  \z@ % #3
  {.7\linespacing\@plus\linespacing}% #4
  {.5\linespacing}% #5
%  {\normalfont\bfseries\centering}% <-- original
  {\normalfont\centering}% #6
}
\patchcmd{\@sect}{#8\par}{\csname format#1\endcsname{#8}\par}{}{}
\newcommand{\formatsection}[1]{\MakeUppercase{#1}}
\makeatother

\begin{document}
\title{Test}
\author{Author}
\date{\today}
\maketitle
\tableofcontents

\chapter{First Chapter}

\section{First Section}

\subsection{First Subsection}

This is the first section of the first chapter

\end{document}

在此处输入图片描述

我的建议是不是使用amsbook,但memoir和 使用提供的功能来更改标题的样式;或booktitlesec

相关内容