从 amsbook 中的目录中排除章节

从 amsbook 中的目录中排除章节

我正在使用该amsbook课程编写一本书,并且我使用 添加了一个致谢页\chapter*{},认为它不会出现在目录中。

然而,它确实如此(并且根据手册,出于某种原因它应该这样做amsbook);所以问题是,我如何将它从 ToC 中删除?

答案1

amsmath 常见问题解答有一个解决方案。下面是它的修改版,完整示例:

\documentclass{amsbook}
\DeclareRobustCommand{\gobblefour}[4]{}
\newcommand*{\SkipTocEntry}{\addtocontents{toc}{\gobblefour}}
\begin{document}
\tableofcontents
\SkipTocEntry\chapter*{Hidden chapter}
\chapter{Shown chapter}
\end{document}

只需将其放置\SkipTocEntry在您想要隐藏的目录条目之前。

如果使用hyperref,请多带一个参数:

\DeclareRobustCommand{\gobblefive}[5]{}
\newcommand*{\SkipTocEntry}{\addtocontents{toc}{\gobblefive}}

答案2

tocdepth您可以更改目录中不得显示的特定部分单元之前的计数器值,然后恢复原始值:

\documentclass{amsbook}

\begin{document}
\tableofcontents
\addtocontents{toc}{\setcounter{tocdepth}{-1}}
\chapter*{Preface}
\addtocontents{toc}{\setcounter{tocdepth}{2}}

\end{document}

答案3

更新以\addtocontents吞噬它的参数也可用于将其条目从 ToC 中删除:

\documentclass{amsbook}
\begin{document}
\tableofcontents
{\renewcommand{\addtocontents}[2]{}
\chapter*{Preface}}% Not included in ToC
\chapter*{Acknowledgements}% Included in ToC
\end{document}

本地化\renewcommand使其只能在组内发挥作用。

相关内容