我只是想制作一个本地目录 (TOC),其内容显示目录插入级别以下而不是外部的内容。
例如,如果我\minitoc
在里面执行\section{}
,则本地目录应该仅显示此部分内的子部分和子子部分。
类似地,如果我\minitoc
在里面执行\subsection{}
,本地目录应该只显示本节内的子节。
但是,如果目录在里面,比如说subsection
,则会显示从上面的部分开始到文档结尾的所有内容!这非常令人困惑。
我会展示一个平均能量损失然后展示我想要的:
\documentclass{report}
\usepackage{minitoc}
\setcounter{secnumdepth}{5}
\begin{document}
\dominitoc
\setcounter{tocdepth}{1} %For the main TOC, only show chapter/section
\tableofcontents
\chapter{this is chapter heading}
\section{this is section heading}
\subsection{this is subsection heading}
\setcounter{minitocdepth}{5}
\minitoc %This TOC should only show the two subsubsection below!
\subsubsection{this is subsubsection heading}
\subsubsection{this is another subsubsection heading}
\subsection{this is another subsection heading}
\subsection{this is yet another subsection heading}
\section{this is yet another section}
\end{document}
这个想法是,本地目录应该只显示较低级别的内容,仅此而已。它充当该部分或子部分内容的指南。
这样,我可以在每个部分或小节中创建一个本地目录,它只显示其下方的内容,并且当级别自动上升时它会被切断。
我希望有一个简单的解决方案。我愿意接受使用 etoc 或其他东西的其他解决方案,只要本地 TOC 仅显示该级别内的内容(如上所述)。
添加
我尝试使用这个答案,但我不明白答案(对我来说太复杂了)以及如何将其用于上述示例。这是我尝试过的:
\documentclass{report}
\usepackage{minitoc}
\usepackage{etoc}
\setcounter{secnumdepth}{5}
\begin{document}
%\dominitoc %Removed. switch to etoc
\setcounter{tocdepth}{1} %For the main TOC, only show chapter/section
\tableofcontents
\chapter{this is chapter heading}
\section{this is section heading}
\subsection{this is subsection heading}
%\setcounter{minitocdepth}{5} %Do not use now, we are using etoc
\localtableofcontents
\subsubsection{this is subsubsection heading}
\subsubsection{this is another subsubsection heading}
\subsection{this is another subsection heading}
\subsection{this is yet another subsection heading}
\section{this is yet another section}
\end{document}
我明白了:
这不是我想要的。如果有人知道如何实现所示的解决方案这里对于我上面的小例子来说,这已经很棒了。再说一遍,我并不是要求花哨的标题、花哨的线条样式、迷你页面等等。我想要的只是一个简单的本地目录。
答案1
该etoc
包提供了一个可以使用和命令\localtableofcontents
进行配置的\etocsettocstyle
etocsetnexttocdepth
可以使用命令配置视觉外观tocloft
。
\documentclass{report}
\usepackage{tocloft}
\usepackage{etoc}
\setcounter{secnumdepth}{4}
\begin{document}
\setcounter{tocdepth}{1} %for main TOC, only show chapter/section
\tableofcontents
\chapter{this is chapter heading}
\section{this is section heading}
\subsection{this is subsection heading}
\etocsetnexttocdepth{5}
\etocsettocstyle{\subsubsection*{Local contents}}{}
\cftsubsubsecindent 0pt
\localtableofcontents
\subsubsection{this is subsubsection heading}
\subsubsection{this is another subsubsection heading}
\subsection{this is another subsection heading} % not shown
\subsection{this is yet another subsection heading} % not shown
\section{this is yet another section} %not shown
\end{document}
**感谢 jfbu 的帮助性评论**
答案2
我非常喜欢titletoc
而不是minitoc
(特别是因为我titlesec
一直在使用)并且titletoc
提供了简单的方法来做你想做的事情。
\documentclass[]{book}
\usepackage[margin=1in]{geometry} % just to make a nice image for the answer
\usepackage{titletoc}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\chapter{A chapter}
\startcontents[chapters]
\printcontents[chapters]{}{1}{}
\section{Section}
\startcontents[sections]
\printcontents[sections]{}{1}{}
\subsection{Subsection 1}
\lipsum[1]
\stopcontents[sections]
\section{Section 2}
\startcontents[sections]
\printcontents[sections]{}{1}{}
\subsection{Subsection 1}
\lipsum[2]
\subsection{Subsection 2}
\lipsum
\stopcontents[sections]
\chapter{Second chapter}
\startcontents[chapters]
\printcontents[chapters]{}{1}{}
\section{Section}
\startcontents[sections]
\printcontents[sections]{}{1}{}
\lipsum[3]
\section{Another section}
\lipsum
\end{document}