如何按章节包含目录?

如何按章节包含目录?

如何按章节获取目录(每章开头有带有页码的章节和小节)以及仅包含带有页面范围的章节标题而不是章节和小节图块的主目录。

答案1

这是一个可能的解决方案,使用titletoc部分 ToC 的包和变体this answer目录中按章节划分的页面范围在主目录中生成页面范围。

在您想要排版部分目录的章节命令\MiniToC之后使用。\chapter

必须编译代码三次才能获得主目录中页面范围的正确数字。

\documentclass{report}
\usepackage{titletoc}
\usepackage{letltxmacro}
\usepackage{etoolbox}
\usepackage{lipsum}

\newcommand\MiniToC{%
  \setcounter{tocdepth}{2}
  \startcontents
  \printcontents{}{1}{\section*{\contentsname}\vskip-3.5ex\hrulefill\vskip1ex}
  \vskip-0.5ex\noindent\hrulefill
  \setcounter{tocdepth}{0}
}
\setcounter{tocdepth}{0}

\makeatletter
\newif\if@chap@enddc
\@chap@enddctrue
\LetLtxMacro\ltx@@chapter\@chapter
\renewcommand\@chapter[2][]{%
  \ltx@@chapter[#1]{#2}
  \expandafter\label{chap:\thechapter}
}

\let\ltx@toc\tableofcontents
\renewcommand\tableofcontents{%
  \ltx@toc
  \let\ltx@chapter\chapter
  \renewcommand\chapter{%
  \expandafter\label{prenextchap:\thechapter}
  \ltx@chapter
  }%
}
\let\ltx@enddocument\enddocument
\renewcommand\enddocument{%
  \if@chap@enddc\expandafter\label{prenextchap:\thechapter}\fi
  \ltx@enddocument
}
\def\chaprange{%
  \expandafter\pageref{chap:\thechapter}--\expandafter\pageref{prenextchap:\thechapter}}

\let\ltx@addcontentsline\addcontentsline
\def\CR@addcontentsline#1#2#3{%
  \addtocontents{#1}{\protect\contentsline{#2}{#3}{\chaprange}}
}

\def\ToggleChaprange{\let\addcontentsline\CR@addcontentsline}
\def\BypassChaprange{\let\addcontentsline\ltx@addcontentsline}
\def\BreakChaprange{%
  \expandafter\label{prenextchap:\thechapter}
  \let\addcontentsline\ltx@addcontentsline
  \@chap@enddcfalse
}
\makeatother

\pretocmd{\section}{\BypassChaprange}{}{}
\pretocmd{\chapter}{\ToggleChaprange}{}{}

\begin{document}

\tableofcontents

\chapter{Test chapter one}
\MiniToC
\section{A test section}
\subsection{A test subsection}
\subsubsection{A test subsubsection}
\lipsum[1-30]

\chapter{Test chapter two}
\MiniToC

\section{A test section}
\subsection{A test subsection}
\subsubsection{A test subsubsection}
\lipsum[1-20]

\chapter{Test chapter three}
\MiniToC

\section{A test section}
\subsection{A test subsection}
\subsubsection{A test subsubsection}
\lipsum[1-10]

\end{document}

主要目录的图像:

在此处输入图片描述

第一章部分目录的图片:

在此处输入图片描述

相关内容