自定义 minitoc

自定义 minitoc

我正在写论文,我想在每章开头添加一个迷你目录。但是,我不喜欢标准格式,即各节的标题列在主目录中,我想将标题对齐在同一行(我在几本书中看到的格式),可能用逗号或文本项目符号分隔。我的意思是这样的:

第1章

内容

1.1 中学一年级, 1.2 中学二年级, 1.3 中学三年级, 1.4 中学四年级

我可以通过 titletoc 包为主目录执行此操作,但我需要为 minitoc 执行此操作。有没有办法对 minitoc 进行这种自定义?提前谢谢您。

答案1

titletoc这是一个用于主要和部分目录的可能解决方案;titlesec还使用了该包,以便\chapter自动启动并打印其部分目录:

\documentclass{book}
\usepackage{titlesec}
\usepackage{titletoc}

\newcommand\partialtocname{\contentsname}

\begin{document}

\tableofcontents

\titleformat{\chapter}[display]
  {\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
  [\vspace*{2pc}\titlerule\vspace*{1pc}%
    \startcontents\vbox{\Large\partialtocname}\vskip1ex
    \printcontents{l}{1}{\setcounter{tocdepth}{1}}\vspace*{1pc}\titlerule]
\titlecontents*{lsection}[0pt]
  {\small\normalfont}{\thecontentslabel\space}{}
  {,~\itshape\thecontentspage}[\space\textbullet\space][.]
\titlecontents*{lsubsection}[0pt]{}{}{}{}

\chapter{Chapter One}
\section{Section One One}
\subsection{Subsection One One One}
\subsection{Subsection One One Two}
\section{Section One Two}
\subsection{Subsection One Two One}
\subsection{Subsection One Two Two}
\section{Section One Three}
\subsection{Subsection One Three One}
\subsection{Subsection One Three Two}

\chapter{Chapter Two}
\section{Section Two One}
\subsection{Subsection TwoOne One}
\subsection{Subsection Two One Two}
\section{Section Two Two}
\subsection{Subsection Two Two One}
\subsection{Subsection Two Two Two}

\end{document}

主要目录:

在此处输入图片描述

部分目录:

在此处输入图片描述

在此处输入图片描述

当然,你的论文中会有一些章节不需要部分目录,比如前言和后记部分(致谢、前言、主要目录、可能的附录和参考书目)。我对最初的代码进行了改进,定义了一个布尔值,让你可以轻松地激活和停用部分目录;最初布尔值设置为 false,因此前言章节不会有部分目录;一旦你开始主要内容(事实上,无论何时你想开始使用部分目录),你所要做的就是使用 将布尔值设置为 true \chapterwithtoctrue。对于后记(或者,一般来说,要停用部分目录),你所要做的就是使用 将布尔值设置为 false \chapterwithtocfalse;一个完整的例子:

\documentclass{book}
\usepackage{titlesec}
\usepackage{titletoc}

% The name to be used as title for the partialToCs
% initially set to be equal to \contentsname
\newcommand\partialtocname{\contentsname}
% depending on this boolean, \chapter will create or not a partial ToC
\newif\ifchapterwithtoc
\chapterwithtocfalse

\titleformat{\chapter}[display]
  {\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
  [\ifchapterwithtoc
      \vspace*{2pc}\titlerule\vspace*{1pc}%
      \startcontents\vbox{\Large\partialtocname}\vskip1ex
      \printcontents{l}{1}{\setcounter{tocdepth}{1}}\vspace*{1pc}\titlerule%
    \else\fi%
  ]

\titlecontents*{lsection}[0pt]
  {\small\normalfont}{\thecontentslabel\space}{}
  {,~\itshape\thecontentspage}[\space\textbullet\space][.]
\titlecontents*{lsubsection}[0pt]{}{}{}{}

\begin{document}

\frontmatter
\chapter*{Acknowledgements}
\chapter*{Preface}
\tableofcontents

\mainmatter
\chapterwithtoctrue

\chapter{Chapter One}
\section{Section One One}
\subsection{Subsection One One One}
\subsection{Subsection One One Two}
\section{Section One Two}
\subsection{Subsection One Two One}
\subsection{Subsection One Two Two}
\section{Section One Three}
\subsection{Subsection One Three One}
\subsection{Subsection One Three Two}

\chapter{Chapter Two}
\section{Section Two One}
\subsection{Subsection TwoOne One}
\subsection{Subsection Two One Two}
\section{Section Two Two}
\subsection{Subsection Two Two One}
\subsection{Subsection Two Two Two}

\backmatter
\chapterwithtocfalse

\chapter{Appenix One}
\chapter{Appenix Two}

\end{document}

etoolbox这可以通过适当的修补(例如,借助包)和来进一步改善\frontmatter\mainmatter\backmatter

相关内容