如何自动执行 minitoc 调用?

如何自动执行 minitoc 调用?

我正在使用minitoc包,并且想\minitoc在每一章之后自动执行命令。

我正在寻找一个命令,按照以下内容将其放入我的序言中(但不起作用):

\AtBeginChapter[]{\minitoc}

平均能量损失

游戏的目的是用\minitoc序言中仅有的一个命令来删除每一个。

\documentclass{book}
\usepackage{minitoc}
\begin{document}
\dominitoc
\faketableofcontents

\chapter{chapter 1}
\minitoc

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}

\chapter{chapter 2}
\minitoc

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}

\chapter{chapter 3}
\minitoc

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}

\chapter{chapter 4}
\minitoc

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}

\chapter{chapter 5}
\minitoc

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}

\chapter{chapter 6}
\minitoc

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}

\end{document}

答案1

book设置章节标题\@makechapterhead

\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
      \if@mainmatter
        \huge\bfseries \@chapapp\space \thechapter
        \par\nobreak
        \vskip 20\p@
      \fi
    \fi
    \interlinepenalty\@M
    \Huge \bfseries #1\par\nobreak
    \vskip 40\p@
  }}

理想情况下,我们希望\minitoc在此宏的末尾插入,就在之后\vskip 40\p@,这相当于您使用

\chapter{...}
\minitoc

我们可以用etoolbox修补此宏,\minitoc在垂直跳过后插入 - 我的<search>标签以进行适当插入:

在此处输入图片描述

\documentclass{book}
\usepackage{etoolbox,minitoc}
\makeatletter
\patchcmd{\@makechapterhead}% <cmd>
  {40\p@}% <search>
  {40\p@\minitoc}% <replace>
  {}{}% <success><failure>
\makeatother

\begin{document}
\dominitoc
\faketableofcontents

\chapter{chapter 1}

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}

\chapter{chapter 2}

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}

\chapter{chapter 3}

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}

\chapter{chapter 4}

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}

\chapter{chapter 5}

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}

\chapter{chapter 6}

\section{section}
\subsection{subsection}
\subsubsection{subsubsection}

\end{document}

如果您希望对 进行相同的自动插入\chapter*,则可以对 执行相同的修补\@makeschapterhead

请注意,如果您使用其他分段包,这将不起作用,因为格式\@makechapterheading可能不同。

相关内容