这是一个[不]有效的例子:
\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 方法进行排版。例如,当和tocloft
包fncychap
一起使用时,这会很有用,并且应该对 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}