不使用包是否可以获得它titletoc
?我正在使用特殊章节样式,它不适用于此包。
答案1
有很多选择...如果没有更多信息,一个可能的选择是使用setspace
包及其环境命令之一;例如,
\documentclass{report}
\usepackage{setspace}
\begin{document}
\doublespacing
\tableofcontents
\singlespacing
\chapter{Test Chapter One}
\section{Test Section One One}
\section{Test Section One Two}
\chapter{Test Chapter Two}
\section{Test Section Two One}
\section{Test Section Two Two}
\end{document}
这种方法将均匀增加所有分段单元之间的间距。以下三个选项允许您分别控制每组分段单元的间距。
另一个选择是使用tocloft
打包并重新定义\cftXafterpnum
命令系列:
\documentclass{report}
\usepackage{tocloft}
\renewcommand\cftchapafterpnum{\vskip10pt}
\renewcommand\cftsecafterpnum{\vskip15pt}
\begin{document}
\tableofcontents
\chapter{Test Chapter One}
\section{Test Section One One}
\section{Test Section One Two}
\chapter{Test Chapter Two}
\section{Test Section Two One}
\section{Test Section Two Two}
\end{document}
还有另一种选择,这次使用etoolbox
包修补分段单位命令以向 ToC 添加垂直空间:
\documentclass{report}
\usepackage{etoolbox}
\makeatletter
\pretocmd{\chapter}{\addtocontents{toc}{\protect\addvspace{15\p@}}}{}{}
\pretocmd{\section}{\addtocontents{toc}{\protect\addvspace{5\p@}}}{}{}
\makeatother
\begin{document}
\tableofcontents
\chapter{Test Chapter One}
\section{Test Section One One}
\section{Test Section One Two}
\chapter{Test Chapter Two}
\section{Test Section Two One}
\section{Test Section Two Two}
\end{document}
第四个选项不需要任何包,那就是重新定义\chapter
和\section
命令,就像在所使用的文档类中实现的那样,以将垂直空间添加到 ToC;例如report
:
\documentclass{report}
\makeatletter
\renewcommand\chapter{\addtocontents{toc}{\protect\addvspace{5\p@}}%
\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\renewcommand\section{\addtocontents{toc}{\protect\addvspace{20\p@}}%
\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\Large\bfseries}}
\makeatother
\begin{document}
\tableofcontents
\chapter{Test Chapter One}
\section{Test Section One}
\section{Test Section Two}
\chapter{Test Chapter One}
\section{Test Section One}
\section{Test Section Two}
\end{document}
答案2
虽然到目前为止的其他建议允许增加目录的行距,但似乎不允许减少行距,例如将目录放在一页上。
一个简单的
\renewcommand{\baselinestretch}{0.75}\normalsize
\tableofcontents
\renewcommand{\baselinestretch}{1.0}\normalsize
允许设置任意行距。
可能需要找出您的默认基线拉伸尺寸,因为样式似乎设置了这一点。
答案3
使用托克洛夫特,您还可以在序言中添加以下内容以增加间距前部分条目:
\usepackage{tocloft}
\setlength{\cftbeforesecskip}{6pt}
这补充了贡萨洛的答案他在其中演示了如何添加间距后节条目:如果节后面有子节,则这可能是不理想的。tocloft 的手册还有许多其他选项可用于操作目录中的其他类型条目。
答案4
另一个全球解决方案减少间距,对于 kjyv 的本地解决方案不起作用或导致行距出现问题的情况,
\renewcommand\cftsecafterpnum{\\ \vspace{-20pt}}
这对我来说很有用
\renewcommand\cftchapafterpnum{\vskip-10pt}
什么也没做。