如何更改目录中项目之间的间距

如何更改目录中项目之间的间距

不使用包是否可以获得它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}

什么也没做。

相关内容