The tocloft package^{∗}

Peter Wilson Catholic University of America

             Now at peter.r.wilson@boeing.com

1999/09/19

Abstract

The tocloft package provides means of controlling the typographic design of the Table of Contents, List of Figures and List of Tables. Use of this package requires the stdclsdv package.

The package has been tested with the tocbibind, float and fncychap packages, and maybe others.

Contents

1 Introduction 1 1.1 L^{A}TEX’s methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 The tocloft package 5 2.1 Changing the titles . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Typesetting the entries . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Experimental utilities . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 Usage with other packages . . . . . . . . . . . . . . . . . . . . . . . 10

3 The package code 11

List of Figures

1 Layout of a ToC (LoF, LoT) entry . . . . . . . . . . . 2

1 Introduction

In the standard classes the typographic design of the Table of Contents (ToC), the List of Figures (LoF) and List of Tables (LoT) is fixed or, more precisely, it is buried within the class definitions. The tocloft package provides handles for an author to change the design to meet the needs of the particular document.

Elements of the package were developed as part of a class and package bundle for typesetting ISO standards [Wil96]. This manual is typeset according to the

∗This file has version number v1.0, last revised 1999/09/19.

[figure: \linewidth; \@pnumwidth; \@tocrmarg; indent; numwidth; 487; title end; continue…; … title; 3.5; Heading…; … title; .; .; .; .; .; .; .; .; .; .; .; .; \@dotsep]

Figure 1: Layout of a ToC (LoF, LoT) entry

conventions of the L^{A}TEX docstrip utility which enables the automatic extraction of the L^{A}TEX macro source files [GMS94].

Section 2 describes the usage of the package. Commented source code for the package is in Section 3. The package requires the stdclsdv package.

The package has been tested in combination with at least the tocbibind package, the algorithm package (which, in turn, calls the float package) and the fncychap package. Please send me any comments as to how you think that the package can be improved, or of any interesting examples of how you have used it.^{1}

1.1 L^{A}TEX’s methods

This is a general description of how L^{A}TEX does the processing for a Table of Contents. As the processing for List of Figures and List of Tables is similar I will, without loss of generality, just discuss the ToC.

\addcontentsline L^{A}TEX generates a .toc file if the document contains a \tableofcontents command. The sectioning commands^{2} put entries into the .toc file by calling the L^{A}TEX \addcontentsline{⟨file⟩}{⟨kind⟩}{⟨title⟩} command, where ⟨file⟩ is the file extension (e.g., toc), ⟨kind⟩ is the kind of entry (e.g., section or subsection), and ⟨title⟩ is the (numberered) title text. In the cases where there is a number, the ⟨title⟩ argument is given in the form {\numberline{number} title-text}.

\contentsline The \addcontentsline command writes an entry to the given file in the form \contentsline{⟨kind⟩}{⟨title⟩}{⟨page⟩} where ⟨page⟩ is the page number. For each ⟨kind⟩, L^{A}TEX provides a command \l@kind{⟨title⟩}{⟨page⟩} which performs the actual typesetting of the \contentsline entry.

\@pnumwidth The general layout of a typeset entry is illustrated in Figure 1. There are three

\@tocrmarg
\@dotsep

internal L^{A}TEX commands that are used in the typesetting. The page number is typeset flushright in a box of width \@pnumwidth, and the box is at the righthand margin. If the page number is too long to fit into the box it will stick out into the righthand margin. The title text is indented from the righthand margin by an amount given by \@tocrmarg. Note that \@tocrmarg should be greater than \@pnumwidth. Some entries are typeset with a dotted leader between the end of the title title text and the righthand margin indentation. The distance, in math units^{3} between the dots in the leader is given by the value of \@dotsep. In the standard classes the same values are used for the ToC, LoF and the LoT.

1Thanks to Rowland (rebecca@astrid.u-net.com), John Foster (john@isjf.demon.co.uk), Kasper (kbg@dkik.dk), Lee Nave (nave@math.washington.edu), and Andrew Thurber (athurber@emba.uvm.edu) for their suggestions.

2For figures and tables it is the \caption command that populates the .lof and .lot files.

The standard values for these internal commands are:

   • \@pnumwidth = 1.55em
   • \@tocrmarg = 2.55em
   • \@dotsep = 4.5

The values can be changed by using \renewcommand, in spite of the fact that the first two appear to be lengths.

Dotted leaders are not available for Part and Chapter ToC entries (nor for Section entries in the article class and its derivatives).

\numberline Each \l@kind macro is responsible for setting the general indent from the lefthand margin, and the numwidth. The \numberline{⟨number⟩} macro is responsible for typesetting the number flushleft in a box of width numwidth. If the number is too long for the box then it will protrude into the title text. The title text is indented by (indent + numwidth) from the lefthand margin. That is, the title text is typeset in a block of width

(\linewidth - indent - numwidth - \@tocrmarg).

\@dottedtocline Most of the \l@kind commands are defined in terms of the \@dottedtocline command. This command takes three arguments: \@dottedtocline{⟨seclevel⟩}{⟨indent⟩}{⟨numwidth⟩}. For example, one definition of the \l@section command is:

\newcommand*{\l@section}{\@dottedtocline{1}{1.5em}{2.3em}}

If it is necessary to change the default typesetting of the entries, then it is usually necessary to change these definitions (but the tocloft package gives you handles to easily alter things without having to know the L^{A}TEX internals).

   You can use the \addcontentsline command to add \contentsline com-

mands to a file.

\addtocontents L^{A}TEX also provides the \addtocontents{⟨file⟩}{⟨text⟩} command that will insert ⟨text⟩ into ⟨file⟩. You can use this for adding extra text and/or macros into the file, for processing when the file is typeset by \tableofcontents (or whatever other command is used for ⟨file⟩ processing, such as \listoftables for a .lot file).

As \addcontentsline and \addtocontents write their arguments to a file, any fragile commands used in their arguments must be \protected.

You can make certain adjustments to the ToC etc., layout without using any package. Some examples are:

• If your page numbers stick out into the righthand margin

       \renewcommand{\@pnumwidth}{3em} \renewcommand{\@tocrmarg}{4em}

but using lengths appropriate to your document.

3There are 18mu to 1em.

• To have the (sectional) titles in the ToC, etc., typeset ragged right with no hyphenation

 \renewcommand{\@tocrmarg}{2.55em plus1fil}

where the value 2.55em can be changed for whatever margin space you want.

• The dots in the leaders can be eliminated by increasing \@dotsep to a large value:

  \renewcommand{\@dotsep}{10000}

• To have dotted leaders in your ToC and LoF but not in your LoT:

 ...
 \tableofcontents
 \makeatletter \renewcommand{\@dotsep}{10000} \makeatother
 \listoftables
 \makeatletter \renewcommand{\@dotsep}{4.5} \makeatother
 \listoffigures
 ...

For this document I used this method to double the dot spacing for the LoF with respect to that for the ToC. As you can see, it is much better that all dot leaders have the same spacing.

• To add a horizontal line across the whole width of the ToC below an entry for a Part:

 \part{Part title}
 \addtocontents{toc}{\protect\mbox{}\protect\hrulefill\par}

Note that as both \addtocontents and \addcontentsline write their ar-

guments to a file, it means that any fragile commands in their arguments must be protected by preceeding each fragile command with \protect. The result of the example above would be the following two lines in the .toc file (assuming that it is the second Part and is on page 34):

 \contentsline {part}{II\hspace {1em}Part title}{34}
 \mbox {}\hrulefill \par

If the \protects were not used, then the second line would instead be:

 \unhbox \voidb@x \hbox {}\unhbox \voidb@x \leaders \hrule \hfill \kern \z@ \par

Remember, if you are modifying any command that includes an @ sign then this must be done in either a .sty file or if in the document itself it must be surrounded by \makeatletter and \makeatother. For example, if you want to modify \@dotsep in the preamble to your document you have to do it like this:

 \makeatletter
 \renewcommand{\@dotsep}{9.0}
 \makeatother

2 The tocloft package

The tocloft package provides means of specifying the typography of the Table of Contents (ToC), the List of Figures (LoF) and the List of Tables (LoT).

\tableofcontents The ToC, LoF, and LoT are printed at the point in the document where these

\listoffigures
\listoftables

commands are called, as per normal L^{A}TEX. However, there is one difference between the standard L^{A}TEX behaviour and the behaviour with the tocloft package. In the standard L^{A}TEX classes that have \chapter headings, the ToC, LoF and LoT each appear on a new page. With the tocloft package they do not automatically start new pages; if you want them to be on new pages you have to specifically issue an appropriate command beforehand. For example:

  ...
 \clearpage
 \tableofcontents
 \clearpage
 \listoftables
 ...

2.1 Changing the titles

Commands are provided for controlling the appearance of the titles. Following L^{A}TEX custom, the title texts are the values of the \contentsname,

\listfigurename and \listtablename commands.

Similar sets of commands are provided for ToC, LoF and LoT title typsetting control. For convenience (certainly mine, and hopefully yours) in the following descriptions I will use ‘X’ to stand for ‘toc’ or ‘lof’ or ‘lot’. For example, \cftmarkX

stands for \cftmarktoc or \cftmarklof or \cftmarklot.

The package takes one option, namely titles. This option causes the titles of the ToC, LoF, and LoT lists to be typeset using the default L^{A}TEX methods. This can be useful, for example, when the tocloft and fncychap packages are used together and the ‘fancy’ chapter styles should be used for the ToC, etc., titles. If you use the titles option you can ignore the rest of this section and continue reading at section 2.2.

\cftmarkX These macros set the appearance of the running heads on the ToC, LoF, and

LoT pages. You probably don’t need to change these.

\cftbeforeXtitleskip These lengths control the vertical spacing before and after the titles. You can \cftafterXtitleskip change them from their default values by using \setlength.

\cftXtitlefont The code used for typesetting the ToC title looks like

\cftafterXtitle

 {\cfttoctitlefont \contentsname}{\cftaftertoctitle}\par

