更新:1.2 版(截至 2023-03-01)已etoc
修复当前问题的缺陷主题。
更新:问题精确且具体化。
语境
我的真实用例:
依赖于许多
etoc
功能,其中包括多个目录,需要列出目录:我有 2 个(使用 可轻松实现
etoc
):- 第一个(在文档的开头)只是一个大纲(不太深入),
- 第二个(在文档末尾)是详细内容(更深入)。
因此可以从第一个 TOC 轻松到达第二个TOC 。
经过测试的解决方案
获得目录列表的一种简单方法是使用包tocbibind
。问题是,此包与不兼容etoc
。确实,正如以下示例所指出的那样:
- 加载前者前后者破坏了
tocbibind
功能:没有列出目录, - 加载前者后后者破坏了
etoc
功能:例如\etocsetnexttocdepth
被忽略并且只能填充一个TOC。
tocbibind
之前etoc
:前者的功能被毁(未列出目录)
\documentclass{article}
\usepackage{tocbibind}
\usepackage{etoc}
\begin{document}
\etocsetnexttocdepth{section}
\tableofcontents
\section{A section}
\subsection{A subsection of a section}
\subsection{Another subsection of a section}
\section{Another section}
\subsection{A subsection of another section}
\subsection{Another subsection of another section}
\tableofcontents
\end{document}
etoc
之前tocbibind
:前者的功能被破坏(\etocsetnexttocdepth
忽略且第二个目录为空)
\documentclass{article}
\usepackage{etoc}
\usepackage{tocbibind}
\begin{document}
\etocsetnexttocdepth{section}
\tableofcontents
\section{A section}
\subsection{A subsection of a section}
\subsection{Another subsection of a section}
\section{Another section}
\subsection{A subsection of another section}
\subsection{Another subsection of another section}
\tableofcontents
\end{document}
问题
我猜想etoc
包可以让我们在目录中显示目录,但是如何做到这一点(没有tocbibind
它的帮助是不兼容的)?
答案1
tocbibind
与etoc
您的需要一起使用\usepackage[nottoc]{tocbibind}
。
除此之外,也许这种代码可以帮助您解决具体问题。
\documentclass{article}
\usepackage{etoc}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\begin{document}
\etocsetnexttocdepth{section}
\tableofcontents
\etoctoccontentsline{section}{Table des mati\`eres initiales}
\section{A section}
\subsection{A subsection of a section}
\subsection{Another subsection of a section}
\section{Another section}
\subsection{A subsection of another section}
\subsection{Another subsection of another section}
\tableofcontents
\etoctoccontentsline{section}{Table des mati\`eres finales}
\end{document}
答案2
经过您的编辑后,最终有趣的问题仍然不清楚,至少对我来说是这样。
我的问题是,为什么要将目录行添加到目录中?读者可以从这一行中获得什么额外信息?我认为什么都不能。
尽管如此,在解释您的代码时,在我看来,您似乎想要删除目录中显示的子部分。如果该假设正确,您可以使用\setcounter{tocdepth}{N}
排除级别 之外的所有内容N
。对于您的情况,您需要N
选择1
。
这是我的建议
\documentclass{article}
\usepackage{etoc}
\usepackage{tocbibind}
\begin{document}
%% Prevent the \subsections from being displayed in the TOC
\setcounter{tocdepth}{1}
\tableofcontents
\section{A section}
\subsection{A subsection of a section}
\subsection{Another subsection of a section}
\section{Another section}
\subsection{A subsection of another section}
\subsection{Another subsection of another section}
\end{document}
导致