我的文档有三个“部分”(使用命令\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}