我一直在尝试找到增加空间的方法后目录中的节或章节行。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}
}
这也不起作用,因为它使用的是前一个节名,而不是当前节名(因为它是在\preto
not中调用的\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}