我正在写一篇大文章包含一系列复杂附录的类型文档。
我使用包中的工具在每个附录中都添加了一个本地目录,其中列出了该特定附录中的章节和小节(附录 A 的本地目录仅列出了该附录的小节等)etoc
。
我想做的是让我的附录部分包含编号的子部分/子子部分,但子部分/子子部分仅出现在附录本地目录中。但是我仍然希望附录部分出现在主目录中。
以下是我的设置的粗略近似值:
\documentclass{article}
\usepackage{tocloft} % Adds tools for TOC customization
\usepackage{etoc} % Local toc
\usepackage[titletoc,title]{appendix}
\begin{document}
\setcounter{tocdepth}{3}
\tableofcontents
\section{First section}
\subsection{a Subsection}
\section{Second section}
\subsection{a Subsection}
\subsection{Another Subsection}
\begin{appendix}
\section{Appendix A} % <- I want this to appear in the main TOC
\etocsetnexttocdepth{2}
\localtableofcontents
\subsection{Appendix Subsection} % <- I want this to appear in the local TOC, but not the main TOC
\end{appendix}
\end{document}
输出结果如下:
答案1
您只需\addtocontents
向主目录添加一个命令即可减少tocdepth
。由于您正在使用etoc
包,因此可以使用命令完成此\etocsettocdepth.toc
操作。然后,您必须告诉本地目录忽略当前目录深度并使用其自己的目录深度。这可以通过 完成\etocignoretoctocdepth
。将所有这些命令放在环境的开头似乎最容易appendix
。我使用包完成了此操作etoolbox
:
\documentclass{article}
\usepackage{tocloft} % Adds tools for TOC customization
\usepackage{etoc} % Local toc
\usepackage[titletoc,title]{appendix}
\usepackage{etoolbox}
\AtBeginEnvironment{appendix}{\etocsettocdepth.toc{section}\etocignoretoctocdepth
\etocsetnexttocdepth{subsection}}
\begin{document}
\setcounter{tocdepth}{3}
\tableofcontents
\section{First section}
\subsection{a Subsection}
\section{Second section}
\subsection{a Subsection}
\subsection{Another Subsection}
\begin{appendix}
\section{Appendix A} % <- I want this to appear in the main TOC
\localtableofcontents
\subsection{Appendix Subsection} % <- I want this to appear in the local TOC, but not the main TOC
\end{appendix}
\end{document}
(在我看来,这etoc
是一个替代品,tocloft
所以我不确定它们是否应该一起使用,但我已将包留在了您的文档中。)