![两个目录](https://linux22.com/image/252830/%E4%B8%A4%E4%B8%AA%E7%9B%AE%E5%BD%95.png)
请参阅下面的最小说明。我想要两个目录:一个只提供文档的粗略结构,另一个提供所有细节,直至子部分。下面粘贴的代码应该可以做到这一点,但第二个目录没有显示,我不明白。
\documentclass{report}
\begin{document}
\setcounter{tocdepth}{1}
\setcounter{secnumdepth}{3}
\tableofcontents
\renewcommand*\contentsname{Contents (detailed)}
\setcounter{tocdepth}{3}
\tableofcontents
\chapter{XXX}
\section{YYY}
\subsection{WER}
\subsubsection{ABC}
\subsubsection{DEF}
\subsection{ZTR}
\subsubsection{OIU}
\subsubsection{OIZ}
\subsubsection{POI}
\section{YYY}
\subsection{WER}
\subsubsection{EDC}
\subsubsection{RFV}
\subsection{TGB}
\subsubsection{ZHN}
\subsubsection{OUH}
\subsubsection{WEK}
\chapter{ZZZ}
\chapter{AAA}
\end{document}
刚刚注意到 hyperref 仍然存在问题:
\documentclass[10pt, a4paper]{report}
\usepackage{shorttoc}
\usepackage{hyperref}
\begin{document}
\setcounter{secnumdepth}{3}
\pdfbookmark[1]{Contents}{toc}
\shorttoc{Contents}{1}
\pdfbookmark[1]{Contents (detailed)}{toc}
\shorttoc{Contents (detailed)}{3}
\tableofcontents
\chapter{XXX}
\section{YYY}
\subsection{WER}
\subsubsection{ABC}
\subsubsection{DEF}
\subsection{ZTR}
\subsubsection{OIU}
\subsubsection{OIZ}
\subsubsection{POI}
\section{YYY}
\subsection{WER}
\subsubsection{EDC}
\subsubsection{RFV}
\subsection{TGB}
\subsubsection{ZHN}
\subsubsection{OUH}
\subsubsection{WEK}
\chapter{ZZZ}
\chapter{AAA}
\end{document}
第二个 \pdfbookmark 中的 {toc} 应该用什么来替换?[抱歉,编辑上述评论时遇到问题 --> 管理员请删除它!]
答案1
您需要的包是shorttoc
:
\documentclass[10pt, a4paper]{report}
\usepackage{shorttoc}
\renewcommand*\contentsname{Contents (detailed)}
\begin{document}
\shorttoc{Contents}{1} % Only sections
\tableofcontents
重要的\shorttoc
是前 \tableofcontents
;您可以使用第二个参数指定所需的任何深度。
如果您想使用hyperref
,请按以下步骤操作:
\documentclass[10pt, a4paper]{report}
\usepackage{shorttoc}
\usepackage{hyperref}
\renewcommand*\contentsname{Contents (detailed)}
\begin{document}
\pdfbookmark[1]{Contents}{toc}
\shorttoc{Contents}{1}
\cleardoublepage
\pdfbookmark[1]{Contents (detailed)}{toc (detailed)}
\tableofcontents
请注意不必须指定\shorttoc
详细内容,但仅此而已\tableofcontents
。
答案2
这是另一种解决方案。
\tableofcontents
用以下代码替换第一个
{\expandafter\def\csname @starttoc\endcsname#1{\InputIfFileExists{\jobname.#1}{}{}}%
\tableofcontents}
MWE(含hyperref
)
\documentclass{report}
\usepackage{hyperref}
\begin{document}
\setcounter{tocdepth}{1}
\setcounter{secnumdepth}{3}
{\expandafter\def\csname @starttoc\endcsname#1{\InputIfFileExists{\jobname.#1}{}{}}%
\tableofcontents}
\renewcommand*\contentsname{Contents (detailed)}
\setcounter{tocdepth}{3}
\tableofcontents
\chapter{XXX}
\section{YYY}
\subsection{WER}
\subsubsection{ABC}
\subsubsection{DEF}
\subsection{ZTR}
\subsubsection{OIU}
\subsubsection{OIZ}
\subsubsection{POI}
\section{YYY}
\subsection{WER}
\subsubsection{EDC}
\subsubsection{RFV}
\subsection{TGB}
\subsubsection{ZHN}
\subsubsection{OUH}
\subsubsection{WEK}
\chapter{ZZZ}
\chapter{AAA}
\end{document}
输出:
答案3
\documentclass{report}
\usepackage{etoc}
\setcounter{tocdepth}{3}
\usepackage{hyperref}
\begin{document}
\etocsetnexttocdepth{section}
\tableofcontents
\renewcommand*\contentsname{Contents (detailed)}
\tableofcontents
\chapter{XXX}
\section{YYY}
\subsection{WER}
\subsubsection{ABC}
\subsubsection{DEF}
\subsection{ZTR}
\subsubsection{OIU}
\subsubsection{OIZ}
\subsubsection{POI}
\section{YYY}
\subsection{WER}
\subsubsection{EDC}
\subsubsection{RFV}
\subsection{TGB}
\subsubsection{ZHN}
\subsubsection{OUH}
\subsubsection{WEK}
\chapter{ZZZ}
\chapter{AAA}
\end{document}
第一个:
第二个: