我正在使用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
可能不同。