答案1
我对您的目标的解释如下:
不要以大写形式呈现章节级和节级标题字符串
去掉“Chapter”前缀字符串,并删除章节号和节号后的“点”
不要将章节和节标题字符串排版为倾斜的字体形状。
在book
文档类中,低级宏\ps@headings
控制着标题行的构造方式。为了实现您的目标,需要按如下方式修改此宏(在序言中插入代码):
\usepackage{etoolbox} % for '\patchcmd' macro
\makeatletter
\patchcmd{\ps@headings}{\MakeUppercase}{}{}{}
\patchcmd{\ps@headings}{\MakeUppercase}{}{}{}
\patchcmd{\ps@headings}{\MakeUppercase}{}{}{}
\patchcmd{\ps@headings}{\@chapapp\ \thechapter. \ }{\thechapter\ }{}{}
\patchcmd{\ps@headings}{\@chapapp\ \thechapter. \ }{\thechapter\ }{}{}
\patchcmd{\ps@headings}{\thesection. \ }{\thesection\ }{}{}
\patchcmd{\ps@headings}{\slshape}{}{}{}
\patchcmd{\ps@headings}{\slshape}{}{}{}
\patchcmd{\ps@headings}{\slshape}{}{}{}
\makeatother
\pagestyle{headings} % re-load the modified code of `\ps@headings`
附录回答楼主的后续问题:为了使\tableofcontents
、\listoftables
和\listoffigures
命令以及thebibliography
和theindex
环境生成的标头信息不受 的作用影响\MakeUppercase
,还需要运行以下五条指令两次:
\patchcmd{\tableofcontents}{\MakeUppercase}{}{}{}
\patchcmd{\listoffigures}{\MakeUppercase}{}{}{}
\patchcmd{\listoftables}{\MakeUppercase}{}{}{}
\patchcmd{\thebibliography}{\MakeUppercase}{}{}{}
\patchcmd{\theindex}{\MakeUppercase}{}{}{}