tocloft 与 cftaftertoctitleskip 无法更改“内容”下方的空间

tocloft 与 cftaftertoctitleskip 无法更改“内容”下方的空间

这是一个[不]有效的例子:

\documentclass[11pt,letterpaper]{article} 

\usepackage[titles]{tocloft}

\title{Hello world  \vspace{-0.5cm}} 

\begin{document} 

\maketitle 

\setlength\cftaftertoctitleskip{-100pt}
\tableofcontents

\section{A}

A stuff

\section{B}

B stuff

\end{document} 

当我多次编译此代码,将 的值更改\setlength\cftaftertoctitleskip{-100pt}为其他各种值时,我没有看到目录标题后的空间有任何变化。我的脚本中是否存在明显的错误?

答案1

经过一番尝试,我发现问题的根源在于titles的 loading-option tocloft。删除该选项后,它就可以正常工作了。搜索网站后发现了这个问题,tocloft 包干扰了 ToC 页面样式吗?,以及Mico对此的回答。

具体来说,Mico 指出:

该软件包的手册tocloft对此选项有以下说明:

titles选项使 ToC、LoF 和 LoT 列表的标题使用默认的 LATEX 方法进行排版。例如,当和tocloftfncychap一起使用时,这会很有用,并且应该对 ToC 等标题使用“花式”章节样式。

这非常明确地指出了问题和解决方案。该titles选项旨在用于当人们希望使用某些功能tocloft但实际上并未设置toc使用这些tocloft功能时。解决方案?删除该titles选项。

\documentclass[11pt,letterpaper]{article} 

\usepackage{tocloft}

\title{Hello world  \vspace{-0.5cm}} 

\begin{document} 

\maketitle 

\setlength\cftaftertoctitleskip{-100pt}
\tableofcontents

\section{A}

A stuff

\section{B}

B stuff

\end{document} 

答案2

您可以保留该titles选项,这在您必须使用的情况下可能很重要fancyhdr

我认为目的是删除第一部分标题前的垂直空间:

\documentclass[11pt,letterpaper]{article}

\usepackage[titles]{tocloft}

\title{Hello world}
\author{Zkurtz}
\date{}

\begin{document}

\maketitle

\addtocontents{toc}{\protect\addvspace{-\cftbeforesecskip}}
\tableofcontents

\section{A}

A stuff

\section{B}

B stuff

\end{document}

在此处输入图片描述

答案3

为了指定目录标题后的垂直空间,只需使用:

\renewcommand{\cftaftertoctitle}{\vspace{<whatever value you wish>}}

平均能量损失

\documentclass[11pt,letterpaper]{article} 

\usepackage[titles]{tocloft}

\title{Hello world  \vspace{-0.5cm}} 

\begin{document} 

\maketitle 

\renewcommand{\cftaftertoctitle}{\vspace{-100pt}}
\tableofcontents

\section{A}

A stuff

\section{B}

B stuff

\end{document}

在此处输入图片描述

相关内容