打印 \toccontents 和 \tableofcontents

打印 \toccontents 和 \tableofcontents

我想打印\toccontents\tableofcontents(在文档的两个不同部分)。但是,打印第一个会导致第二个无法打印。我见过许多相关问题,但没有人能帮我解决。

我正在使用类report(带有notitlepage)。我也在使用titlesec

\documentclass[notitlepage]{report}

\makeatletter
\newcommand*{\toccontents}{\@starttoc{toc}}
\makeatother

\begin{document}

\noindent\makebox[\textwidth][c]{%
    \begin{minipage}{0.75\textwidth}
        \sffamily
        \setcounter{tocdepth}{0}
        {\Large \bfseries Table of Contents}\par
        \toccontents
        \normalfont
    \end{minipage}}

\newpage
\tableofcontents

\newpage
\chapter{Section}

words

\end{document}

答案1

这是一个解决方案etoc。我们需要使用\etocsettocstyle 来提供样式(间距和标题)

\documentclass[notitlepage]{report}
\usepackage{etoc}

\newcommand{\mytableofcontents}{%
{\etocsettocstyle{\centering\begin{minipage}{.75\textwidth}\sffamily
{\Large \bfseries \contentsname\par}}{\end{minipage}\par}
\etocsetnexttocdepth{0}
\tableofcontents}}

\begin{document}

\mytableofcontents

\tableofcontents

\chapter{First chapter}
\section{Foo}
\section{Foo bar}
\chapter{Second chapter}
\section{Bla}
\section{Bla bla}

words

\end{document}

答案2

使用类( (和)类memoir的超集),您可以在一个文档中包含多个目录。如果需要,每个目录可以具有不同的配置。用户手册(reportbook> texdoc memoir)既有简短的目录,也有完整的目录,但风格和部分有很大不同9.2.5 示例:多个内容记录执行此操作的代码。

相关内容