不要将特定的未编号的 \chapter* 添加到目录中

不要将特定的未编号的 \chapter* 添加到目录中

我正在处理一份文档,该文档使用文档类文件强制所有创建的未编号章节\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

分组提供了一个范围,在此范围内,宏更改被视为临时的(除非明确地将更改设为全局更改)。

相关内容