语境

语境

更新:1.2 版(截至 2023-03-01)已etoc修复当前问题的缺陷主题。

更新:问题精确且具体化。

语境

我的真实用例:

  1. 依赖于许多etoc功能,其中包括多个目录,

  2. 需要列出目录:我有 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

tocbibindetoc您的需要一起使用\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}

导致

在此处输入图片描述

相关内容