我需要更改一行中更改之间的间距。6pt 间距必须介于 -2.2 和 2.2.1 - 2.3 和 2.2.2 之间。
使用评论
\renewcommand\cftsubsubsecafterpnum{\vskip6pt}
不幸的是,它不能按照我想要的方式工作。
答案1
这里有一个可能的解决方案,使用一些条件测试:重新定义\subsection
测试是否在小节条目前添加空格;如果它是第一个小节,则添加空格,否则不添加。重新定义\section
测试是否在小节条目前添加空格;如果小节之前出现,则添加空格,否则不添加额外的空格。
\documentclass{book}
\makeatletter
\renewcommand\section{\ifnum\value{subsection}>0\relax\addtocontents{toc}{\protect\addvspace{6pt}}\else\fi\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\Large\bfseries}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\normalfont\large\bfseries%
\ifnum\value{subsection}>1\relax\else\addtocontents{toc}{\protect\addvspace{6pt}}\fi}}
\makeatother
\begin{document}
\tableofcontents
\chapter{A Test Chapter}
\section{Test Section One}
\section{Test Section Two}
\subsection{Test Subsection Two One}
\subsection{Test Subsection Two Two}
\section{Test Section Three}
\end{document}