默认情况下,LaTeX 的目录由 l@<title> 输出,<title> 就是 chapter section 这些,其中 part chapter section 都定义了自己的 l@..,而 subsection 及其子标题都使用 \@dottedtocline,区别是设置不同的参数。查看 mcmthesis 2024/01/22 v6.3.3 源码发现,它并没有修改这一行为。
因此只需在导言区加上
\makeatletter
\@namedef{@level1@space}{10pt} % section
\@namedef{@level2@space}{10pt} % subsection
\@namedef{@level3@space}{0pt} % subsubsection
\long\def\sectionvspace#1{\addvspace{\@nameuse{@level1@space}}}
\patchcmd\l@section{\addvspace}{\sectionvspace}{}{\ERR} % section
\long\def\dottedvspace#1#2#{\nointerlineskip \vskip-\parskip \vskip\@nameuse{@level#1@space}\relax}
\patchcmd\@dottedtocline{\vskip}{\dottedvspace{#1}}{}{\ERR} % subsection
\makeatother



问 mcmthesis模板中使用tcocloft宏包修改目录样式的更优雅(底层)做法