By default, \cftXtitlefont is defined as a font specification (e.g., \Large\bfseries), and \cftafterXtitle is empty. These commands can be changed (via \renewcommand) to change the typesetting. As examples:

   • \renewcommand{\cftXtitlefont}{\hfill\Large\itshape} will result in

a Large italic title typeset flushright.

   • \renewcommand{\cftXtitlefont}{\hfill\Large\bfseries} together with
     \renewcommand{\cftafterXtitle}{\hfill} will give a centered Large

bold title.

• Doing

      \renewcommand{\cftafterXtitle}{%
        \\[\baselineskip]\mbox{}\hfill{\normalfont Page}}

will put the word ‘Page’ flushright on the line following the title. (If you do this, then you may need to decrease \cftafterXtitleskip).

2.2 Typesetting the entries

Commands are also provided to enable finer control over the typesetting of the different kinds of entries. The parameters defining the default layout of the entries are illustrated as part of the layouts package or in [GMS94, page 34], and are repeated in Figure 1.

\cftdot In the default ToC typsetting only the more minor entries have dotted leader lines between the sectioning title and the page number. The tocloft package provides for general leaders for all entries. The ‘dot’ in a leader is given by the value of \cftdot. Its default definition is \newcommand{\cftdot}{.} which gives the default dotted leader. By changing \cftdot you can use symbols other than a period in the leader. For example

 \renewcommand{\cftdot}{\ensuremath{\ast}}

will result in a dotted leader using asterisks as the symbol.

\cftdotsep Each kind of entry can control the seperation between the dots in its leader \cftnodots (see below). For consistency though, all dotted leaders should use the same spac-

ing. The macro \cftdotsep specifies the default spacing. Its value is a number. However, if the seperation is too large then no dots will be actually typeset. The macro \cftnodots is a seperation value that is ‘too large’.

\cftsetpnumwidth The page numbers are typeset in a fixed width box. The command

\cftsetrmarg \cftsetpnumwidth{⟨length⟩} can be used to change the width of the box (L^{A}TEX’s internal \@pnumwidth). The title texts will end before reaching the righthand margin. \cftsetrmarg{⟨length⟩} can be used to set this distance (L^{A}TEX’s internal \@tocrmarg). Note that the length used in \cftsetrmarg should be greater than the length set in \cftsetpnumwidth. These values should remain constant in any given document.

In the following I will use X to stand for the following:

• part for \part titles

   • chap for \chapter titles
   • sec for \section titles
   • subsec for \subsection titles
   • subsubsec for \subsubsection titles
   • para for \paragraph titles
   • subpara for \subparagraph titles

• fig for figure \caption titles

• tab for table \caption titles

\cftbeforeXskip This controls the vertical space before an entry. It can be changed by using

\setlength.

\cftXindent This controls the indentation of an entry from the left margin (indent in Figure 1). It can be changed using \setlength. NOTE: This command is not provided for part as their entries will have no indentation (they are the highest level document divisions).

\cftXnumwidth This controls the space allowed for typesetting title numbers (numwidth in Figure 1). It can be changed using \setlength. Second and subsequent lines of a multiline title will be indented by this amount.

The remaining commands are related to the specifics of typesetting an entry. This is a simplified version of the code for typesetting numbered entry and unnumbered entries.

 {\cftXfont SNUM\cftXaftersnum \cftXaftersnumb TITLE}%
         {\cftXleader}{\cftXpagefont PAGE}\cftXafterpnum\par
 {\cftXfont TITLE}{\cftXleader}{\cftXpagefont PAGE}\cftXafterpnum\par

where SNUM is the section number, TITLE is the title text and PAGE is the page number. Note that for a Part entry the unnumbered style is used, whether or not the Part has a number.

\cftXfont This controls the appearance of the title (and its preceeding number, if any).

It may be changed using \renewcommand.

\cftXaftersnum The section number is typeset within a box and the \cftXaftersnum macro is \cftXaftersnumb called after the number is typeset but before the box is completed. After the box

is typeset the \cftXaftersnumb macro is called before typesetting the title text. Both of these can be changed by \renewcommand. By default they are defined to do nothing.

\cftXleader \cftXleader defines the leader between the title and the page number; it \cftXdotsep can be changed by \renewcommand. The spacing between any dots in the leader

is controlled by \cftXdotsep (\@dotsep in Figure 1). It can be changed by \renewcommand and its value must be either a number (e.g., 6.6 or \cftdotsep) or \cftnodots (to disable the dots). The spacing is in terms of math units where there are 18mu to 1em.

\cftXpagefont This defines the font to be used for typesetting the page number. It can be

changed by \renewcommand.

\cftXafterpnum This macro is called after the page number has been typeset. Its default is to

do nothing. It can be changed by \renewcommand.

Various effects can be achieved by changing the definitions of \cftXfont,

\cftXaftersnum, \cftXaftersnumb, \cftXleader and \cftXafterpnum, either

singly or in combination. For the sake of some examples, assume that we have the following initial definitions

 \newcommand{\cftXfont}{\bfseries}
 \newcommand{\cftXaftersnum}{}
 \newcommand{\cftXaftersnumb}{}
 \newcommand{\cftXleader}{\bfseries\@cftdotfill{\cftXdotsep}}
 \newcommand{\cftXdotsep}{\cftdotsep}
 \newcommand{\cftXpagefont}{\bfseries}
 \newcommand{\cftXafterpnum}{}

(Note that the same font should be used for the title, leader and page number to provide a coherent appearance).

• To eliminate the dots in the leader:

      \renewcommand{\cftXdotsep}{\cftnodots}

• To put something (e.g., a name) before the title (number):

      \renewcommand{\cftXfont}{\bfseries SOMETHING }

• To add a colon after the section number:

      \renewcommand{\cftXaftersnum}{:}

• To put something before the title number, add a colon after the the title number, and start the title text on the following line:

      \renewcommand{\cftXfont}{\bfseries SOMETHING }
      \renewcommand{\cftXaftersnum}{:}
      \renewcommand{\cftXaftersnumb}{\\}

• To set the title ragged left (but this only looks good for single line titles):

      \renewcommand{\cftXfont}{\hfill\bfseries}
      \renewcommand{\cftXleader}{}

• To set the page number immediately after the title instead of at the righthand margin:

      \renewcommand{\cftXleader}{}
      \renewcommand{\cftXafterpnum}{\cftparfillskip}

By default the \parfillskip value is locally set to fill up the last line of a paragraph. Just changing \cftXleader puts horrible interword spaces into the last line of the title. The \cftparfillskip command^{4} is part of the tocloft package and is provided just so that the above effect can be achieved.

One question that appeared on the comp.text.tex newsgroup asked how to get the titles of Appendices list in the ToC without page numbers. This is one way of using tocloft to do this (assuming that the document has \chapters).

 ...
 \appendix
 \addtocontents{toc}{%
    % ensure no leaders
    \protect\renewcommand{\protect\cftchapleader}{} %
    % ensure last title line is ragged right
    \protect\renewcommand{\protect\cftchapafterpnum}{\cftparfillskip}
    % gobble the page number
    \protect\renewcommand{\protect\cftchappagefont}[1]{}}
 \chapter{First appendix}

If there are other headings to go into the ToC after the appendices, then it will probably be necessary to do a similar \addtocontents restoring the renewed commands to their pre-appendices state.

At this point, I leave it up to your ingenuity as to other effects that you can achieve. However, if you come up with further examples, let me know for possible inclusion in a later version of this document.

2.3 Experimental utilities

The macros described in this section are even more experimental than those described previously.

\cftchapterprecis Some old style novels, and even some modern text books,^{5} include a short synopsis of the contents of the chapter either immediately after the chapter heading or in the Toc, or in both places.

The command \cftchapterprecis{⟨text⟩} prints its argument both at the point in the document where it is called, and also adds it to the .toc file. For example:

 ...
 \chapter{} % first chapter
 \cftchapterprecis{Our hero is introduced; family tree; early days.}
 ...

\cftchapterprecishere The \cftchapterprecis command calls these two commands to print the text \cftchapterprecistoc in the document (the \...here{⟨text⟩} command) and to put it into the ToC (the

\...toc{⟨text⟩} command). These can be used individually if required.

Sometimes it may be desirable to make a change to the global parameters for an individual entry. For example, a figure might be placed on the end paper of a book (the inside of the front or back cover), and this needs to be placed in a LoF with the page number set as, say ‘inside front cover’. If ‘inside front cover’ is typeset as an ordinary page number it will stick out into the margin. Therefore, the parameters for this particular entry need to be changed.

4Is there a better name for this?

5For example, Robert Sedgewick, Algorithms, Addison-Wesley, 1983.

\cftlocalchange The command \cftlocalchange{⟨file⟩}{⟨pnumwidth⟩}{⟨tocrmarg⟩} will write an entry into ⟨file⟩ to reset the global parameters. The command should be called again after any special entry to reset the parameters back to their usual values. Any fragile commands used in the arguments must be protected.

\cftaddtitleline The command \cftaddtitleline{⟨file⟩}{⟨kind⟩}{⟨title⟩}{⟨page⟩} will write a \contentsline entry into ⟨file⟩ for a ⟨kind⟩ entry with title ⟨title⟩ and page number ⟨page⟩. That is, an entry is made of the form:

\contentsline{kind}{title}{page}

Any fragile commands used in the arguments must be protected.

\cftaddnumtitleline  The command \cftaddnumtitleline{⟨file⟩}{⟨kind⟩}{⟨num⟩}{⟨title⟩}{⟨page⟩}

is similar except that it also includes ⟨num⟩ as the argument to the \numberline. That is, an entry is made of the form:

\contentsline{kind}{\numberline{num} title}{page}

Any fragile commands used in the arguments must be protected.

As an example of the use of these commands, noting that the default L^{A}TEX values for \@pnumwidth and \@tocrmarg are 1.55em and 2.55em respectively, one might do the following for a figure on the frontispiece page.

 ...
 % this is the frontispiece page with no number
 % draw or import the picture (with no \caption)
 \cftlocalchange{lof}{4em}{5em} % make pnumwidth big enough for
                                % frontispiece and change margin to suit
 \cftaddtitleline{lof}{figure}{The title}{frontispiece}
 \cftlocalchange{lof}{1.55em}{2.55em} % return to normal settings
 ...

