目录间距不一致

目录间距不一致

当章节包含节和小节时,我的目录显示的行间距与没有节和小节时不同。我需要每个章节的上方和下方具有相同的间距,同时在目录中保持节和小节的单倍行距。任何帮助我都会很感激。

答案1

以下适用于支持\chapterreportbook)的默认文档类:

在此处输入图片描述

\documentclass{report}
\makeatletter
\let\old@makechapterhead\@makechapterhead
\renewcommand{\@makechapterhead}{%
  \addtocontents{toc}{\protect\addvspace{1.0em \@plus\p@}}%
  \old@makechapterhead%
}
\renewcommand*\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \addvspace{1.0em \@plus\p@}%
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
\makeatother
\begin{document}
\tableofcontents
\chapter{A chapter}\section{A section}\section{A section}
\chapter{A chapter}
\chapter{A chapter}\section{A section}\section{A section}
\chapter{A chapter}\section{A section}\subsection{A subsection}\subsection{A subsection}
\chapter{A chapter}
\end{document}

该解决方案有两个作用。它...

  1. ...修改\l@chapter- 负责设置目录中与章节相关的条目的宏 - 以\addvspace代替“传统” \vskip。这只是为了确保在添加更多 时不会出现垂直空间“翻倍”的情况\vspace
  2. ...用于在目录中\@makechapterhead插入一个垂直空格(再次使用\addvspace),以便有一个空格目录条目。

使用与提供的解决方案类似的方法在 LaTeX 文档各部分的目录中添加点,可以通过以下方式在目录中的章节条目中添加点

\renewcommand*\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \addvspace{1.0em \@plus\p@}%
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak
      \xleaders\hbox{$\m@th % Added \xleaders
        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
        mu$}\hfil\nobreak\hb@xt@\@pnumwidth{\hss #2}\par
      \penalty\@highpenalty
    \endgroup
  \fi}

在此处输入图片描述

\leaders我没有使用,而是使用了\xleaders。这些领导者类型的差异在想要用重复的字符串填充行

相关内容