我正在使用来自网站的模板,每次开始新章节时,都会出现“第 3 章”之类的内容,这很荒谬。我该如何从代码中编辑掉此功能?
答案1
您正在使用dmathesis
基于标准report
文档类并保留用于格式化章节标题的标准定义,因此您可以使用titlesec
包裹:
\documentclass{dmathesis}
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\normalfont\bfseries}{}{0pt}{\Huge}
\begin{document}
\tableofcontents
\chapter{Test chapter one}
\chapter[Two]{Test chapter two}
\end{document}
如果不想加载titlesec
,可以重新定义\@makechaptertitle
:
\documentclass{dmathesis}
\makeatletter
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
% \ifnum \c@secnumdepth >\m@ne
% \huge\bfseries \@chapapp\space \thechapter
% \par\nobreak
% \vskip 20\p@
% \fi
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
\makeatother
\begin{document}
\tableofcontents
\chapter{Test chapter one}
\chapter[Two]{Test chapter two}
\end{document}
在这两种情况下,目录都是:
第一章第一页如下:
如您所见, \chapter 的全部功能都被保留(您可以使用可选参数来表示目录中最终的不同条目,并且标题和标记也已适当生成)。
另一个选择是使用以下方法修补命令,例如,etoolbox
。
答案2
以下添加使用xparse
强制将章节视为带星号的章节:
\documentclass{dmathesis}
\usepackage{xparse}
\let\oldchapter\chapter
\RenewDocumentCommand{\chapter}{s o m}{%
\oldchapter*{#3}%
\IfNoValueTF{#2}
{\addcontentsline{toc}{chapter}{#3}}%
{\addcontentsline{toc}{chapter}{#2}}}
\begin{document}
\tableofcontents
\chapter[A test chapter]{Test chapter}
\end{document}
一个优点是,它仍然允许使用 为每个章节设置不同的 ToC 条目\chapter[<ToC entry>]{<Body entry>}
。