我正在使用该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
使其只能在组内发挥作用。