我正在处理一份文档,该文档使用文档类文件强制所有创建的未编号章节\chapter*
出现在目录中。
问题是我需要在文档中添加一个未编号的章节,但(例外)我不希望它出现在目录中。但我做不到,因为每次\chapter*
使用时它都会通过\addcontentsline
宏添加到目录中。
.cls
以下是指示 every\chapter*
出现在目录中的文件片段:
\renewcommand{\@makeschapterhead}[1]{%
\noindent
\begin{center}
\LARGE\sffamily\bfseries \MakeUppercase{#1} \par\nobreak
\end{center}
\vspace{3ex}
\addcontentsline{toc}{chapter}{\large\sffamily\bfseries #1} % <-- PUTS EVERY CHAPTER* IN THE TOC!
}
我怎样才能解决这个问题而不影响文档中用 定义的其他章节\chapter*
?
是否可以定义一个自定义章节命令,\chapter*
除了在目录中添加条目之外,它可以完成所有操作?
答案1
您可以暂时停用\addcontentsline
宏,只捕获其参数但不对其执行任何操作。例如
\begingroup
\renewcomand{\addcontentsline}[3]{}% Make \addcontentsline a no-op
\chapter*{Very special starred chapter}
\endgroup
分组提供了一个范围,在此范围内,宏更改被视为临时的(除非明确地将更改设为全局更改)。