在目录中的行后添加空格

在目录中的行后添加空格

我一直在尝试找到增加空间的方法目录中的节或章节行。tocloft允许我在行前添加间距,但不能在行后添加间距,这会导致新页面顶部出现间距问题(请参阅这个问题)。

我尝试使用 \preto 和 \appto 命令,例如

\preto\section{
  \addtocontents{toc}{\vskip 2pt}
}
\appto\section{
  \addtocontents{toc}{\vskip 5pt}
}

但是\appto会导致错误(原因解释于另一篇 TeX.SX 帖子)。我还尝试手动添加 ToC 行:

\usepackage{nameref}
\makeatletter
\newcommand*{\currentname}{\@currentlabelname}
\makeatother

\setcounter{tocdepth}{0}

\preto\section{
  \addtocontents{toc}{\vskip 2pt}
  \addtocontents{toc}{
    \protect\contentsline{section}{\numberline{\thesection}\currentname}{}
  }
  \addtocontents{toc}{\vskip 5pt}
}

这也不起作用,因为它使用的是前一个节名,而不是当前节名(因为它是在\pretonot中调用的\appto)。此尝试还会导致 出现问题hyperref

答案1

要在部分单元条目后添加空格,您可以重新定义相应的\cftXafterpnum命令;例如,要10pt在章节条目后添加:

\documentclass{book}
\usepackage{tocloft}

\renewcommand\cftchapafterpnum{\par\addvspace{10pt}}

\begin{document}

\tableofcontents
\chapter{Test Chapter}
\section{Test Section}
\section{Test Section}
\section{Test Section}
\chapter{Test Chapter}
\section{Test Section}
\section{Test Section}
\section{Test Section}

\end{document}

在此处输入图片描述

相关内容