我的文档中有两个目录,一个用于整个文档(“主”目录),另一个仅用于附录。我想从“主”目录中的附录中删除所有章节和子章节,但不从附录的目录中删除。这可以在不重新编码所有内容的情况下实现吗?我已使用以下方法绑定:
\newcommand{\nocontentsline}[3]{}
\newcommand{\tocless}[2]{\bgroup\let\addcontentsline=\nocontentsline#1{#2}\egrou
和
\tocless\section{section name}
但这样我就丢失了附录中较小目录中的子部分。我尝试了上述命令的不同位置,但不起作用。
这是我现在生成的两个目录的代码:
\usepackage{titletoc}
\documentclass[a4paper, 12pt]{book}
\begin{document}
%first TOC at beginning of document:
\tableofcontents
%Second TOC just before Appendix for the Appendix:
\appendix\addcontentsline{toc}{chapter}{Appendix}
\startcontents
\renewcommand{\contentsname}{Appendix}
\printcontents{}{0}{%
\setcounter{tocdepth}{2}%
\tableofcontents}
有人知道如何解决这个问题吗?J
答案1
这是一个解决方案。
使用
\addcontentsline{toc}{chapter}{Appendix}
\addtocontents{toc}{\setcounter{tocdepth}{0}} %for main toc
\addtocontents{ptc}{\setcounter{tocdepth}{2}} %for appendix toc
更新由于扩展(calc
包问题见评论)最好使用
\addcontentsline{toc}{chapter}{Appendix}
\addtocontents{toc}{\protect\setcounter{tocdepth}{0}}
\addtocontents{ptc}{\protect\setcounter{tocdepth}{2}}
\documentclass[a4paper, 12pt]{book}
\usepackage{titletoc}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\blinddocument
\blinddocument
%Second TOC just before Appendix for the Appendix:
\cleardoublepage
\appendix
\addcontentsline{toc}{chapter}{Appendix}
\addtocontents{toc}{\setcounter{tocdepth}{0}}
\addtocontents{ptc}{\setcounter{tocdepth}{2}}
\startcontents
\renewcommand{\contentsname}{Appendix}
\printcontents{}{0}{%
\setcounter{tocdepth}{2}%
\tableofcontents}
\blinddocument
\blinddocument
\end{document}
主要目录
附录目录