Recall that a \caption command will put an entry in the .lof file, which is not wanted here. If a caption is required, then you can either craft one youself or, assuming that your general captions are not too exotic, use the \legend command from the ccaption package. If the illustration is numbered, use the

\cftaddnumtitleline command instead of \cftaddtitleline.

2.4 Usage with other packages

The tocloft and tocbibind packages can be used together in the same document. The tocbibind package provides easy means of adding document elements like the bibliography or the index to the Table of Contents. However there are two known potential problems:

• The 1998/11/15 version of tocbibind may give surprising results if the

     \toctocname, \toclotname or \toclofname commands have been used.

You should consider getting the current version of tocbibind.

• If the argument to the \tocotherhead command is other than one of the normal sectioning divisions (i.e., part through to sub-paragraph) such as \tocotherhead{clause}, then this will almost certainly cause a problem (as the tocloft package will not know how to define the corresponding \l@clause command). In such a case you will have to supply the appropriate macros youself.

\@cftasnum Some packages, like the float package by Anselm Lingnau, enable the creation of \@cftasnumb other kinds of List of …. The tocloft package is only minimally able to change the

formatting of these, principally because the packages are independent of each other and, in the case of the float package, new kinds of float environments and their associated lists can be created on the fly at any point in a document. Some aspects of the typesetting are controlled by \@cftasnum and \@cftasnumb commands. These are equivalent to the \cftXaftersnum and \cftXaftersnumb commands described earlier. By default they are defined to do nothing, but may be renewed to do something.

In general, use with other packages that redefine any of the macros that tocloft also modifies is likely to be problematic.

3 The package code

Announce the name and version of the package, which requires L^{A}TEX 2ε and the stdclsdv package.

1 ⟨∗usc⟩

 2 \NeedsTeXFormat{LaTeX2e}
 3 \ProvidesPackage{tocloft}[1999/09/19 v1.0 parameterised ToC, etc., typesetting]
 4 \RequirePackage{stdclsdv}

\PRWPackageNote \PRWPackageNoteNoLine These two commands write a Package Note to the terminal and the log file. Use as: \PRWPackageNote{⟨package name⟩}{⟨note text⟩}. The NoLine version does not show the line number. The commands are intermediate between the kernel

\PackageWarning and \PackageInfo commands. I have \provided the \PRW...

commands as other packages (of mine) may also incorporate them. The code is

