目前,附录列在我的目录中,如下图所示。现在我想删除 A,只在目录中保留“附录”,但同时,不是丢失附录中的 A.1、A.2、A.3 等表格编号。我该怎么做?
答案1
ToC 的数字打印机制通常称为\numberline
。它采用一个参数,描述如何在 ToC 中设置数字。您可以让此宏从调用 开始吞噬其参数(而不对其执行任何操作)\appendix
:
\documentclass{report}
%\usepackage{hyperref}
\makeatletter
%\AtBeginDocument{\let\stored@numberline\numberline}% Store \numberline
%\AtEndDocument{\addtocontents{toc}{\string\let\string\numberline\string\stored@numberline}}% Restore \numberline
\g@addto@macro\appendix{\addtocontents{toc}{\string\let\string\numberline\string\@gobble}}
\makeatother
\begin{document}
\tableofcontents
\chapter{A chapter}
\section{A section}
\appendix
\chapter{Appendix}
\begin{table}[ht]
\caption{A caption}
\end{table}
\end{document}
以上仍然保持表格(或之后的其他层次结构\appendix
)的正确编号:
它也适用于hyperref
如果你正在使用它。
但请注意,变化是书面到.toc
文件。因此,对\numberline
(到\@gobble
)的更改可能会影响全部它在您的文档中的未来用途后已读入。因此,如果您使用和/或.toc
,则可能需要在目录末尾重新插入它。\listoffigures
\listoftables
\numberline
最小示例中还添加了两个允许存储和恢复的构造。如果使用它们,您的.toc
代码应该类似于:
\contentsline {chapter}{\numberline {1}A chapter}{2}
\contentsline {section}{\numberline {1.1}A section}{2}
\let \numberline \@gobble
\contentsline {chapter}{\numberline {A}Appendix}{3}
\let \numberline \stored@numberline