在下图中,我不想显示“第 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
和 使用提供的功能来更改标题的样式;或book
和titlesec
。