在 LaTeX 文档各部分的目录中添加点

在 LaTeX 文档各部分的目录中添加点

我的文档有三个“部分”(使用命令\part)、章节和节。当我生成目录 ( \tableofcontents) 时,所有章节及以下章节的名称和页码之间都有点。但是,部分没有点。

我该如何解决?

这是我的 cls 中与目录相关的代码,请告知如何使各部分也带有点。

\renewcommand\contentsname{Table of Contents}

\renewcommand*\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \vskip 1.0em \@plus 0.2em \@minus 0.2em
    \setlength\@tempdima{1.5em}
    \begingroup
      \leftskip \z@ \rightskip \@tocrmarg \parfillskip -\rightskip
      \parindent \z@
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak
      \leaders\hbox{$\m@th\mkern\@dotsep mu\hbox{.}\mkern\@dotsep mu$}
      \hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
\let\thesis@tableofcontents=\tableofcontents
\def\tableofcontents{{\singlespacing\thesis@tableofcontents}}

文档类uiucthesis2009被使用并且此类基于book

\LoadClass{book}

答案1

你显示的是章节代码,但没有显示部分代码,这些点来自这一部分\l@chapter

 \leaders\hbox{$\m@th\mkern\@dotsep mu\hbox{.}\mkern\@dotsep mu$}
  \hfil 

如果你查看你的类文件(或者如果它输入了其中一个标准类),你会发现 \ 的定义\l@part只有\hfil(空格)而不是领导者。例如\l@part在文章中有

       \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par

将 \leaders 线放在#1(章节标题) 和之间\hfil,通过重复点而不是仅仅使用空格来使 hfill 工作。

像这样:

\documentclass{uiucthesis}

\makeatletter

\renewcommand*\l@part[2]{%
  \ifnum \c@tocdepth >-2\relax
    \addpenalty{-\@highpenalty}%
    \addvspace{2.25em \@plus\p@}%
    \setlength\@tempdima{3em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      {\leavevmode
       \large \bfseries #1%
      \leaders\hbox{$\m@th\mkern\@dotsep mu\hbox{.}\mkern\@dotsep mu$}%
       \hfil \hb@xt@\@pnumwidth{\hss #2}}\par
       \nobreak
         \global\@nobreaktrue
         \everypar{\global\@nobreakfalse\everypar{}}%
    \endgroup
  \fi}

\makeatother

\begin{document}


\tableofcontents

\part{the first}

\chapter{foo}

\section{hmmm}

aaa

\section{hmmm}

bbb

\end{document}

相关内容