based on lterror.dtx.
 5 \providecommand{\PRWPackageNote}[2]{%
 6 \GenericWarning{%
 7  (#1)\@spaces\@spaces\@spaces\@spaces
 8 }{%
 9 Package #1 Note: #2%
10 }%

11 }

12 \providecommand{\PRWPackageNoteNoLine}[2]{%
13 \PRWPackageNote{#1}{#2\@gobble}%

14 }

In order to try and avoid name clashes with other packages, each internal name will include the character string @cft.

The stdclsdv package is used to determine what sectioning commands may be used in the document. We assume that if the class is known and it has \chapter commands, then it is either a book of report class; if it has \section commands then it is an article class or one of its derivatives.

Issue a warning if there are no recognised sectional divisions and then skip the rest of the package code.

15 \ifSCDnodivs
16 \PackageWarning{tocloft}%

17  {I don't recognize any sectional divisions so I'll do nothing}
18 \renewcommand{\SCDquit}{\endinput}
19 \fi

Perhaps quit now.

20 \SCDquit

Issue a warning if the class is unknown. Use chapter style if \chapter is defined, else use the \section style if it is defined, otherwise quit.

21 \ifSCDknownclass\else
22 \PackageWarning{tocloft}%
23  {I don't recognize the class but I'll do my best}
24 \ifSCDnodivs
25  \PackageWarning{tocloft}%
26  {I don't recognize any sectional divisions so I'll do nothing}
27  \renewcommand{\SCDquit}{\endinput}
28 \else
29  \ifSCDchapter
30  \PRWPackageNoteNoLine{tocloft}{The document class has chapter divisions}
31  \else
32  \ifSCDsection
33  \PRWPackageNoteNoLine{tocloft}{The document class has section divisions}
34  \else
35  \PackageWarning{tocloft}%
36  {The class has neither chapters nor sections, so I'll do nothing}
37  \renewcommand{\SCDquit}{\endinput}
38  \fi
39  \fi
40 \fi
41 \fi
42 \SCDquit

\if@cfttocbibind A flag that is set TRUE iff the tocbibind package has been loaded. The 1998/11/15 version of tocbibind does not necessarily work well with tocloft.

43 \newif\if@cfttocbibind
44 \AtBeginDocument{%
45 \@ifpackageloaded{tocbibind}{\@cfttocbibindtrue}{\@cfttocbibindfalse}
46 \if@cfttocbibind
47  \@ifpackagelater{tocbibind}{1998/11/16}{}{%
48  \PackageWarning{tocloft}{%
49 You are using a version of the tocbibind package\MessageBreak
50 that is not compatible with tocloft.\MessageBreak
51 The results may be surprising.\MessageBreak
52 Consider installing the current version of tocbibind.}}
53 \fi

54 }

\if@cftnctoc A boolean used to implement the titles option. It is TRUE if the ToC, LoT, LoF titles should use the default styles.

55 \newif\if@cftnctoc\@cftnctocfalse
56 \DeclareOption{titles}{\@cftnctoctrue}
57 \ProcessOptions\relax

\cftmarktoc \cftmarklof \cftmarklot These three macros set the style for running heads. They are initialised to give the default appearance.

58 \newcommand{\cftmarktoc}{%
59 \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}
60 \newcommand{\cftmarklof}{%
61 \@mkboth{\MakeUppercase\listfigurename}{\MakeUppercase\listfigurename}}
62 \newcommand{\cftmarklot}{%
63 \@mkboth{\MakeUppercase\listtablename}{\MakeUppercase\listtablename}}

\@cfttocstart \@cfttocfinish Two macros to perform the actions at the beginning and end of the \tableofcontents command (and friends). \@cfttocstart deals with chaptered documents, ensuring that the ToC is typeset in a single column (see classes.dtx for the original code).

64 \newcommand{\@cfttocstart}{%
65 \ifSCDchapter
66  \if@twocolumn
67  \@restonecoltrue\onecolumn
68  \else
69  \@restonecolfalse
70  \fi
71 \fi}

\@cfttocfinish resets, if required, twocolumn typesetting.

72 \newcommand{\@cfttocfinish}{%
73 \ifSCDchapter
74  \if@restonecol\twocolumn\fi
75 \fi}

\@cftdobibtoc If the tocbibind package has been used and it has redefined \tableofcontents we need to cater for that. The contents of the definition are defined in tocbibind.

76 \newcommand{\@cftdobibtoc}{%
77 \if@dotoctoc
78  \if@bibchapter
79  \addcontentsline{toc}{chapter}{\contentsname}
80  \else
81  \addcontentsline{toc}{\@tocextra}{\contentsname}
82  \fi
83 \fi}

\tableofcontents This is a parameterised version of the default \tableofcontents command. Each class has its own definition, but we have to cater for all classes in one definition, hence some of the checks. The definition is modified after all packages have been loaded.

If the titles option has been used, then the command is not modified.

84 \AtBeginDocument{%
85 \if@cftnctoc\else
86 \renewcommand{\tableofcontents}{%
87  \@cfttocstart

Ensure that any previous paragraph has been finished. Within a group set the local paragraphing style and typeset the title.

88  \par
89  \begingroup
90  \parindent\z@ \parskip\z@
91  \@cftmaketoctitle

If tocbibind has been used, then add the ToC name to the ToC.

 92  \if@cfttocbibind
 93  \@cftdobibtoc
 94  \fi

Finally, read the .toc file and finish up.

 95  \@starttoc{toc}%
 96  \endgroup
 97  \@cfttocfinish}
 98 \fi

99 }

\@cftmaketoctitle This command typesets the title for the ToC.

100 \newcommand{\@cftmaketoctitle}{%
101 \vspace*{\cftbeforetoctitleskip}
102 \interlinepenalty\@M
103 {\cfttoctitlefont\contentsname}{\cftaftertoctitle}
104 \cftmarktoc
105 \par\nobreak
106 \vskip \cftaftertoctitleskip
107 \@afterheading}

\cftbeforetoctitleskip \cftaftertoctitleskip These two lengths control the vertical spacing before and after the ToC title.

108 \newlength{\cftbeforetoctitleskip}
109 \newlength{\cftaftertoctitleskip}

Their values depend on whether the document has chapters or not. In chaptered documents the default ToC title is typeset as a \chapter*, otherwise as a

 \section*.
110 \ifSCDchapter
111 \setlength{\cftbeforetoctitleskip}{50pt}
112 \setlength{\cftaftertoctitleskip}{40pt}
113 \else
114 \setlength{\cftbeforetoctitleskip}{3.5ex \@plus 1ex \@minus .2ex}
115 \setlength{\cftaftertoctitleskip}{2.3ex \@plus.2ex}
116 \fi
\cfttoctitlefont \cftaftertoctitle The ToC title is typeset in the style given by \cfttoctitlefont. The macro

\cftaftertoctitle is called after typesetting the title. This is initialised to do nothing. Both these macros can be redefined to do other things (e.g., adding an \hfill to \cfttoctitlefont will make the title flushright).

117 \ifSCDchapter
118 \newcommand{\cfttoctitlefont}{\normalfont\Huge\bfseries}
119 \else
120 \newcommand{\cfttoctitlefont}{\normalfont\Large\bfseries}
121 \fi
122 \newcommand{\cftaftertoctitle}{}
\cftsetpnumwidth \cftsetrmarg Users commands for setting \@pnumwidth and \@tocrmarg.
123 \newcommand{\cftsetpnumwidth}[1]{\renewcommand{\@pnumwidth}{#1}}
124 \newcommand{\cftsetrmarg}[1]{\renewcommand{\@tocrmarg}{#1}}

\cftdot \@cftdotfill In the default ToC, a dotted line can be used to provide a leader between a title and the page number. The definition of this leader is buried in the \@dottedtocline command. The \@cftdotfill{⟨sep⟩} command provides a parameterised version of the leader code, where ⟨sep⟩ is the seperation between the dots in mu units. The symbol used for the ‘dots’ in the leader is given by the value of \cftdot.

125 \newcommand{\cftdot}{.}
126 \newcommand{\@cftdotfill}[1]{%
127 \leaders\hbox{$\m@th\mkern #1 mu\hbox{\cftdot}\mkern #1 mu$}\hfill}

\cftdotsep \cftnodots \cftdotsep holds the default dot seperation. If the kerns in \@cftdotfill are large enough, then no dots will be printed. \cftnodots should be ‘large enough’.

128 \newcommand{\cftdotsep}{4.5}
129 \newcommand{\cftnodots}{10000}

Now for the trickier bits regarding the typesetting of the ToC entries.

A .toc (also .lof and .lot) file consists of a list of \contentsline{⟨kind⟩}{⟨title⟩}{⟨page⟩} commands, where ⟨kind⟩ is the kind of heading (e.g., part or section or figure), ⟨title⟩ is the title text (including the number), and ⟨page⟩ is the page number. The entries are inserted into the file by calling the \addcontentsline{⟨file⟩}{⟨kind⟩}{⟨title⟩} command, where ⟨file⟩ is the file extension (e.g., toc, lot) and the other arguments are the same as for the \contentsline command. (Arbitrary stuff may also be put into the file via the \addtocontents{⟨file⟩}{⟨text⟩} command). The typesetting of the \contentsline entries is performed by commands of the form \l@kind. The sectioning and captioning commands call \addcontentsline to insert their titles into the .toc etc., files.

For the purposes at hand it is generally impossible to teat the typesetting of a title and its number seperately, as both are bundled into the ⟨title⟩ argument within \contentsline. They could be handled seperately if the \contentsline command was suitably modified. If this was done, then the \addtocontentsline command would also need to be changed which would then require the sectioning and captioning commands to be modified as well. This is certainly possible, but would cause problems if any other package also modified the sectioning or captioning commands, and there are several packages which do this.

Having said this, for all but Part entries, the sectional number is typeset via the \numberline command. We can take advantage of this fact.

I have taken the decision to not touch the \contentsline macro and instead to do what can be done with it as it exists. That is, I will modify the \l@kind commands. Essentially, my new definitions consist of inlined versions of the code

for \@dottedtocline.
\cftparfillskip The \l@kind commands modify (locally) the value of \parfillskip. \cftparfillskip

is a copy of the default TEXbook \parfillskip definition.

130 \newcommand{\cftparfillskip}{\parfillskip=0pt plus1fil}

\numberline The purpose of the \numberline{⟨secnum⟩} command is to typeset ⟨secnum⟩ left justified in a box of width \@tempdima. I redefine it to add two additional parameters, namely \@cftasnum and \@cftasnumb (see ltsect.dtx for the original definition).

131 \renewcommand{\numberline}[1]{%
132 \hb@xt@\@tempdima{#1\@cftasnum\hfil}\@cftasnumb}

\@cftasnum \@cftasnumb Originally these were not defined but were \let to appropriate commands in the \l@... commands, but they have to be defined in case something unexpected calls \numberline, for example through use of the float package.^{6}

133 \newcommand{\@cftasnum}{}
134 \newcommand{\@cftasnumb}{}

\l@part \if@cftdopart \l@part{⟨title⟩}{⟨page⟩} typesets the ToC entry for a part heading. It is a parameterised copy of the default \l@part (see classes.dtx for the original definition and the code below for \l@subsection for an explanation of most of this code). By default, Parts (and Chapters) do not have dotted leaders. This package provides for all entries to have dotted leaders.

135 \newif\if@cftdopart
136 \ifSCDpart
137 \renewcommand*{\l@part}[2]{%
138 \@cftdopartfalse
139 \ifnum \c@tocdepth >-2\relax
140  \ifSCDchapter
141  \@cftdoparttrue
142  \fi
143  \ifnum \c@tocdepth >\m@ne
144  \ifSCDchapter\else
145  \@cftdoparttrue
146  \fi
147  \fi
148 \fi
149 \if@cftdopart
150  \ifSCDchapter
151  \addpenalty{-\@highpenalty}%
152  \else
153  \addpenalty\@secpenalty
154  \fi
155  \addvspace{\cftbeforepartskip}%
156  \@tempdima \cftpartnumwidth\relax
157  \let\@cftasnum \cftpartaftersnum
158  \let\@cftasnumb \cftpartaftersnumb
159  \begingroup
160  \parindent \z@ \rightskip \@pnumwidth
161  \parfillskip -\@pnumwidth
162  {\leavevmode
163  {\cftpartfont #1}{\cftpartleader}
164  {\hb@xt@\@pnumwidth{\hss {\cftpartpagefont #2}}}\cftpartafterpnum}\par
165  \nobreak
166  \ifSCDchapter
167  \global\@nobreaktrue
168  \everypar{\global\@nobreakfalse\everypar{}}%
169  \else
170  \if@compatibility
171  \global\@nobreaktrue
172  \everypar{\global\@nobreakfalse\everypar{}}%
173  \fi
174  \fi

6This bug was discovered by Andrew Thurber when using the tocloft and algorithm packages together.

175  \endgroup
176 \fi}
177 \fi
\cftbeforepartskip \cftpartnumwidth \cftpartfont \cftpartaftersnum \cftpartaftersnumb \cftpartleader \cftpartdotsep \cftpartpagefont \cftpartafterpnum These are the user commands to control the typesetting of Part entries. They are

initialised to give the standard appearance.

178 \newlength{\cftbeforepartskip}
179 \setlength{\cftbeforepartskip}{2.25em \@plus\p@}
180 \newlength{\cftpartnumwidth}
181 \setlength{\cftpartnumwidth}{3em}
182 \newcommand{\cftpartfont}{\large\bfseries}
183 \newcommand{\cftpartaftersnum}{}
184 \newcommand{\cftpartaftersnumb}{}
185 \newcommand{\cftpartleader}{\large\bfseries\@cftdotfill{\cftpartdotsep}}
186 \newcommand{\cftpartdotsep}{\cftnodots}
187 \newcommand{\cftpartpagefont}{\large\bfseries}
188 \newcommand{\cftpartafterpnum}{}

\l@chapter \l@chapter{⟨title⟩}{⟨page⟩} typesets the ToC entry for a chapter heading. It is a parameterised copy of the default \l@chapter (see classes.dtx for the original definition). This only applies to chaptered documents.

189 \ifSCDchapter
190 \renewcommand*{\l@chapter}[2]{%
191 \ifnum \c@tocdepth >\m@ne
192  \addpenalty{-\@highpenalty}%
193  \vskip \cftbeforechapskip
194  {\leftskip \cftchapindent\relax
195  \rightskip \@tocrmarg
196  \parfillskip -\rightskip
197  \parindent \cftchapindent\relax\@afterindenttrue
198  \interlinepenalty\@M
199  \leavevmode
200  \@tempdima \cftchapnumwidth\relax
201  \let\@cftasnum \cftchapaftersnum
202  \let\@cftasnumb \cftchapaftersnumb
203  \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
204  {\cftchapfont #1}\nobreak
205  {\cftchapleader}
206  \nobreak
207  \hb@xt@\@pnumwidth{\hfil\cftchappagefont #2}\cftchapafterpnum\par}%
208 \fi}
209 \fi
\cftbeforechapskip \cftchapindent \cftchapnumwidth \cftchapfont \cftchapaftersnum \cftchapaftersnumb \cftchapleader \cftchapdotsep \cftchappagefont \cftchapafterpnum These are the user commands to control the typesetting of Chapter entries. They

are initialised to give the standard appearance.

210 \newlength{\cftbeforechapskip}
211 \setlength{\cftbeforechapskip}{1.0em \@plus\p@}
212 \newlength{\cftchapindent}
213 \setlength{\cftchapindent}{0em}
214 \newlength{\cftchapnumwidth}
215 \setlength{\cftchapnumwidth}{1.5em}
216 \newcommand{\cftchapfont}{\bfseries}
217 \newcommand{\cftchapaftersnum}{}

218 \newcommand{\cftchapaftersnumb}{}
219 \newcommand{\cftchapleader}{\bfseries\@cftdotfill{\cftchapdotsep}}
220 \newcommand{\cftchapdotsep}{\cftnodots}
221 \newcommand{\cftchappagefont}{\bfseries}
222 \newcommand{\cftchapafterpnum}{}

\l@section \l@section{⟨title⟩}{⟨page⟩} typesets the ToC entry for a section heading. It is a parameterised copy of the default \l@section (see classes.dtx for the original definition).

223 \renewcommand*{\l@section}[2]{%
224 \ifnum \c@tocdepth >\z@
225  \ifSCDchapter
226  \vskip \cftbeforesecskip
227  \else
228  \addpenalty\@secpenalty
229  \addvspace{\cftbeforesecskip}
230  \fi
231  {\leftskip \cftsecindent\relax
232  \rightskip \@tocrmarg
233  \parfillskip -\rightskip
234  \parindent \cftsecindent\relax\@afterindenttrue
235  \interlinepenalty\@M
236  \leavevmode
237  \@tempdima \cftsecnumwidth\relax
238  \let\@cftasnum \cftsecaftersnum
239  \let\@cftasnumb \cftsecaftersnumb
240  \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
241  {\cftsecfont #1}\nobreak
242  {\cftsecleader}
243  \nobreak
244  \hb@xt@\@pnumwidth{\hfil\cftsecpagefont #2}\cftsecafterpnum\par}%
245 \fi}
\cftbeforesecskip \cftsecindent \cftsecnumwidth \cftsecfont \cftsecaftersnum \cftsecaftersnumb \cftsecleader \cftsecdotsep \cftsecpagefont \cftsecafterpnum These are the user commands to control the typesetting of Section entries. They

are initialised to give the standard appearance.

246 \newlength{\cftbeforesecskip}
247 \ifSCDchapter
248 \setlength{\cftbeforesecskip}{\z@ \@plus.2\p@}
249 \else
250 \setlength{\cftbeforesecskip}{1.0em \@plus\p@}
251 \fi
252 \newlength{\cftsecindent}
253 \ifSCDchapter
254 \setlength{\cftsecindent}{1.5em}
255 \else
256 \setlength{\cftsecindent}{0em}
257 \fi
258 \newlength{\cftsecnumwidth}
259 \ifSCDchapter
260 \setlength{\cftsecnumwidth}{2.3em}
261 \else
262 \setlength{\cftsecnumwidth}{1.5em}
263 \fi
264 \ifSCDchapter

265 \newcommand{\cftsecfont}{\normalfont}
266 \else
267 \newcommand{\cftsecfont}{\bfseries}
268 \fi
269 \newcommand{\cftsecaftersnum}{}
270 \newcommand{\cftsecaftersnumb}{}
271 \ifSCDchapter
272 \newcommand{\cftsecleader}{\normalfont\@cftdotfill{\cftsecdotsep}}
273 \else
274 \newcommand{\cftsecleader}{\bfseries\@cftdotfill{\cftsecdotsep}}
275 \fi
276 \ifSCDchapter
277 \newcommand{\cftsecdotsep}{\cftdotsep}
278 \else
279 \newcommand{\cftsecdotsep}{\cftnodots}
280 \fi
281 \ifSCDchapter
282 \newcommand{\cftsecpagefont}{\normalfont}
283 \else
284 \newcommand{\cftsecpagefont}{\bfseries}
285 \fi
286 \newcommand{\cftsecafterpnum}{}

\l@subsection \l@subsection{⟨title⟩}{⟨page⟩} typesets the ToC entry for a subsection heading. It is a parameterised copy of the default \l@subsection (see classes.dtx for the original definition).

287 \renewcommand*{\l@subsection}[2]{%

Only typeset the entry if it falls within the tocdepth.

288 \ifnum \c@tocdepth >\@ne

Add some vertical space.

289  \vskip \cftbeforesubsecskip

Start a group to keep paragraphing changes local. Set the \leftskip to the entry’s indentation.

290  {\leftskip \cftsubsecindent\relax

Set the \rightskip to \@tocrmarg to leave room for the page number.

291  \rightskip \@tocrmarg

Ensure that the last line of the entry will be filled. Setting \parfillskip to a negative number prevents any overfull box messages.

292  \parfillskip -\rightskip

Set the paragraph indent to the entry’s indentation.

293  \parindent \cftsubsecindent\relax\@afterindenttrue

Try and prevent breaks between lines in a multiple line entry.

294  \interlinepenalty\@M

Make sure that we have left vertical mode.

295  \leavevmode

Our version of \numberline expects that the width of the number box is in \@tempdima, and that the two macros \@cftasnum and \@cftasnumb are defined. We set all these to the values for this entry.

296  \@tempdima \cftsubsecnumwidth\relax
297  \let\@cftasnum \cftsubsecaftersnum
298  \let\@cftasnumb \cftsubsecaftersnumb

Arrange that the (section number and) first line of the title is set at the current indent, and any further lines are further indented.

299  \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip

Print the (number and) title, prohibiting any breaking.

300  {\cftsubsecfont #1}\nobreak

Print the leader between the title and the page number, again asking for no breaks.

301  {\cftsubsecleader}
302  \nobreak

Finally, set the page number flushright in a box of width \@pnumwidth, not forgetting to finish the paragraph and close the group.

303  \hb@xt@\@pnumwidth{\hfil\cftsubsecpagefont #2}\cftsubsecafterpnum\par}%
304 \fi}
\cftbeforesubsecskip \cftsubsecindent \cftsubsecnumwidth \cftsubsecfont \cftsubsecaftersnum \cftsubsecaftersnumb \cftsubsecleader \cftsubsecdotsep \cftsubsecpagefont \cftsubsecafterpnum These are the user commands to control the typesetting of Sub-section entries.

They are initialised to give the standard appearance.

305 \newlength{\cftbeforesubsecskip}
306 \setlength{\cftbeforesubsecskip}{\z@ \@plus.2\p@}
307 \newlength{\cftsubsecindent}
308 \ifSCDchapter
309 \setlength{\cftsubsecindent}{3.8em}
310 \else
311 \setlength{\cftsubsecindent}{1.5em}
312 \fi
313 \newlength{\cftsubsecnumwidth}
314 \ifSCDchapter
315 \setlength{\cftsubsecnumwidth}{3.2em}
316 \else
317 \setlength{\cftsubsecnumwidth}{2.3em}
318 \fi
319 \newcommand{\cftsubsecfont}{\normalfont}
320 \newcommand{\cftsubsecaftersnum}{}
321 \newcommand{\cftsubsecaftersnumb}{}
322 \newcommand{\cftsubsecleader}{\normalfont\@cftdotfill{\cftsubsecdotsep}}
323 \newcommand{\cftsubsecdotsep}{\cftdotsep}
324 \newcommand{\cftsubsecpagefont}{\normalfont}
325 \newcommand{\cftsubsecafterpnum}{}
\l@subsubsection  \l@subsubsection{⟨title⟩}{⟨page⟩} typesets the ToC entry for a subsubsection

heading. It is a parameterised copy of the default \l@subsubsection (see classes.dtx for the original definition).

326 \renewcommand*{\l@subsubsection}[2]{%
327 \ifnum \c@tocdepth >\tw@
328  \vskip \cftbeforesubsubsecskip
329  {\leftskip \cftsubsubsecindent\relax
330  \rightskip \@tocrmarg
331  \parfillskip -\rightskip
332  \parindent \cftsubsubsecindent\relax\@afterindenttrue
333  \interlinepenalty\@M

334  \leavevmode
335  \@tempdima \cftsubsubsecnumwidth\relax
336  \let\@cftasnum \cftsubsubsecaftersnum
337  \let\@cftasnumb \cftsubsubsecaftersnumb
338  \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
339  {\cftsubsubsecfont #1}\nobreak
340  {\cftsubsubsecleader}
341  \nobreak
342  \hb@xt@\@pnumwidth{\hfil\cftsubsubsecpagefont #2}\cftsubsubsecafterpnum\par}%
343 \fi}
\cftbeforesubsubsecskip \cftsubsubsecindent \cftsubsubsecnumwidth \cftsubsubsecfont \cftsubsubsecaftersnum \cftsubsubsecaftersnumb \cftsubsubsecleader \cftsubsubsecdotsep \cftsubsubsecpagefont \cftsubsubsecafterpnum These are the user commands to control the typesetting of Sub-sub-section entries.

They are initialised to give the standard appearance.

344 \newlength{\cftbeforesubsubsecskip}
345 \setlength{\cftbeforesubsubsecskip}{\z@ \@plus.2\p@}
346 \newlength{\cftsubsubsecindent}
347 \ifSCDchapter
348 \setlength{\cftsubsubsecindent}{7.0em}
349 \else
350 \setlength{\cftsubsubsecindent}{3.8em}
351 \fi
352 \newlength{\cftsubsubsecnumwidth}
353 \ifSCDchapter
354 \setlength{\cftsubsubsecnumwidth}{4.1em}
355 \else
356 \setlength{\cftsubsubsecnumwidth}{3.2em}
357 \fi
358 \newcommand{\cftsubsubsecfont}{\normalfont}
359 \newcommand{\cftsubsubsecaftersnum}{}
360 \newcommand{\cftsubsubsecaftersnumb}{}
361 \newcommand{\cftsubsubsecleader}{\normalfont\@cftdotfill{\cftsubsubsecdotsep}}
362 \newcommand{\cftsubsubsecdotsep}{\cftdotsep}
363 \newcommand{\cftsubsubsecpagefont}{\normalfont}
364 \newcommand{\cftsubsubsecafterpnum}{}

\l@paragraph \l@paragraph{⟨title⟩}{⟨page⟩} typesets the ToC entry for a paragraph heading. It is a parameterised copy of the default \l@paragraph (see classes.dtx for the original definition).

365 \renewcommand*{\l@paragraph}[2]{%
366 \ifnum \c@tocdepth >3\relax
367  \vskip \cftbeforeparaskip
368  {\leftskip \cftparaindent\relax
369  \rightskip \@tocrmarg
370  \parfillskip -\rightskip
371  \parindent \cftparaindent\relax\@afterindenttrue
372  \interlinepenalty\@M
373  \leavevmode
374  \@tempdima \cftparanumwidth\relax
375  \let\@cftasnum \cftparaaftersnum
376  \let\@cftasnumb \cftparaaftersnumb
377  \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
378  {\cftparafont #1}\nobreak
379  {\cftparaleader}
380  \nobreak

381  \hb@xt@\@pnumwidth{\hfil\cftparapagefont #2}\cftparaafterpnum\par}%
382 \fi}
\cftbeforeparaskip \cftparaindent \cftparanumwidth \cftparafont \cftparaaftersnum \cftparaaftersnumb \cftparaleader \cftparadotsep \cftparapagefont \cftparaafterpnum These are the user commands to control the typesetting of Paragraph entries.

They are initialised to give the standard appearance.

383 \newlength{\cftbeforeparaskip}
384 \setlength{\cftbeforeparaskip}{\z@ \@plus.2\p@}
385 \newlength{\cftparaindent}
386 \ifSCDchapter
387 \setlength{\cftparaindent}{10em}
388 \else
389 \setlength{\cftparaindent}{7.0em}
390 \fi
391 \newlength{\cftparanumwidth}
392 \ifSCDchapter
393 \setlength{\cftparanumwidth}{5em}
394 \else
395 \setlength{\cftparanumwidth}{4.1em}
396 \fi
397 \newcommand{\cftparafont}{\normalfont}
398 \newcommand{\cftparaaftersnum}{}
399 \newcommand{\cftparaaftersnumb}{}
400 \newcommand{\cftparaleader}{\normalfont\@cftdotfill{\cftparadotsep}}
401 \newcommand{\cftparadotsep}{\cftdotsep}
402 \newcommand{\cftparapagefont}{\normalfont}
403 \newcommand{\cftparaafterpnum}{}
\l@subparagraph  \l@subparagraph{⟨title⟩}{⟨page⟩} typesets the ToC entry for a subparagraph

heading. It is a parameterised copy of the default \l@subparagraph (see classes.dtx for the original definition).

404 \renewcommand*{\l@subparagraph}[2]{%
405 \ifnum \c@tocdepth >4\relax
406  \vskip \cftbeforesubparaskip
407  {\leftskip \cftsubparaindent\relax
408  \rightskip \@tocrmarg
409  \parfillskip -\rightskip
410  \parindent \cftsubparaindent\relax\@afterindenttrue
411  \interlinepenalty\@M
412  \leavevmode
413  \@tempdima \cftsubparanumwidth\relax
414  \let\@cftasnum \cftsubparaaftersnum
415  \let\@cftasnumb \cftsubparaaftersnumb
416  \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
417  {\cftsubparafont #1}\nobreak
418  {\cftsubparaleader}
419  \nobreak
420  \hb@xt@\@pnumwidth{\hfil\cftsubparapagefont #2}\cftsubparaafterpnum\par}%
421 \fi}
\cftbeforesubparaskip \cftsubparaindent \cftsubparanumwidth \cftsubparafont \cftsubparaaftersnum \cftsubparaaftersnumb \cftsubparaleader \cftsubparadotsep \cftsubparapagefont \cftsubparaafterpnum These are the user commands to control the typesetting of Sub-paragraph entries.

They are initialised to give the standard appearance.

422 \newlength{\cftbeforesubparaskip}
423 \setlength{\cftbeforesubparaskip}{\z@ \@plus.2\p@}

424 \newlength{\cftsubparaindent}
425 \ifSCDchapter
426 \setlength{\cftsubparaindent}{12em}
427 \else
428 \setlength{\cftsubparaindent}{10em}
429 \fi
430 \newlength{\cftsubparanumwidth}
431 \ifSCDchapter
432 \setlength{\cftsubparanumwidth}{6em}
433 \else
434 \setlength{\cftsubparanumwidth}{5em}
435 \fi
436 \newcommand{\cftsubparafont}{\normalfont}
437 \newcommand{\cftsubparaaftersnum}{}
438 \newcommand{\cftsubparaaftersnumb}{}
439 \newcommand{\cftsubparaleader}{\normalfont\@cftdotfill{\cftsubparadotsep}}
440 \newcommand{\cftsubparadotsep}{\cftdotsep}
441 \newcommand{\cftsubparapagefont}{\normalfont}
442 \newcommand{\cftsubparaafterpnum}{}

\@cftdobiblof If the tocbibind package has been used and it has redefined \listoffigures we need to cater for that. The contents of the definition are defined in tocbibind.

443 \newcommand{\@cftdobiblof}{%
444 \if@dotoclof
445  \if@bibchapter
446  \addcontentsline{toc}{chapter}{\listfigurename}
447  \else
448  \addcontentsline{toc}{\@tocextra}{\listfigurename}
449  \fi
450 \fi}

\listoffigures This is a parameterised version of the default \listoffigures command. The changes are postponed until after all packages have been loaded. Each class has its own definition, but we have to cater for all classes in one definition, hence some of the checks. First, perform the default checks for multicolumns. (Do nothing if titles option is used).

451 \AtBeginDocument{
452 \if@cftnctoc\else
453 \renewcommand{\listoffigures}{%
454 \@cfttocstart

Ensure that any previous paragraph has been finished. Within a group set the local paragraphing style. Typeset the title and then do the contents of the .lof file.

455 \par
456 \begingroup
457  \parindent\z@ \parskip\z@
458  \@cftmakeloftitle
459  \if@cfttocbibind
460  \@cftdobiblof
461  \fi
462  \@starttoc{lof}%
463 \endgroup

Finally, restore any multicolumn typesetting.

464 \@cfttocfinish}
465 \fi

466 }

\@cftmakeloftitle This command typesets the title for the LoF.

467 \newcommand{\@cftmakeloftitle}{%
468 \vspace*{\cftbeforeloftitleskip}
469 \interlinepenalty\@M
470 {\cftloftitlefont\listfigurename}{\cftafterloftitle}
471 \cftmarklof
472 \par\nobreak
473 \vskip \cftafterloftitleskip
474 \@afterheading}

\cftbeforeloftitleskip \cftafterloftitleskip These two lengths control the vertical spacing before and after the LoF title.

475 \newlength{\cftbeforeloftitleskip}
476 \newlength{\cftafterloftitleskip}

Their values depend on whether the document has chapters or not. In chaptered documents the default LoF title is typeset as a \chapter*, otherwise as a

 \section*.
477 \ifSCDchapter
478 \setlength{\cftbeforeloftitleskip}{50pt}
479 \setlength{\cftafterloftitleskip}{40pt}
480 \else
481 \setlength{\cftbeforeloftitleskip}{3.5ex \@plus 1ex \@minus .2ex}
482 \setlength{\cftafterloftitleskip}{2.3ex \@plus.2ex}
483 \fi
\cftloftitlefont \cftafterloftitle The LoF title is typeset in the style given by \cftloftitlefont. The macro

\cftafterloftitle is called after typesetting the title. This is initialised to do nothing. Both these macros can be redefined to do other things (e.g., adding an \hfill to \cftloftitlefont will make the title flushright).

484 \ifSCDchapter
485 \newcommand{\cftloftitlefont}{\normalfont\Huge\bfseries}
486 \else
487 \newcommand{\cftloftitlefont}{\normalfont\Large\bfseries}
488 \fi
489 \newcommand{\cftafterloftitle}{}

\l@figure \l@figure{⟨title⟩}{⟨page⟩} typesets the LoF entry for a figure caption heading. It is a parameterised copy of the default \l@figure (see classes.dtx for the original definition).

490 \renewcommand*{\l@figure}[2]{%
491  \vskip \cftbeforefigskip
492  {\leftskip \cftfigindent\relax
493  \rightskip \@tocrmarg
494  \parfillskip -\rightskip
495  \parindent \cftfigindent\relax\@afterindenttrue
496  \interlinepenalty\@M
497  \leavevmode
498  \@tempdima \cftfignumwidth\relax

499  \let\@cftasnum \cftfigaftersnum
500  \let\@cftasnumb \cftfigaftersnumb
501  \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
502  {\cftfigfont #1}\nobreak
503  {\cftfigleader}
504  \nobreak
505  \hb@xt@\@pnumwidth{\hfil\cftfigpagefont #2}\cftfigafterpnum\par}%

506 }

\cftbeforefigskip \cftfigindent \cftfignumwidth \cftfigfont \cftfigaftersnum \cftfigaftersnumb \cftfigleader \cftfigdotsep \cftfigpagefont \cftfigafterpnum These are the user commands to control the typesetting of Figure caption entries.

They are initialised to give the standard appearance.

507 \newlength{\cftbeforefigskip}
508 \setlength{\cftbeforefigskip}{\z@ \@plus.2\p@}
509 \newlength{\cftfigindent}
510 \setlength{\cftfigindent}{1.5em}
511 \newlength{\cftfignumwidth}
512 \setlength{\cftfignumwidth}{2.3em}
513 \newcommand{\cftfigfont}{\normalfont}
514 \newcommand{\cftfigaftersnum}{}
515 \newcommand{\cftfigaftersnumb}{}
516 \newcommand{\cftfigleader}{\normalfont\@cftdotfill{\cftfigdotsep}}
517 \newcommand{\cftfigdotsep}{\cftdotsep}
518 \newcommand{\cftfigpagefont}{\normalfont}
519 \newcommand{\cftfigafterpnum}{}

\@cftdobiblot If the tocbibind package has been used and it has redefined \listoftables we need to cater for that. The contents of the definition are defined in tocbibind.

520 \newcommand{\@cftdobiblot}{%
521 \if@dotoclot
522  \if@bibchapter
523  \addcontentsline{toc}{chapter}{\listtablename}
524  \else
525  \addcontentsline{toc}{\@tocextra}{\listtablename}
526  \fi
527 \fi}

\listoftables This is a parameterised version of the default \listoftables command. The changes are postponed until after all packages have been loaded. Each class has its own definition, but we have to cater for all classes in one definition, hence some of the checks. First, perform the default checks for multicolumns. (Do nothing if the titles option has been used).

528 \AtBeginDocument{
529 \if@cftnctoc\else
530 \renewcommand{\listoftables}{%
531 \@cfttocstart

Ensure that any previous paragraph has been finished. Within a group set the local paragraphing style. Typeset the title and then do the contents of the .lot file.

532 \par
533 \begingroup
534  \parindent\z@ \parskip\z@
535  \@cftmakelottitle

536  \if@cfttocbibind
537  \@cftdobiblot
538  \fi
539  \@starttoc{lot}%
540 \endgroup

Finally, restore any multicolumn typesetting.

541 \@cfttocfinish}
542 \fi

543 }

\@cftmakelottitle This command typesets the title for the LoT.

544 \newcommand{\@cftmakelottitle}{%
545 \vspace*{\cftbeforelottitleskip}
546 \interlinepenalty\@M
547 {\cftlottitlefont\listtablename}{\cftafterlottitle}
548 \cftmarklot
549 \par\nobreak
550 \vskip \cftafterlottitleskip
551 \@afterheading}

\cftbeforelottitleskip \cftafterlottitleskip These two lengths control the vertical spacing before and after the LoT title.

552 \newlength{\cftbeforelottitleskip}
553 \newlength{\cftafterlottitleskip}

Their values depend on whether the document has chapters or not. In chaptered documents the default LoT title is typeset as a \chapter*, otherwise as a

 \section*.
554 \ifSCDchapter
555 \setlength{\cftbeforelottitleskip}{50pt}
556 \setlength{\cftafterlottitleskip}{40pt}
557 \else
558 \setlength{\cftbeforelottitleskip}{3.5ex \@plus 1ex \@minus .2ex}
559 \setlength{\cftafterlottitleskip}{2.3ex \@plus.2ex}
560 \fi
\cftlottitlefont \cftafterlottitle The LoT title is typeset in the style given by \cftlottitlefont. The macro

\cftafterlottitle is called after typesetting the title. This is initialised to do nothing. Both these macros can be redefined to do other things (e.g., adding an \hfill to \cftlottitlefont will make the title flushright).

561 \ifSCDchapter
562 \newcommand{\cftlottitlefont}{\normalfont\Huge\bfseries}
563 \else
564 \newcommand{\cftlottitlefont}{\normalfont\Large\bfseries}
565 \fi
566 \newcommand{\cftafterlottitle}{}

\l@table \l@table{⟨title⟩}{⟨page⟩} typesets the LoT entry for a table caption heading. It is a parameterised copy of the default \l@table (see classes.dtx for the original definition).

567 \renewcommand*{\l@table}[2]{%
568  \vskip \cftbeforetabskip
569  {\leftskip \cfttabindent\relax
570  \rightskip \@tocrmarg

571  \parfillskip -\rightskip
572  \parindent \cfttabindent\relax\@afterindenttrue
573  \interlinepenalty\@M
574  \leavevmode
575  \@tempdima \cfttabnumwidth\relax
576  \let\@cftasnum \cfttabaftersnum
577  \let\@cftasnumb \cfttabaftersnumb
578  \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
579  {\cfttabfont #1}\nobreak
580  {\cfttableader}
581  \nobreak
582  \hb@xt@\@pnumwidth{\hfil\cfttabpagefont #2}\cfttabafterpnum\par}%

583 }

\cftbeforetabskip \cfttabindent \cfttabnumwidth \cfttabfont \cfttabaftersnum \cfttabaftersnumb \cfttableader \cfttabdotsep \cfttabpagefont \cfttabafterpnum These are the user commands to control the typesetting of Table caption entries.

They are initialised to give the standard appearance.

584 \newlength{\cftbeforetabskip}
585 \setlength{\cftbeforetabskip}{\z@ \@plus.2\p@}
586 \newlength{\cfttabindent}
587 \setlength{\cfttabindent}{1.5em}
588 \newlength{\cfttabnumwidth}
589 \setlength{\cfttabnumwidth}{2.3em}
590 \newcommand{\cfttabfont}{\normalfont}
591 \newcommand{\cfttabaftersnum}{}
592 \newcommand{\cfttabaftersnumb}{}
593 \newcommand{\cfttableader}{\normalfont\@cftdotfill{\cfttabdotsep}}
594 \newcommand{\cfttabdotsep}{\cftdotsep}
595 \newcommand{\cfttabpagefont}{\normalfont}
596 \newcommand{\cfttabafterpnum}{}

\cftchapterprecis This is experimental. \cftchapterprecis{⟨text⟩} typesets ⟨text⟩ at the point where it is called, and also adds ⟨text⟩ to the .toc file. It is expects to be called immediately after a \chapter command.

597 \newcommand{\cftchapterprecis}[1]{%
598 \cftchapterprecishere{#1}
599 \cftchapterprecistoc{#1}}

\cftchapterprecishere \cftchapterprecishere{⟨text⟩} typesets ⟨text⟩. It expects to be called immediately after a \chapter command. First add some negative vertical space to move it closer to the chapter heading.

600 \newcommand{\cftchapterprecishere}[1]{%
601 \vspace*{-2\baselineskip}

Typeset its argument using italic font in a quote environment.

602 \begin{quote}\textit{#1}\end{quote}}
\cftchapterprecistoc  \cftchapterprecistoc{⟨text⟩} adds ⟨text⟩ to the .toc file. The ⟨text⟩ will be

typeset within the same margins as the the title text of a \chapter heading, using an italic font.

603 \newcommand{\cftchapterprecistoc}[1]{\addtocontents{toc}{%

Start a group to localize changes to the paragraphing. Set the left margin to the chapter indent plus the chapter number width.

604 {\leftskip \cftchapindent\relax
605 \advance\leftskip \cftchapnumwidth\relax

Set the right hand margin to \@tocrmarg.

606 \rightskip \@tocrmarg\relax

Typeset ⟨text⟩ using an italic font, then ensure that the paragraph is finished (to use the local skips). Finally close the group and we are done.

607 \textit{#1}\protect\par}}}

\cftlocalchange \cftmakelocalchange{⟨file⟩}{⟨pnumwidth⟩}{⟨tocrmarg⟩} makes an entry into ⟨file⟩ to change the \@pnumwidth and the \@tocrmarg values.

608 \newcommand{\cftlocalchange}[3]{%
609 \addtocontents{#1}{\protect\cftsetpnumwidth{#2} \protect\cftsetrmarg{#3}}}
\cftaddtitleline  \cftaddtitleline{⟨file⟩}{⟨kind⟩}{⟨title⟩}{⟨page⟩} adds a \contentsline entry

to ⟨file⟩ with the given information.

610 \newcommand{\cftaddtitleline}[4]{%
611 \addtocontents{#1}{\protect\contentsline{#2}{#3}{#4}}}
\cftaddnumtitleline  \cftaddtitleline{⟨file⟩}{⟨kind⟩}{⟨num⟩}{⟨title⟩}{⟨page⟩} adds a \contentsline

entry to ⟨file⟩ with the given information.

612 \newcommand{\cftaddnumtitleline}[5]{%
613 \addtocontents{#1}%
614  {\protect\contentsline{#2}{\protect\numberline{#3}{\protect\ignorespaces #4}}{#5}}}

The end of this package.

615 ⟨/usc⟩

References

[GMS94] Michel Goossens, Frank Mittelbach, and Alexander Samarin. The LaTeX Companion. Addison-Wesley Publishing Company, 1994.

[Wil96] Peter R. Wilson. LaTeX for standards: The LaTeX package files user manual. NIST Report NISTIR, June 1996.

Index

Numbers written in italic refer to the page where the corresponding entry is described, the ones underlined to the code line of the definition, the rest to the code lines where the entry is used.

Symbols

 \@afterheading . . . .

…. 107, 474, 551

 \@afterindenttrue .

. . . . . . . . 197, 234, 293, 332, 371, 410, 495, 572

 \@cftasnum . 10, 132,

\underline{133}, 157, 201, 238, 297, 336, 375, 414, 499, 576

                           \@cftasnumb . 10, 132,

\underline{133}, 158, 202, 239, 298, 337, 376, 415, 500, 577

                           \@cftdobiblof . \underline{443}, 460
                           \@cftdobiblot . \underline{520}, 537
                           \@cftdobibtoc . . . \underline{76}, 93
                           \@cftdopartfalse . . 138
                           \@cftdoparttrue 141, 145
                           \@cftdotfill . . \underline{125},

185, 219, 272, 274, 322, 361, 400, 439, 516, 593

                                                    \@cftmakeloftitle .

. . . . . . . . 458, \underline{467}

                                                    \@cftmakelottitle .

. . . . . . . . 535, \underline{544}

                                                    \@cftmaketoctitle .

. . . . . . . . 91, \underline{100}

                                                    \@cftnctocfalse . . . 55
                                                    \@cftnctoctrue . . . . 56
                                                    \@cfttocbibindfalse 45

\@cfttocbibindtrue . 45
\@cfttocfinish . . . .

. . \underline{64}, 97, 464, 541

\@cfttocstart . . . . .

. . \underline{64}, 87, 454, 531 \@dotsep . . . . . . . . . . 2

\@dottedtocline . . . . 3
\@highpenalty . 151, 192
\@ifpackagelater . . 47
\@ifpackageloaded . 45
\@nobreakfalse 168, 172
\@nobreaktrue . 167, 171
\@pnumwidth . . . . . . .

… 2, 123, 160, 161, 164, 207, 244, 303, 342, 381, 420, 505, 582

\@restonecolfalse . 69
\@restonecoltrue . . 67
\@secpenalty . . 153, 228

\@spaces . . . . . . . . . . 7

\@starttoc 95, 462, 539
\@tocextra 81, 448, 525
\@tocrmarg . . . . . . .

2, 124, 195, 232, 291, 330, 369, 408, 493, 570, 606

A

\addcontentsline . .

…. 2, 79, 81, 446, 448, 523, 525

\addtocontents . . 3,

603, 609, 611, 613

\AtBeginDocument . .

. . 44, 84, 451, 528

B

\baselineskip . . . . . 601

C

\c@tocdepth . . . 139,

143, 191, 224, 288, 327, 366, 405

\cftaddnumtitleline

. . . . . . . . 10, \underline{612}

\cftaddtitleline 9, \underline{610}
\cftafterloftitle .

. . . . . . . . 470, \underline{484}

\cftafterloftitleskip

. . . . . . . . 473, \underline{475}

\cftafterlottitle .

. . . . . . . . 547, \underline{561}

\cftafterlottitleskip

. . . . . . . . 550, \underline{552}

\cftaftertoctitle .

. . . . . . . . 103, \underline{117}

\cftaftertoctitleskip

. . . . . . . . 106, \underline{108}

\cftafterXtitle . . . . 5
\cftafterXtitleskip . 5
\cftbeforechapskip .

. . . . . . . . 193, \underline{210}

\cftbeforefigskip .

. . . . . . . . 491, \underline{507}

\cftbeforeloftitleskip

. . . . . . . . 468, \underline{475}

\cftbeforelottitleskip

. . . . . . . . 545, \underline{552}

\cftbeforeparaskip .

. . . . . . . . 367, \underline{383}

\cftbeforepartskip .

. . . . . . . . 155, \underline{178}

\cftbeforesecskip .

…. 226, 229, \underline{246}

\cftbeforesubparaskip

. . . . . . . . 406, \underline{422}

\cftbeforesubsecskip

. . . . . . . . 289, \underline{305}

\cftbeforesubsubsecskip

. . . . . . . . 328, \underline{344}

\cftbeforetabskip .

. . . . . . . . 568, \underline{584}

\cftbeforetoctitleskip

. . . . . . . . 101, \underline{108}

\cftbeforeXskip . . . . 7
\cftbeforeXtitleskip 5
\cftchapafterpnum .

. . . . . . . . 207, \underline{210}

\cftchapaftersnum .

. . . . . . . . 201, \underline{210}

\cftchapaftersnumb .

. . . . . . . . 202, \underline{210}

\cftchapdotsep . . . . \underline{210}
\cftchapfont . . 204, \underline{210}
\cftchapindent . . . .

. 194, 197, \underline{210}, 604

\cftchapleader 205, \underline{210}
\cftchapnumwidth . .

…. 200, \underline{210}, 605

\cftchappagefont . .

. . . . . . . . 207, \underline{210}

\cftchapterprecis 9, \underline{597}
\cftchapterprecishere

. . . . . . 9, 598, \underline{600}

\cftchapterprecistoc

. . . . . . 9, 599, \underline{603} \cftdot . . . . . . . . 6, \underline{125}

\cftdotsep . . 6, \underline{128},

277, 323, 362, 401, 440, 517, 594

\cftfigafterpnum . .

. . . . . . . . 505, \underline{507}

\cftfigaftersnum . .

. . . . . . . . 499, \underline{507}

\cftfigaftersnumb .

. . . . . . . . 500, \underline{507}

\cftfigdotsep . . . . . \underline{507}
\cftfigfont . . . 502, \underline{507}
\cftfigindent . . . . .

…. 492, 495, \underline{507}

\cftfigleader . 503, \underline{507}
\cftfignumwidth 498, \underline{507}
\cftfigpagefont 505, \underline{507}
\cftlocalchange . 9, \underline{608}
\cftloftitlefont . .

. . . . . . . . 470, \underline{484}

\cftlottitlefont . .

. . . . . . . . 547, \underline{561}

\cftmarklof . . . . \underline{58}, 471
\cftmarklot . . . . \underline{58}, 548
\cftmarktoc . . . . \underline{58}, 104

\cftmarkX . . . . . . . . . 5

\cftnodots . . . . . 6,

\underline{128}, 186, 220, 279

\cftparaafterpnum .

. . . . . . . . 381, \underline{383}

\cftparaaftersnum .

. . . . . . . . 375, \underline{383}

\cftparaaftersnumb .

. . . . . . . . 376, \underline{383}

\cftparadotsep . . . . \underline{383}
\cftparafont . . 378, \underline{383}
\cftparaindent . . . .

…. 368, 371, \underline{383}

\cftparaleader 379, \underline{383}
\cftparanumwidth . .

. . . . . . . . 374, \underline{383}

\cftparapagefont . .

. . . . . . . . 381, \underline{383}

\cftparfillskip . . . \underline{130}
\cftpartafterpnum .

. . . . . . . . 164, \underline{178}

\cftpartaftersnum .

. . . . . . . . 157, \underline{178}

\cftpartaftersnumb .

. . . . . . . . 158, \underline{178}

\cftpartdotsep . . . . \underline{178}
\cftpartfont . . 163, \underline{178}
\cftpartleader 163, \underline{178}
\cftpartnumwidth . .

. . . . . . . . 156, \underline{178}

\cftpartpagefont . .

. . . . . . . . 164, \underline{178}

\cftsecafterpnum . .

. . . . . . . . 244, \underline{246}

\cftsecaftersnum . .

. . . . . . . . 238, \underline{246}

\cftsecaftersnumb .

. . . . . . . . 239, \underline{246}

\cftsecdotsep . . . . . \underline{246}
\cftsecfont . . . 241, \underline{246}
\cftsecindent . . . . .

…. 231, 234, \underline{246}

\cftsecleader . 242, \underline{246}
\cftsecnumwidth 237, \underline{246}
\cftsecpagefont 244, \underline{246}
\cftsetpnumwidth . .

. . . . . . 6, \underline{123}, 609

\cftsetrmarg 6, \underline{123}, 609
\cftsubparaafterpnum

. . . . . . . . 420, \underline{422}

\cftsubparaaftersnum

. . . . . . . . 414, \underline{422}

\cftsubparaaftersnumb

. . . . . . . . 415, \underline{422}

\cftsubparadotsep . \underline{422}
\cftsubparafont 417, \underline{422}
\cftsubparaindent .

…. 407, 410, \underline{422}

\cftsubparaleader .

. . . . . . . . 418, \underline{422}

\cftsubparanumwidth

. . . . . . . . 413, \underline{422}

\cftsubparapagefont

. . . . . . . . 420, \underline{422}

\cftsubsecafterpnum

. . . . . . . . 303, \underline{305}

\cftsubsecaftersnum

. . . . . . . . 297, \underline{305}

\cftsubsecaftersnumb

. . . . . . . . 298, \underline{305}

\cftsubsecdotsep . . \underline{305}
\cftsubsecfont 300, \underline{305}
\cftsubsecindent . .

…. 290, 293, \underline{305}

\cftsubsecleader . .

. . . . . . . . 301, \underline{305}

\cftsubsecnumwidth .

. . . . . . . . 296, \underline{305}

\cftsubsecpagefont .

. . . . . . . . 303, \underline{305}

\cftsubsubsecafterpnum

. . . . . . . . 342, \underline{344}

\cftsubsubsecaftersnum

. . . . . . . . 336, \underline{344}

\cftsubsubsecaftersnumb

. . . . . . . . 337, \underline{344}

\cftsubsubsecdotsep  \underline{344}
\cftsubsubsecfont .

. . . . . . . . 339, \underline{344}

\cftsubsubsecindent

…. 329, 332, \underline{344}

\cftsubsubsecleader

. . . . . . . . 340, \underline{344}

\cftsubsubsecnumwidth

. . . . . . . . 335, \underline{344}

\cftsubsubsecpagefont

. . . . . . . . 342, \underline{344}

\cfttabafterpnum . .

. . . . . . . . 582, \underline{584}

\cfttabaftersnum . .

. . . . . . . . 576, \underline{584}

\cfttabaftersnumb .

. . . . . . . . 577, \underline{584}

\cfttabdotsep . . . . . \underline{584}
\cfttabfont . . . 579, \underline{584}
\cfttabindent . . . . .

…. 569, 572, \underline{584}

\cfttableader . 580, \underline{584}
\cfttabnumwidth 575, \underline{584}
\cfttabpagefont 582, \underline{584}
\cfttoctitlefont . .

. . . . . . . . 103, \underline{117}

\cftXafterpnum . . . . . 7
\cftXaftersnum . . . . . 7
\cftXaftersnumb . . . . 7
\cftXdotsep . . . . . . . . 7

\cftXfont . . . . . . . . . 7

\cftXindent . . . . . . . . 7
\cftXleader . . . . . . . . 7
\cftXnumwidth . . . . . . 7
\cftXpagefont . . . . . . 7
\cftXtitlefont . . . . . 5
\contentsline 2, 611, 614
\contentsname . . . . .

… 59, 79, 81, 103

E

\endinput … 18, 27, 37

G

\GenericWarning . . . . 6

H

\hb@xt@ 132, 164, 207, 244, 303, 342, 381, 420, 505, 582

\Huge . . . . . 118, 485, 562

I

                          \if@bibchapter . . . .

. . . . . 78, 445, 522

                          \if@cftdopart . . . . . \underline{135}
                          \if@cftnctoc . . . . . .

. . \underline{55}, 85, 452, 529

                          \if@cfttocbibind . .

. . \underline{43}, 92, 459, 536

                          \if@compatibility . 170
                          \if@dotoclof . . . . . . 444
                          \if@dotoclot . . . . . . 521
                          \if@dotoctoc . . . . . . 77
                          \if@restonecol . . . . 74
                          \if@twocolumn . . . . . 66
                          \ifSCDchapter . . 29,

65, 73, 110, 117, 140, 144, 150, 166, 189, 225, 247, 253, 259, 264, 271, 276, 281, 308, 314, 347, 353, 386, 392, 425, 431, 477, 484, 554, 561

                          \ifSCDknownclass . . 21
                          \ifSCDnodivs . . . . 15, 24
                          \ifSCDpart . . . . . . . 136
                          \ifSCDsection . . . . . 32
                          \ignorespaces . . . . . 614
                          \interlinepenalty .

. . . . . . . . 102, 198, 235, 294, 333, 372, 411, 469, 496, 546, 573

L

                          \l@chapter . . . . . . . \underline{189}

\l@figure . . . . . . . . \underline{490}

                          \l@paragraph . . . . . . \underline{365}

\l@part . . . . . . . . . . \underline{135}

                          \l@section . . . . . . . \underline{223}
                          \l@subparagraph . . . \underline{404}
                          \l@subsection . . . . . \underline{287}
                          \l@subsubsection . . \underline{326}

\l@table . . . . . . . . . \underline{567} \Large …. 120, 487, 564 \large …. 182, 185, 187 \leaders . . . . . . . . . 127

                          \leftskip . 194, 203,

231, 240, 290, 299, 329, 338, 368, 377, 407, 416, 492, 501, 569, 578, 604, 605

\listfigurename . . .

. 61, 446, 448, 470

\listoffigures . . 4, \underline{451}
\listoftables . . . 4, \underline{528}
\listtablename . . . .

. 63, 523, 525, 547

M

\MakeUppercase 59, 61, 63
\MessageBreak . . . 49–51

\mkern . . . . . . . . . . . 127

N

\newif . . . . . 43, 55, 135

\normalfont 118, 120,

265, 272, 282, 319, 322, 324, 358, 361, 363, 397, 400, 402, 436, 439, 441, 485, 487, 513, 516, 518, 562, 564, 590, 593, 595

\numberline . . . . . 3, \underline{131}

O

\onecolumn . . . . . . . 67

P

\PackageWarning . . .

. 16, 22, 25, 35, 48

\parindent . 90, 160,

197, 234, 293, 332, 371, 410, 457, 495, 534, 572 \parskip . . 90, 457, 534

\providecommand . . 5, 12
\ProvidesPackage . . . 3
\PRWPackageNote . . . . \underline{5}
\PRWPackageNoteNoLine

. . . . . . . \underline{5}, 30, 33

R

\RequirePackage . . . . 4

S

\SCDquit 18, 20, 27, 37, 42

T

\tableofcontents . 4, \underline{84}

\textit . . . . . . 602, 607

\twocolumn . . . . . . . 74