% \iffalse meta-comment % % tocloft.dtx % Author: Peter Wilson, Herries Press % Maintainer: Will Robertson (will dot robertson at latex-project dot org) % Copyright 1998-2003 Peter R. Wilson % Copyright 2009-2017 Will Robertson % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either % version 1.3c of this license or (at your option) any % later version. % % This work has the LPPL maintenance status "maintained". % The Current Maintainer of this work is Will Robertson. % % This work consists of the files listed in the README file. % % %<*driver> \documentclass{ltxdoc} \usepackage{hypdoc} \EnableCrossrefs \CodelineIndex \setcounter{StandardModuleDepth}{1} \begin{document} \DocInput{tocloft.dtx} \end{document} % % %<*usc> \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tocloft}[2017/08/31 v2.3i parameterised ToC, etc., typesetting] % % % \fi % % \changes{v0.1}{1998/12/31}{First public (alpha) release} % \changes{v0.1a}{1999/01/15}{Improved documentation} % \changes{v0.2}{1999/01/17}{Uses the stdclsdv package} % \changes{v0.2a}{1999/01/17}{Interfaced with the tocbibind package} % \changes{v0.2b}{1999/03/07}{Corrected failure when used with float package} % \changes{v0.2c}{1999/06/30}{Added raggedright example} % \changes{v0.3}{1999/08/22}{Added option to prevent ToC head change} % \changes{v1.0}{1999/09/19}{Added PackageNote reporting} % \changes{v1.1}{2000/02/11}{Added cftXpresnum commands} % \changes{v1.1}{2000/02/11}{Added support for subfigure package} % \changes{v1.1a}{2000/02/11}{Changed X to Z in section 2.2} % \changes{v2.0}{2001/03/03}{Added command for new list of...} % \changes{v2.0}{2001/03/03}{Removed requirement for stdclsdv package} % \changes{v2.0}{2001/03/15}{Removed requirement for hyperref option} % \changes{v2.1}{2001/04/08}{Added control over parskip in ToC etc.} % \changes{v2.2}{2001/04/17}{Another fix for hyperref} % \changes{v2.3}{2002/06/15}{Made to work with the koma classes} % \changes{v2.3a}{2002/10/03}{Partial fix for Part changes} % \changes{v2.3b}{2003/01/20}{More fixes for Part changes} % \changes{v2.3c}{2003/09/26}{More fixes for hyperref} % \changes{v2.3d}{2009/09/04}{New maintainer and tiny bug fix} % \changes{v2.3e}{2010/10/13}{Remove a message from the console output} % % \def\dtxfile{\texttt{tocloft.dtx}} % \def\fileversion{v1.1a} \def\filedate{2000/02/11} % \def\fileversion{v2.0} \def\filedate{2001/03/15} % \def\fileversion{v2.1} \def\filedate{2001/04/08} % \def\fileversion{v2.2} \def\filedate{2001/04/17} % \def\fileversion{v2.3} \def\filedate{2002/06/15} % \def\fileversion{v2.3a} \def\filedate{2002/10/03} % \def\fileversion{v2.3b} \def\filedate{2003/01/20} % \def\fileversion{v2.3c} \def\filedate{2003/09/26} % \def\fileversion{v2.3d} \def\filedate{2009/09/04} % \def\fileversion{v2.3e} \def\filedate{2010/10/13} % \def\fileversion{v2.3f} \def\filedate{2013/05/02} % \def\fileversion{v2.3g} \def\filedate{2014/06/14} % \def\fileversion{v2.3h} \def\filedate{2017/08/29} % \def\fileversion{v2.3i} \def\filedate{2017/08/31} % \def\fileversion{v2.3j} \def\filedate{2020/01/10} % % \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} % \DoNotIndex{\@centercr,\@cite} % \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} % \DoNotIndex{\@input,\@ixpt,\@m} % \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} % \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} % \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} % \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} % \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} % \DoNotIndex{\advance,\Alph,\alph} % \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} % \DoNotIndex{\bullet} % \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} % \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} % \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} % \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} % \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} % \DoNotIndex{\fbox} % \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} % \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} % \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} % \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} % \DoNotIndex{\input} % \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} % \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} % \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} % \DoNotIndex{\NeedsTeXFormat,\newdimen} % \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} % \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} % \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} % \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} % \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} % \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} % \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} % \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} % \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} % \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} % \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} % \DoNotIndex{\viipt,\vipt,\vskip,\vspace} % \DoNotIndex{\wd,\xiipt,\year,\z@} % % \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package % \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option % \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file % \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter % \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle % \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment % \providecommand{\bs}{\textbackslash} % % \title{The \Lpack{tocloft} package\thanks{This % file (\dtxfile) has version number \fileversion, last revised % \filedate.}} % % \author{ % Author: Peter Wilson, Herries Press \\ % Maintainer: Will Robertson \\ % \texttt{will dot robertson at latex-project dot org} % } % \date{\filedate} % \maketitle % \begin{abstract} % The \Lpack{tocloft} package provides means of controlling the % typographic design of the Table of Contents, List of Figures and List of % Tables. New kinds of `List of \ldots' can be defined. % % The package has been tested with the % \Lpack{tocbibind}, % \Lpack{minitoc}, % \Lpack{ccaption}, % \Lpack{subfigure}, % \Lpack{float}, % \Lpack{fncychap}, and % \Lpack{hyperref} % packages. % \end{abstract} % \tableofcontents % \makeatletter \renewcommand{\@dotsep}{9.0} \makeatother % \listoffigures % \listoftables % \StopEventually{} % % % % \section{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 \Lpack{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~\cite{PRW96i}. % This manual is typeset according to the conventions of the % \LaTeX{} \textsc{docstrip} utility which enables the automatic % extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}. % % Section~\ref{sec:usc} describes the usage of the package. % Commented source code for the package is in Section~\ref{sec:code}. % % The package has been tested in combination with at least % the \Lpack{tocbibind} package~\cite{TOCBIBIND}, % the \Lpack{minitoc} package~\cite{MINITOC}, % the \Lpack{ccaption} package~\cite{CCAPTION}, % the \Lpack{subfigure} package~\cite{SUBFIGURE} (versions 2.0 and 2.1), % the \Lpack{algorithm} package~\cite{ALGORITHM} (which, in turn, calls the % \Lpack{float} package~\cite{FLOAT}) and the \Lpack{fncychap} package~\cite{FNCYCHAP}. % It also works with the \Lpack{hyperref} 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.\footnote{Thanks to Rowland (\texttt{rebecca@astrid.u-net.com}), % John Foster (\texttt{john@isjf.demon.co.uk}), % Kasper (\texttt{kbg@dkik.dk}), % Lee Nave (\texttt{nave@math.washington.edu}), % and Andrew Thurber (\texttt{athurber@emba.uvm.edu}) % for their suggestions.} % % \subsection{\LaTeX 's methods} % % This is a general description of how \LaTeX{} 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. % % \DescribeMacro{\addcontentsline} % \LaTeX{} generates a \file{.toc} file if the document contains a % |\tableofcontents| command. The sectioning % commands\footnote{For figures and tables it is the \texttt{\bs caption} command % that populates the \file{.lof} and \file{.lot} files.} % put entries into the \file{.toc} file by calling the \LaTeX{} % |\addcontentsline{|\meta{file}|}{|\meta{kind}|}{|\meta{title}|}| % command, where \meta{file} is the file extension (e.g., |toc|), % \meta{kind} is the kind of entry (e.g., |section| or |subsection|), % and \meta{title} is the (numberered) title text. In the cases where % there is a number, the \meta{title} argument is given in the % form |{\numberline{number} title-text}|. % % NOTE: The \Lpack{hyperref} package dislikes authors using % |\addcontentsline|. To get it to work properly with \Lpack{hyperref} % you normally have to put |\phantomsection| (a macro defined within % the \Lpack{hyperref} package) immediately % before |\addcontentsline|. % % \DescribeMacro{\contentsline} % The |\addcontentsline| command writes an entry to the given file % in the form |\contentsline{|\meta{kind}|}{|\meta{title}|}{|\meta{page}|}| % where \meta{page} is the page number. % For each \meta{kind}, \LaTeX{} provides a command % |\l@kind{|\meta{title}|}{|\meta{page}|}| which performs the actual % typesetting of the |\contentsline| entry. % % \newcommand{\maxx}{120} ^^A picture width % \newcommand{\maxxm}{118} ^^A \maxx - 2\ % \newcommand{\maxy}{55} ^^A picture height % \newcommand{\maxym}{53} ^^A \maxy - 2 % \newcommand{\findent}{20} ^^A indent % \newcommand{\findentp}{22} ^^A \findent + 2 % \newcommand{\fnumwidth}{10} ^^A numwidth % \newcommand{\ftocrmarg}{30} ^^A \@tocrmarg % \newcommand{\fpnumwidth}{20} ^^A \@pnumwidth % \newcommand{\fipn}{30} ^^A \findent + \fnumwidth % \newcommand{\frmarg}{90} ^^A \maxx - \ftocrmarg % \newcommand{\frnum}{100} ^^A \maxx - \fpnumwidth % \newcommand{\fyi}{10} ^^A 1st y height % \newcommand{\fyim}{8} ^^A \fyi - 2 % \newcommand{\fyii}{20} ^^A 2nd y height % \newcommand{\fyiii}{25} ^^A 3rd y height % \newcommand{\fyiv}{30} ^^A 4th y height % \newcommand{\fyv}{40} ^^A 5th y height % \newcommand{\fyvp}{42} ^^A \fyv + 2 % \newcommand{\flin}{4} ^^A length of leader lines % \newcommand{\frmargm}{89} ^^A \frmarg (90) - a little bit % % \providecommand{\bs}{\textbackslash} % \begin{figure} % \centering % \setlength{\unitlength}{1mm} % \begin{picture}(\maxx,\maxy) % ^^A side lines and linewidth % \put(0,0){\line(0,1){\maxy}} % \put(\maxx,0){\line(0,1){\maxy}} % \put(0,\maxy){\vector(1,0){\maxx}} % \put(2,\maxym){\makebox(0,0)[tl]{\texttt{\bs linewidth}}} % ^^A \@pnumwidth % \put(\maxx,\fyi){\vector(-1,0){\fpnumwidth}} % \put(\maxxm,\fyim){\makebox(0,0)[tr]{\texttt{\bs @pnumwidth}}} % \put(\frnum,\fyi){\line(0,1){\flin}} % ^^A \@tocrmarg % \put(\maxx,\fyv){\vector(-1,0){\ftocrmarg}} % \put(\maxxm,\fyvp){\makebox(0,0)[br]{\texttt{\bs @tocrmarg}}} % \put(\frmarg,\fyv){\line(0,-1){\flin}} % ^^A indent % \put(0,\fyv){\vector(1,0){\findent}} % \put(2,\fyvp){\makebox(0,0)[bl]{\textit{indent}}} % \put(\findent,\fyv){\line(0,-1){\flin}} % ^^A numwidth % \put(\findent,\fyv){\vector(1,0){\fnumwidth}} % \put(\findentp,\fyvp){\makebox(0,0)[bl]{\textit{numwidth}}} % \put(\fipn,\fyv){\line(0,-1){\flin}} % ^^A last title line % \put(\maxx,\fyii){\makebox(0,0)[br]{487}} % \put(\fipn,\fyii){title end} % ^^A second title line % \put(\fipn,\fyiii){continue\ldots} % \put(\frmarg,\fyiii){\makebox(0,0)[br]{\ldots title}} % ^^A first title line % \put(\findent,\fyiv){\textbf{3.5}} % \put(\fipn,\fyiv){Heading\ldots} % \put(\frmarg,\fyiv){\makebox(0,0)[br]{\ldots title}} % ^^A dotted leader % \multiput(\frmargm,\fyii)(-\flin,0){12}{.} % \multiput(\frmarg,\fyi)(-\flin,0){2}{\line(0,1){\flin}} % \put(\frmarg,\fyi){\vector(-1,0){\flin}} % \put(\frmarg,\fyi){\vector(1,0){0}} % \put(\frmarg,\fyim){\makebox(0,0)[tr]{\texttt{\bs @dotsep}}} % % \end{picture} % \setlength{\unitlength}{1pt} % \caption{Layout of a ToC (LoF, LoT) entry} \label{fig:ltoc} % \end{figure} % % % \DescribeMacro{\@pnumwidth} % \DescribeMacro{\@tocrmarg} % \DescribeMacro{\@dotsep} % The general layout of a % typeset entry is illustrated in Figure~\ref{fig:ltoc}. There are three % internal \LaTeX{} 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 % \emph{math units}\footnote{There are 18mu to 1em.} 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. % % The standard values for these internal commands are: % \begin{itemize} % \item |\@pnumwidth| = 1.55em % \item |\@tocrmarg| = 2.55em % \item |\@dotsep| = 4.5 % \end{itemize} % 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 \Lpack{article} class and its derivatives). % % \DescribeMacro{\numberline} % Each |\l@kind| macro is responsible for setting the general % \textit{indent} from the lefthand margin, and the \textit{numwidth}. % The |\numberline{|\meta{number}|}| macro is responsible for typesetting % the number flushleft in a box of width % \textit{numwidth}. If the number is too long for the box then it will % protrude into the title text. The title text is indented by % (\textit{indent + numwidth}) from the lefthand margin. That is, the title % text is typeset in a block of width \\ % (|\linewidth| - \textit{indent} - \textit{numwidth} - |\@tocrmarg|). % % \begin{table} % \centering % \caption[Indents and Numwidths]{Indents and Numwidths (in ems)} \label{tab:indents} % \begin{tabular}{lcrrrr} \hline % Entry & Level & \multicolumn{2}{c}{Chaptered} & \multicolumn{2}{c}{Otherwise} \\ % & & indent & numwidth & indent & numwidth \\ \hline % part & -1 & 0 & --- & 0 & --- \\ % chapter & 0 & 0 & 1.5 & & \\ % section & 1 & 1.5 & 2.3 & 0 & 1.5 \\ % subsection & 2 & 3.8 & 3.2 & 1.5 & 2.3 \\ % subsubsection & 3 & 7.0 & 4.1 & 3.8 & 3.2 \\ % paragraph & 4 & 10.0 & 5.0 & 7.0 & 4.1 \\ % subparagraph & 5 & 12.0 & 6.0 & 10.0 & 5.0 \\ % figure/table & (1) & 1.5 & 2.3 & 1.5 & 2.3 \\ \hline % \end{tabular} % \end{table} % % Table~\ref{tab:indents} lists the standard values for the \textit{indent} % and \textit{numwidth}. There is no explicit \textit{numwidth} for a % part; instead a gap of 1em is put between the number and the title text. % Note that for a sectioning command the values % depend on whether or not the document class provides the |\chapter| % command. Also, which somewhat surprises me, the table and figure entries % are all indented. % % \DescribeMacro{\@dottedtocline} % Most of the |\l@kind| commands are defined in terms of the % |\@dottedtocline| command. This command takes three arguments: \\ % |\@dottedtocline{|\meta{seclevel}|}{|\meta{indent}|}{|\meta{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 % \Lpack{tocloft} package gives you handles to easily alter things without % having to know the \LaTeX{} internals). % % You can use the |\addcontentsline| command to add |\contentsline| % commands to a file. % % \DescribeMacro{\addtocontents} % \LaTeX{} also provides the |\addtocontents{|\meta{file}|}{|\meta{text}|}| % command that will insert \meta{text} into \meta{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 \meta{file} processing, such as |\listoftables| % for a \file{.lot} file). % % As |\addcontentsline| and |\addtocontents| write their arguments to a % file, any fragile commands used in their arguments must be |\protect|ed. % % You can make certain adjustments to the ToC etc., layout without % using any package. Some examples are: % \begin{itemize} % \item If your page numbers stick out into the righthand margin % \begin{verbatim} % \renewcommand{\@pnumwidth}{3em} \renewcommand{\@tocrmarg}{4em} % \end{verbatim} % but using lengths appropriate to your document. % % \item To have the (sectional) titles in the ToC, etc., typeset ragged right with no % hyphenation % \begin{verbatim} % \renewcommand{\@tocrmarg}{2.55em plus1fil} % \end{verbatim} % where the value |2.55em| can be changed for whatever margin space you want. % % \item The dots in the leaders can be eliminated by increasing |\@dotsep| % to a large value: % \begin{verbatim} % \renewcommand{\@dotsep}{10000} % \end{verbatim} % % \item To have dotted leaders in your ToC and LoF but not in your LoT: % \begin{verbatim} % ... % \tableofcontents % \makeatletter \renewcommand{\@dotsep}{10000} \makeatother % \listoftables % \makeatletter \renewcommand{\@dotsep}{4.5} \makeatother % \listoffigures % ... % \end{verbatim} % 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. % % \item To add a horizontal line across the whole width of the ToC below % an entry for a Part: % \begin{verbatim} % \part{Part title} % \addtocontents{toc}{\protect\mbox{}\protect\hrulefill\par} % \end{verbatim} % Note that as both |\addtocontents| and |\addcontentsline| write their % arguments to a file, it means that any \emph{fragile} commands in % their arguments must be protected % by preceding each fragile command with |\protect|. % The result of the example above % would be the following two lines in the \file{.toc} file (assuming that it % is the second Part and is on page 34): % \begin{verbatim} % \contentsline {part}{II\hspace {1em}Part title}{34} % \mbox {}\hrulefill \par % \end{verbatim} % If the |\protect|s were not used, then the second line would instead be: % \begin{small} % \begin{verbatim} % \unhbox \voidb@x \hbox {}\unhbox \voidb@x \leaders \hrule \hfill \kern \z@ \par % \end{verbatim} % \end{small} % % \item You may get undesired page breaks in the ToC. For example you % may have a long multiline section title and in the ToC there is a page % break between the lines. After your document is stable you can use % |\addtocontents| at appropriate places in the body of the document % to adjust the page breaking in the ToC. As examples: % \begin{itemize} % \item |\addtocontents{toc}{\protect\newpage}| to force a page break. % \item |\addtocontents{toc}{\protect\enlargethispage{2\baselineskip}}| to % make the page longer. % \item |\addtocontents{toc}{\protect\needspace{2\baselineskip}}| to specify % that if there is not a vertical space of two baselines left on % the page then start a new page (the |\needspace| macro is defined % in the \Lpack{needspace} package). % \end{itemize} % % \end{itemize} % Remember, if you are modifying any command that includes an |@| sign then this % must be done in either a \file{.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: % \begin{verbatim} % \makeatletter % \renewcommand{\@dotsep}{9.0} % \makeatother % \end{verbatim} % % % \section{The \Lpack{tocloft} package} \label{sec:usc} % % The \Lpack{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). % % \DescribeMacro{\tableofcontents} % \DescribeMacro{\listoffigures} % \DescribeMacro{\listoftables} % The ToC, LoF, and LoT are printed at the point in the document where % these commands are called, as per normal \LaTeX. However, there is % one difference between the standard \LaTeX{} behaviour and the behaviour % with the \Lpack{tocloft} package. In the standard \LaTeX{} classes % that have |\chapter| headings, the ToC, LoF and LoT each appear on % a new page. With the \Lpack{tocloft} package they do not necessarily % start new pages; if you want them to be on new pages you may have to % specifically issue an appropriate command beforehand. For example: % \begin{verbatim} % ... % \clearpage % \tableofcontents % \clearpage % \listoftables % ... % \end{verbatim} % % \DescribeMacro{\tocloftpagestyle} % The |\thispagestyle| page style of the ToC, LoF and/or LoT is set % by the command % |\tocloftpagestyle{|\meta{style}|}|, where \meta{style} is one of % the available page styles. The package initially % sets |\tocloftpagestyle{plain}|. % % \subsection{Package options} % % The package takes the following options: % \begin{itemize} % \item[\Lopt{subfigure}] This option is required if, and only if, % the \Lpack{tocloft} and % \Lpack{subfigure} packages are being used together. The two packages % can be specified in any order. % % \item[\Lopt{titles}] % The \Lopt{titles} option causes % the titles of the ToC, LoF, and LoT lists to be typeset using the % default \LaTeX{} methods. This can be useful, for example, when the % \Lpack{tocloft} and \Lpack{fncychap} packages are used together and % the `fancy' chapter styles should be used for the ToC, etc., titles. % % \end{itemize} % % If you use the \Lopt{titles} option you can ignore the next % section and continue reading at section~\ref{sec:entries}. % % \subsection{Changing the titles} \label{sec:titles} % % Commands are provided for controlling the appearance of the % titles. Following \LaTeX{} 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 |Z| to stand for `toc' or `lof' or `lot'. For % example, |\cftmarkZ| stands for |\cftmarktoc| or |\cftmarklof| or % |\cftmarklot|. % % \DescribeMacro{\cftmarkZ} % These macros set the appearance of the running heads on the ToC, LoF, and % LoT pages. You probably don't need to change these. % % \DescribeMacro{\cftbeforeZtitleskip} % \DescribeMacro{\cftafterZtitleskip} % These lengths control the vertical spacing before and after the titles. % You can change them from their default values by using |\setlength|. % % \DescribeMacro{\cftZtitlefont} % \DescribeMacro{\cftafterZtitle} % The code used for typesetting the ToC title looks like % \begin{verbatim} % {\cfttoctitlefont \contentsname}{\cftaftertoctitle}\par % \end{verbatim} % By default, |\cftZtitlefont| is defined as a font specification % (e.g., |\Large\bfseries|), and |\cftafterZtitle| is empty. % These commands can be changed (via |\renewcommand|) to change % the typesetting. As examples: % \begin{itemize} % \item |\renewcommand{\cftZtitlefont}{\hfill\Large\itshape}| will % result in a Large italic title typeset flushright. % \item |\renewcommand{\cftZtitlefont}{\hfill\Large\bfseries}| together % with |\renewcommand{\cftafterZtitle}{\hfill}| will give % a centered Large bold title. % \item Doing % \begin{verbatim} % \renewcommand{\cftafterZtitle}{% % \\[\baselineskip]\mbox{}\hfill{\normalfont Page}} % \end{verbatim} % will put the word `Page' flushright on the line following the title. % (If you do this, then you may need to decrease % |\cftafterZtitleskip|). % \item |\renewcommand{\cftafterZtitle}{\thispagestyle{empty}}| will % make the page with the title empty (i.e., the page % number will not be printed). % \end{itemize} % % % \subsection{Typesetting the entries} \label{sec: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 \Lpack{layouts} % package or in~\cite[page 34]{GOOSSENS94}, and are repeated in % Figure~\ref{fig:ltoc}. % % \DescribeMacro{\Zdepth} % The command |\Zdepth{|\meta{number}|}| is analogous to the standard % |\tocdepth{|\meta{number}|}| command, in that it specifies that entries % in the new listing should not be typeset if their numbering level % is greater % than \meta{number}. The default definition is % |\setcounter{Zdepth}{1}|. % These commands are needed, for instance by users of packages such as |subcaption|, % which will generate subfigure and subtable captions corresponding to a |lofdepth| and % |lotdepth| of |2|. % % \DescribeMacro{\cftdot} % In the default ToC typesetting only the more minor entries have dotted % leader lines between the sectioning title and the page number. The % \Lpack{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 % \begin{verbatim} % \renewcommand{\cftdot}{\ensuremath{\ast}} % \end{verbatim} % will result in a dotted leader using asterisks as the symbol. % % \DescribeMacro{\cftdotsep} % \DescribeMacro{\cftnodots} % Each kind of entry can control the separation between the dots % in its leader (see below). For consistency though, all dotted leaders % should use the same spacing. The macro |\cftdotsep| specifies the % default spacing. Its value is a number. % However, if the separation is too large % then no dots will be actually typeset. The macro |\cftnodots| is % a separation value that is `too large'. % % \DescribeMacro{\cftsetpnumwidth} % \DescribeMacro{\cftsetrmarg} % The page numbers are typeset in a fixed width box. The command % |\cftsetpnumwidth{|\meta{length}|}| can be used to change the width % of the box (\LaTeX 's internal |\@pnumwidth|). % The title texts will end before reaching the righthand margin. % |\cftsetrmarg{|\meta{length}|}| can be used to set this distance % (\LaTeX '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. % % \DescribeMacro{\cftpnumalign} % The page numbers are typeset in a box as described above. % By default they are right-aligned which is suitable when the page numbers are aligned vertically on the page so their digits line up. % For a design with fixed width between a ToC entry and its page number, say, a left alignment may be more suitable. % This can be controlled by setting the \cs{cftpnumalign} macro to \verb|l|, \verb|c|, or \verb|r| (just like \cs{makebox}): % \begin{verbatim} % \renewcommand{\cftpnumalign}{l} % \end{verbatim} % % \DescribeMacro{\cftparskip} % Normally the |\parskip| in the ToC, etc., is zero. This may be changed % by changing the |\cftparskip| length. Note that the current value % of |\cftparskip| is used for the ToC, LoF and LoT, but you can change % the value before calling |\tableofcontents| or |\listoffigures| or % |\listoftables| if one or other of these should have different values % (which is not a good idea). % % % In the following I will use |X| to stand for the following: % \begin{itemize} % \item |part| for |\part| titles % \item |chap| for |\chapter| titles % \item |sec| for |\section| titles % \item |subsec| for |\subsection| titles % \item |subsubsec| for |\subsubsection| titles % \item |para| for |\paragraph| titles % \item |subpara| for |\subparagraph| titles % \item |fig| for figure |\caption| titles % \item |subfig| for subfigure |\caption| titles % \item |tab| for table |\caption| titles % \item |subtab| for subtable |\caption| titles % \end{itemize} % % \DescribeMacro{\cftbeforeXskip} % This controls the vertical space before an entry. It can be changed % by using |\setlength|. % % \DescribeMacro{\cftXindent} % This controls the indentation of an entry from the left margin % (\textit{indent} in Figure~\ref{fig:ltoc}). It % can be changed using |\setlength|. % % \DescribeMacro{\cftXnumwidth} % This controls the space allowed for typesetting title numbers % (\textit{numwidth} in Figure~\ref{fig:ltoc}). 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 pseudo-code version for the typesetting of numbered % and unnumbered entries. % \begin{verbatim} % {\cftXfont {\cftXpresnum SNUM\cftXaftersnum\hfil} \cftXaftersnumb TITLE}% % {\cftXleader}{\cftXpagefont PAGE}\cftXafterpnum\par % % {\cftXfont TITLE}{\cftXleader}{\cftXpagefont PAGE}\cftXafterpnum\par % \end{verbatim} % where |SNUM| is the section number, |TITLE| is the title text and |PAGE| % is the page number. In the numbered entry the pseudo-code \\ % |{\cftXpresnum SNUM\cftaftersnum\hfil}| \\ % is typeset within a box of width |\cftXnumwidth|. % % \DescribeMacro{\cftXfont} % This controls the appearance of the title (and its preceding number, % if any). It may be changed using |\renewcommand|. % % \DescribeMacro{\cftXpresnum} % \DescribeMacro{\cftXaftersnum} % \DescribeMacro{\cftXaftersnumb} % \changes{v1.1}{2000/02/11}{Added description of \cs{cftXpresnum}} % Normally the section number is typeset within a box of width |\cftXnumwidth|. % Within the box the macro |\cftXpresnum| is first called, then the % number is typeset, and next the |\cftXaftersnum| % macro is called after the number is typeset. The last command % within the box is |\hfil| to make the box contents flushleft. % After the box is % typeset the |\cftXaftersnumb| macro is called before typesetting % the title text. All three of these can be changed by |\renewcommand|. % By default they are defined to do nothing. % % In the standard classes the ToC entry for a |\part| is just typeset as % the number and title, followed by the page number, with the % |\cftpartpresnum| % macro being called before typesetting the number and title. % Due to \LaTeX\ ideosyncracies, |\cftpartpresnum| may become doubled in the output % if a third-party package behaves differently to that of the default internal \LaTeX\ commands. % The |tocloft| package contains specific code to prevent this in the case of % the KomaScript classes and for the |titlesec| package; please contact the maintainer % to add further corrections if you discover other packages which also exhibit this mis-behaviour. % % When a standard class is used the |\cftpartaftersnum| and % |\cftpartaftersnumb| macros have no effect, but they may do something % if a non-standard class is used. % % % \DescribeMacro{\cftXleader} % \DescribeMacro{\cftXdotsep} % |\cftXleader| defines the leader between the title and the page number; % it can be changed by |\renewcommand|. % The spacing between any dots in the leader is controlled by |\cftXdotsep| % (|\@dotsep| in Figure~\ref{fig:ltoc}). % 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 \emph{math units} where there are 18mu to 1em. % % \DescribeMacro{\cftXpagefont} % This defines the font to be used for typesetting the page number. It % can be changed by |\renewcommand|. % % \DescribeMacro{\cftXafterpnum} % This macro is called after the page number has been typeset. Its default % is to do nothing. It can be changed by |\renewcommand|. % % \DescribeMacro{\cftsetindents} % The command % |\cftsetindents{|\meta{entry}|}{|\meta{indent}|}{|\meta{numwidth}|}| % sets the \meta{entry}'s \textit{indent} to the length \meta{indent} and its % \textit{numwidth} to the length \meta{numwidth}. The \meta{entry} argument % is the name of one of the standard entries (e.g., |subsection|) or the name of % entry that has been defined with the \Lpack{tocloft} package. % For example \\ % |\cftsetindents{figure}{0em}{1.5em}| \\ % will make figure entries left justified. % % % 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 % \begin{verbatim} % \newcommand{\cftXfont}{} % \newcommand{\cftXaftersnum}{} % \newcommand{\cftXaftersnumb}{} % \newcommand{\cftXleader}{\cftdotfill{\cftXdotsep}} % \newcommand{\cftXdotsep}{\cftdotsep} % \newcommand{\cftXpagefont}{} % \newcommand{\cftXafterpnum}{} % \end{verbatim} % (Note that the same font should be used for the title, leader and page % number to provide a coherent appearance). % % \begin{itemize} % \item To eliminate the dots in the leader: % \begin{verbatim} % \renewcommand{\cftXdotsep}{\cftnodots} % \end{verbatim} % % \item To put something (e.g., a name) before the title (number): % \begin{verbatim} % \renewcommand{\cftXpresnum}{SOMETHING } % \end{verbatim} % % \item To add a colon after the section number: % \begin{verbatim} % \renewcommand{\cftXaftersnum}{:} % \end{verbatim} % % \item To put something before the title number, add a colon after the % the title number, set everything in bold font, % and start the title text on the following line: % \begin{verbatim} % \renewcommand{\cftXfont}{\bfseries} % \renewcommand{\cftXleader}{\bfseries\cftdotfill{\cftXdotsep}} % \renewcommand{\cftXpagefont}{\bfseries} % \renewcommand{\cftXpresnum}{SOMETHING } % \renewcommand{\cftXaftersnum}{:} % \renewcommand{\cftXaftersnumb}{\\} % \end{verbatim} % % If you are adding text in the number box in addition to the number, % then you will probably have to increase the width of the box so that % multiline titles have a neat vertical alignment; changing box widths % usually implies that the indents will require modification as % well.\footnote{Lyndon Dudding (\texttt{lyndon.dudding@totalise.co.uk}) % discovered this.} % One possible method of adjusting the box width for the above example % is: % \begin{verbatim} % \newlength{\mylen} % a "scratch" length % \settowidth{\mylen}{\bfseries\cftXpresnum\cftXaftersnum} % extra space % \addtolength{\cftXnumwidth}{\mylen} % add the extra space % \end{verbatim} % % \item To set the section numbers flushright:\footnote{With thanks to % David Holz (\texttt{lbda@earthlink.net}) for requesting this.} % \begin{verbatim} % \setlength{\mylen}{0.5em} % need some extra space at end of number % \renewcommand{\cftXpresnum}{\hfill} % note the double `l' % \renewcommand{\cftXaftersnum}{\hspace*{\mylen}} % \addtolength{\cftXnumwidth}{\mylen} % \end{verbatim} % In the above, the added initial |\hfill| in the box overrides the % final |\hfil| in the box, thus shifting everything to the right hand % end of the box. The extra space is so that the number is not typeset % immediately at the left of the title text. % % \item To set the entry ragged left (but this only looks good for single % line titles): % \begin{verbatim} % \renewcommand{\cftXfont}{\hfill\bfseries} % \renewcommand{\cftXleader}{} % \end{verbatim} % % \item To set the page number immediately after the entry text instead of at % the righthand margin: % \begin{verbatim} % \renewcommand{\cftXleader}{} % \renewcommand{\cftXafterpnum}{\cftparfillskip} % \renewcommand{\cftpnumalign}{l} % \end{verbatim} % 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 % is part of the \Lpack{tocloft} package and is provided just so that % the above effect can be achieved. % In addition, this is a good example of when it would be suitable to change the alignment of the page number box. % % \item To remove the space inserted between table and figure caption entries between chapters: % \begin{verbatim} % \begingroup % \renewcommand*{\addvspace}[1]{} % \listoftables % \listoffigures % \endgroup % \end{verbatim} % \end{itemize} % % \DescribeMacro{\cftpagenumbersoff} % \DescribeMacro{\cftpagenumberson} % The command |\cftpagenumbersoff{|\meta{entry}|}| will % eliminate the page numbers for \meta{entry} in the listing, where % \meta{entry} is the name of one of the standard % kinds of entries (e.g., |subsection|, or |figure| --- including |subfigure| % if the \Lpack{subfigure} package is used --- etc.), or the name of a % new entry defined with the \Lpack{tocloft} package. % % The command |\cftpagenumberson{|\meta{entry}|}| reverses % the effect of a corresponding |\cftpagenumbersoff|. % % One question that appeared on the \file{comp.text.tex} newsgroup asked % how to get the titles of Appendices list in the ToC \emph{without} % page numbers. Here is a simple way of doing it, assuming the document % has chapters % \begin{verbatim} % ... % \appendix % \addtocontents{toc}{\cftpagenumbersoff{chapter}} % \chapter{First appendix} % \end{verbatim} % If there are other chaptered headings to go into the ToC after the % appendices, then it will be necessary to do a similar \\ % |\addtocontents{toc}{\cftpagenumberson{chapter}}| \\ % to restore the page numbering in the ToC. % % Similarly, if you are using the \Lpack{subfigure} package you may % want to eliminate the page numbers for the subfigure captions. This % can be accomplished by: \\ % |\cftpagenumbersoff{subfigure}| % % 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. % % \subsection{New list of\ldots} % % \DescribeMacro{\newlistof} % The command |\newlistof[|\meta{within}|]{|\meta{entry}|}{|\meta{ext}|}{|\meta{listofname}|}| % creates a new List of \ldots, and assorted commands to go along with it. % % The first required argument, \meta{entry} is used to define a new % counter called |entry|. The optional \meta{within} argument can % be used so that |entry| gets reset to one every time the counter called % |within| is changed. That is, the first two arguments are equivalent to % calling |\newcounter{|\meta{entry}|}[|\meta{within}|]|. % % The next argument, \meta{ext}, is the file extension for the new List of. % The last argument, \meta{listofname}, is the text for the heading of the % new List of. As an example: % \begin{verbatim} % \newcommand{\listanswername}{List of Answers} % \newlistof[chapter]{answer}{ans}{\listanswername} % \end{verbatim} % will create a new |answer| counter that will be reset at the start of each % |\chapter{...}|. Any answer titles will be written to the file % \file{jobname.ans} and |\listanswername| will be used as the list heading. % A command |\listofanswer| is created which can be used just like the % |\listoftables| or |tableofcontents| commands to generate a listing. % It is up to you to specify how the entries are put into the % new List of Answers. Here is a very simple example, remembering that an % |answer| counter has been created. % \begin{verbatim} % \newcommand{\answer}[1]{% % \refstepcounter{answer} % \par\noindent\textbf{Answer \theanswer. #1} % \addcontentsline{ans}{answer}{\protect\numberline{\theanswer}#1}\par} % \end{verbatim} % which, when used like: \\ % |\answer{Hard} The \ldots| will print as: % \par\noindent\textbf{Answer 1. Hard}\par The \ldots % % As mentioned above, the |\newlistof| command creates several new % commands, most of which you should now be familiar with. For convenience, % assume that |\newlistof{X}{Z}{...}| has been issued; so |X| is the name % of the new counter and corresponds to the |X| in section~\ref{sec:entries}, % and |Z| is the new file extension and corresponds to the |Z| in % section~\ref{sec:titles}. Then, among others, the following new commands % will be made available. % % The five commands, |\cftmarkZ|, % |\cftbeforeZtitleskip|, % |\cftafterZtitleskip|, % |\cftZtitlefont|, and % |\cftafterZtitle|, % are analogous to the commands of the same names % described in section~\ref{sec:titles}. % % \DescribeMacro{\listofX} % The command |\listofX| is similar to |\listoftables|, etc., % in that it typesets % the new listing at the point where it is called. % % \DescribeMacro{\Zdepth} % The command |\Zdepth{|\meta{number}|}| is analogous to the standard % |\tocdepth{|\meta{number}|}| command, in that it specifies that entries % in the new listing should not be typeset if their numbering level % is greater % than \meta{number}. The default definition is % |\setcounter{Zdepth}{1}|. % % \DescribeMacro{\newlistentry} % The command % |\newlistentry[|\meta{within}|]{|\meta{entry}|}{|\meta{ext}|}{|\meta{level-1}|}| creates % new commands for typesetting a new kind of entry in a listing. It is used % internally by the |\newlistof| command but may be used independently. % % The first required argument, \meta{entry} is used to define a new % counter called |entry|. The optional \meta{within} argument can % be used so that |entry| gets reset to one every time the counter called % |within| is changed. That is, the first two arguments are equivalent to % calling |\newcounter{|\meta{entry}|}[|\meta{within}|]|. % The second required argument, \meta{ext}, is the file extension for the % entry listing. % The last argument, \meta{level-1}, is a number specifying the numbering % level minus one, % of the entry in a listing. % For example, the command \\ % |\newlistof[chapter]{answer}{ans}{\listanswername}| \\ % will call the command: \\ % |\newlistentry[chapter]{answer}{ans}{0}| \\ % % % Calling |\newlistentry| creates several new commands. Assuming that % it is called as |\newlistentry[within]{X}{Z}{N}|, where |X| and |Z| are % similar to the % previous uses of them, and |N| is an integer number, then the following % commands are made available. % % The set of commands |\cftbeforeXskip|, % |\cftXfont|, % |\cftXpresnum|, % |\cftXaftersnum|, % |\cftXaftersnumb|, % |\cftXleader|, % |\cftXdotsep|, % |\cftXpagefont|, and % |\cftXafterpnum|, % are analogous to the commands of the same names % described in section~\ref{sec:entries}. Their default values are also % as described earlier. % % The default values of |\cftXindent| and |\cftXnumwidth| are set according % to the value of the \meta{level-1} argument (i.e., |N| in this example). % For |N=0| the settings correspond to those for % sections in non-chaptered documents, as listed in Table~\ref{tab:indents}. % For |N=4| the settings correspond % to subparagraphs in non-chaptered documents, and for intermediate values % correspond to the matching sectional division in chaptered documents. % For values of |N| less than zero or greater than four, % or for non-default values, use the % |\cftsetindents| command to set the values. % % % \DescribeMacro{\l@X} % |\l@X| is an internal command that typesets an entry in the list, and % is defined in terms of the above |\cft*X*| commands. It will not typeset % an entry if |\Zdepth| is |N| or less, where |Z| is the listing's file % extension. % % \DescribeMacro{\theX} % The command |\theX| prints the value of the |X| counter. It is initially % defined so that it prints arabic numerals. If the optional \meta{within} % argument is used, |\theX| is defined as \\ % |\renewcommand{\theX}{\thewithin.\arabic{X}}| otherwise as \\ % |\renewcommand{\theX}{\arabic{X}}|. % % % As an example of the independent use of |\newlistentry|, the following % will set up for sub-answers. % \begin{verbatim} % \newlistentry[answer]{subanswer}{1} % \cftsetindents{subanswer}{1.5em}{3.0em} % \renewcommand{\thesubanswer}{\theanswer.\alph{subanswer}} % \newcommand{\subanswer}[1]{% % \refstepcounter{subanswer} % \par\textbf{\thesubanswer) #1} % \addcontentsline{ans}{subanswer{\protect\numberline{\thesubanswer}#1}} % \setcounter{ansdepth}{2} % \end{verbatim} % And then: % \begin{verbatim} % \answer{Harder} The \ldots % \subanswer{Reformulate the problem} It assists \ldots % \end{verbatim} % will be typeset as: % \par\noindent\textbf{Answer 2. Harder}\par The \ldots % \par\textbf{2.a) Reformulate the problem} It assists \ldots % % By default the answer entries will appear in the List of Answers listing % (typeset by the |\listofanswer| command). % In order to get the subanswers to appear, % the |\setcounter{ansdepth}{2}| command was used above. % % To turn off page numbering for the subanswers, do \\ % |\cftpagenumbersoff{subanswer}| % % As another example of |\newlistentry|, suppose that an extra sectioning % division below |subparagraph| is required, called |subsubpara|. % The |\subsubpara| command itself can be defined via the LaTeX kernel % |\@startsection| command. % Also it is necessary to define a |\subsubparamark| macro, % a new |subsubpara| counter, a |\thesubsubpara| macro and a |\l@subsubpara| % macro. Using the \Lpack{tocloft} package's |\newlistentry| % takes care of most of these as shown below (remember % the caveats about commands with |@| signs in them). % \begin{verbatim} % \newcommand{\subsubpara}{\@startsection{subpara}% % {6}% level % {\parindent}% indent from left margin % {3.25ex \@plus1ex \@minus .2ex}% skip above heading % {-1em}% runin heading with 1em between title & text % {\normalfont\normalsize\itshape}% italic number and title % } % \newlistentry[subparagraph]{subsubpara}{toc}{5} % \cftsetindents{subsubpara}{14.0em}{7.0em} % \newcommand*{\subsubparamark}[1]{} % gobble heading mark % \end{verbatim} % % % Each List of\ldots uses a file to store the list entries, and these % files must remain open for writing throughout the document processing. % TeX has only a limited number of files that it can keep open, and this % puts a limit on the number of listings that can be used. For a document % that includes a ToC but no other extra ancillary files (e.g., no % index or bibliography output files) the maximum number of LoX's, including % a LoF and LoT, is no more than about eleven. If you try and create too many % new listings LaTeX will respond with the error message: % \begin{center} % |No room for a new write| % \end{center} % If you get such a message the only recourse is to redesign your document. % % The \Lpack{tocloft} package does not provide a simple means of specifying % new Lists of Floats or float environments. % For those, I recommend the \Lpack{ccaption} package~\cite{CCAPTION}. % % \subsection{Experimental utilities} % % The macros described in this section are even more experimental than % those described previously. % % \DescribeMacro{\cftchapterprecis} % Some old style novels, and even some modern text % books,\footnote{For example, Robert Sedgewick, \textit{Algorithms}, % Addison-Wesley, 1983.} 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{|\meta{text}|}| prints its argument % both at the % point in the document where it is called, and also adds it to the \file{.toc} % file. For example: % \begin{verbatim} % ... % \chapter{} % first chapter % \cftchapterprecis{Our hero is introduced; family tree; early days.} % ... % \end{verbatim} % % \DescribeMacro{\cftchapterprecishere} % \DescribeMacro{\cftchapterprecistoc} % The |\cftchapterprecis| command calls these two commands to print the % text in the document (the |\...here{|\meta{text}|}| command) % and to put it into the ToC (the |\...toc{|\meta{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. % % \DescribeMacro{\cftlocalchange} % The command |\cftlocalchange{|\meta{file}|}{|\meta{pnumwidth}|}{|\meta{tocrmarg}|}| % will write an entry into \meta{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. % % \DescribeMacro{\cftaddtitleline} % The command |\cftaddtitleline{|\meta{file}|}{|\meta{kind}|}{|\meta{title}|}{|\meta{page}|}| % will write a |\contentsline| entry into \meta{file} for a \meta{kind} % entry with title \meta{title} and page number \meta{page}. That is, % an entry is made of the form: \\ % |\contentsline{kind}{title}{page}| \\ % Any fragile commands used in the arguments must be protected. % % \DescribeMacro{\cftaddnumtitleline} % The command |\cftaddnumtitleline{|\meta{file}|}{|\meta{kind}|}{|\meta{num}|}{|\meta{title}|}{|\meta{page}|}| % is similar except that it also includes \meta{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 \LaTeX{} values for % |\@pnumwidth| and |\@tocrmarg| are 1.55em and 2.55em respectively, % one might do the % following for a figure on the frontispiece page. % \begin{verbatim} % ... % % 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 % ... % \end{verbatim} % Recall that a |\caption| command will put an entry in the \file{.lof} % file, which is not wanted here. If a caption is required, then you can % either craft one yourself or, assuming that your general captions are not % too exotic, use the |\legend| command from the % \Lpack{ccaption} package. If the illustration is numbered, use the % |\cftaddnumtitleline| command instead of |\cftaddtitleline|. % % \DescribeMacro{\cftZprehook} % \DescribeMacro{\cftZposthook} % It's surprisingly difficult to achieve multicolumn ToCs; can you guess what the problem is to write the following? % \begin{verbatim} % \begin{multicols}{2} % \tableofcontents % \end{multicols} % \end{verbatim} % Probably the easiest way to do it in regular \LaTeX{} is something like % \begin{verbatim} % \RequirePackage{multicol} % \AtBeginDocument{\addtocontents{toc}{\protect\begin{multicols}{2}}} % \AtEndDocument {\addtocontents{toc}{\protect\end {multicols}}} % \end{verbatim} % This method of writing to the |.toc| file is most flexible for trying to control the typesetting output within the table of contents. % % To make this \emph{slightly} easier with \Lpack{tocloft}, the following macros are available: \cs{cftZprehook} and \cs{cftZprehook}, where |Z| is |toc|, |lof|, |lot|, etc. % If these are defined, they insert material just before the actual typesetting of the entries of the table of contents and so on. % A multicolumn ToC can therefore be achieved with this: % \begin{verbatim} % \RequirePackage{multicol} % \renewcommand\cfttocprehook{\begin{multicols}{2}} % \renewcommand\cfttocposthook{\end{multicols}} % \end{verbatim} % % \subsection{Usage with other packages} % % The \Lpack{tocloft} and \Lpack{tocbibind} packages can be used together % in the same document. The \Lpack{tocbibind} package provides easy means % of adding document elements like the bibliography or the index to the % Table of Contents. However there is one known potential problem: % \begin{itemize} % \item 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 \Lpack{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 yourself. % \end{itemize} % % \DescribeMacro{\@cftbsnum} % \DescribeMacro{\@cftasnum} % \DescribeMacro{\@cftasnumb} % Some packages, like the \Lpack{float} package by Anselm Lingnau, % enable the creation of other kinds of \textit{List of \ldots}. % The \Lpack{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 \Lpack{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 |\@cftbsnum|, |\@cftasnum| and |\@cftasnumb| commands. % These are equivalent to the |\cftXpresnum|, |\cftXaftersnum| and |\cftXaftersnumb| % commands described earlier. By default they are defined to do nothing, but % may be renewed to do something. % % The \Lpack{tocloft} and \Lpack{minitoc} packages have an unfortunate % interaction,\footnote{Discovered by Lyndon Dudding % (\texttt{lyndon.dudding@totalise.co.uk}).} which fortunately can be fixed. % In the normal course of events, when \Lpack{minitoc} is used in a chaptered % document it will typeset section % entries in the minitocs in bold font. If \Lpack{tocloft} is used in % conjunction with \Lpack{minitoc}, then the minitoc section entries are % typeset in the normal font, except for the page numbers which are in % bold font, while the ToC section entries are all in normal font. % % One cure, if you want the minitoc section entries to be all in normal % font is to put: % \begin{verbatim} % \renewcommand{\mtcSfont}{\small\normalfont} % \end{verbatim} % in the preamble. % % Otherwise, the cure is the following incantation: % \begin{verbatim} % \renewcommand{\cftsecfont}{\bfseries} % \renewcommand{\cftsecleader}{\bfseries\cftdotfill{\cftdotsep}} % \renewcommand{\cftsecpagefont}{\bfseries} % \end{verbatim} % To have the section entries in both the ToC and the minitocs in bold then % put the incantation in the preamble. To have only the minitoc section % entries in bold while the ToC entries are in the normal font, % put the incantation between the |\tableofcontents| % command and the first |\chapter| command. % % % In general, use with other packages that redefine any of the macros that % \Lpack{tocloft} also modifies is likely to be problematic. % % \section{The package code} \label{sec:code} % % \begin{macrocode} %<*usc> % \end{macrocode} % % In order to try and avoid name clashes with other packages, each internal % name will include the character string \texttt{@cft}. % % \begin{macro}{\@cftifundefined} % \changes{v2.3h}{2017/08/29}{Use internal ifundefined macro to fix conflict with fancyhdr} % Due to a conflict with how this package and fancyhdr checked for undefinedness. % \begin{macrocode} \newcommand\@cftifundefined[1]{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname #1\endcsname\relax \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\@cftquit} % \begin{macro}{\if@cfthaschapter} % We will be using either chapter or section type headings for the ToC, etc., % so we need to know which of these the document class supports. % \changes{v2.0}{2001/03/03}{Revamped chapter checking so the stdclsdv package no longer required} % \begin{macrocode} \newcommand{\@cftquit}{} \newif\if@cfthaschapter % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\if@cftkoma} % The \Lpack{koma} classes have different defaults than the standard classes, % so we need to know if a \Lpack{koma} class has been loaded. % \changes{v2.3}{2002/06/15}{Added check for a koma class} % \begin{macrocode} \newif\if@cftkoma \@cftkomafalse \@ifclassloaded{scrartcl}{\@cftkomatrue}{} \@ifclassloaded{scrreprt}{\@cftkomatrue}{} \@ifclassloaded{scrbook}{\@cftkomatrue}{} % \end{macrocode} % \end{macro} % % \begin{macro}{\if@cfttitlesec} % \changes{v2.3f}{2013/04/30}{Added check for titlesec package} % \begin{macrocode} \newif\if@cfttitlesec \AtBeginDocument{\@ifpackageloaded{titlesec}{\@cfttitlesectrue}{}} % \end{macrocode} % \end{macro} % % Issue a warning if there are no recognised sectional divisions % and then skip the rest of the package code. % \begin{macrocode} \@cftifundefined{chapter}{% \@cfthaschapterfalse \@cftifundefined{section}{% \PackageWarning{tocloft}% {I don't recognize any sectional divisions so I'll do nothing} \renewcommand{\@cftquit}{\endinput} }{\PackageInfo{tocloft}{The document has section divisions}} }{\@cfthaschaptertrue \PackageInfo{tocloft}{The document has chapter divisions}} % \end{macrocode} % Perhaps quit now. % \begin{macrocode} \@cftquit % \end{macrocode} % % Use chapter style if |\if@cfthaschapter| is TRUE, otherwise section style. % % \begin{macro}{\if@cfttocbibind} % A flag that is set TRUE iff the \Lpack{tocbibind} package has been loaded. % The 1998/11/15 version of \Lpack{tocbibind} does not necessarily work well % with \Lpack{tocloft}. % \begin{macrocode} \newif\if@cfttocbibind \AtBeginDocument{% \@ifpackageloaded{tocbibind}{\@cfttocbibindtrue}{\@cfttocbibindfalse} \if@cfttocbibind \@ifpackagelater{tocbibind}{1998/11/16}{}{% \PackageWarning{tocloft}{% You are using a version of the tocbibind package\MessageBreak that is not compatible with tocloft.\MessageBreak The results may be surprising.\MessageBreak Consider installing the current version of tocbibind.}} \fi } % \end{macrocode} % \end{macro} % % \begin{macro}{\if@cftnctoc} % A boolean used to implement the \Lopt{titles} option. It is TRUE % if the ToC, LoT, LoF titles should use the default styles. % \begin{macrocode} \newif\if@cftnctoc\@cftnctocfalse \DeclareOption{titles}{\@cftnctoctrue} %% \ProcessOptions\relax % \end{macrocode} % \end{macro} % % \begin{macro}{\if@cftsubfigopt} % A boolean used to implement the \Lopt{subfigure} option. % \begin{macrocode} \newif\if@cftsubfigopt\@cftsubfigoptfalse \DeclareOption{subfigure}{\@cftsubfigopttrue} % \end{macrocode} % \end{macro} % % Process the options. % % \begin{macrocode} \ProcessOptions\relax % \end{macrocode} % % \begin{macro}{\tocloftpagestyle} % \begin{macro}{\@cftpagestyle} % A user-level macro to set the pagestyle for the first page of the ToC, etc. % The default is the |plain| pagestyle. % \changes{v2.3}{2002/06/15}{Added \cs{tocloftpagestyle}} % \begin{macrocode} \newcommand{\tocloftpagestyle}[1]{% \def\@cftpagestyle{\thispagestyle{#1}}} \tocloftpagestyle{plain} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\cftmarktoc} % \begin{macro}{\cftmarklof} % \begin{macro}{\cftmarklot} % These three macros set the style for running heads. They are initialised % to give the default appearance. % \changes{v2.3}{2002/06/15}{Marking commands are different for koma} % \begin{macrocode} \newcommand{\cftmarktoc}{% \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}} \newcommand{\cftmarklof}{% \@mkboth{\MakeUppercase\listfigurename}{\MakeUppercase\listfigurename}} \newcommand{\cftmarklot}{% \@mkboth{\MakeUppercase\listtablename}{\MakeUppercase\listtablename}} \if@cftkoma \renewcommand{\cftmarktoc}{% \@mkboth{\contentsname}{\contentsname}} \renewcommand{\cftmarklof}{% \@mkboth{\listfigurename}{\listfigurename}} \renewcommand{\cftmarklot}{% \@mkboth{\listtablename}{\listtablename}} \fi % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\@cfttocstart} % \begin{macro}{\@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 \file{classes.dtx} for the original code). % These macros are also provided by the \Lpack{ccaption} package. % \begin{macrocode} \providecommand{\@cfttocstart}{% \if@cfthaschapter \if@twocolumn \@restonecoltrue\onecolumn \else \@restonecolfalse \fi \fi} % \end{macrocode} % |\@cfttocfinish| resets, if required, twocolumn typesetting. % \begin{macrocode} \providecommand{\@cfttocfinish}{% \if@cfthaschapter \if@restonecol\twocolumn\fi \fi} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\phantomsection} % This is provided because the \Lopt{hyperref} package screws with % |\addcontentsline|. % \changes{v2.2}{2001/04/17}{Provided \cs{phantomsection}} % \changes{v2.2}{2001/04/17}{Added \cs{phantomsection} before \cs{addcontentsline} commands} % \begin{macrocode} \providecommand{\phantomsection}{} % \end{macrocode} % \end{macro} % % \begin{macro}{\@cftdobibtoc} % If the \Lpack{tocbibind} package has been used and it has % redefined |\tableofcontents| we need to cater for that. The contents % of the definition are defined in \Lpack{tocbibind}. % \begin{macrocode} \newcommand{\@cftdobibtoc}{% \if@dotoctoc \if@bibchapter \phantomsection \addcontentsline{toc}{chapter}{\contentsname} \else \phantomsection \addcontentsline{toc}{\@tocextra}{\contentsname} \fi \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftparskip} % The |\parskip| local to the ToC, etc., is set to the length |\cftparskip|. % \changes{v2.1}{2001/04/08}{Added \cs{cftparskip} for local parskip in ToC, etc.} % \begin{macrocode} \newlength{\cftparskip} \setlength{\cftparskip}{0pt} % \end{macrocode} % \end{macro} % % % \begin{macro}{\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 \Lopt{titles} option has been used, then the command is not modified. % % \begin{macrocode} \AtBeginDocument{% \if@cftnctoc % ensure \cftparskip is still set properly \let\OLD@starttoc\@starttoc \renewcommand{\@starttoc}[1]{% \begingroup \parskip=\cftparskip \OLD@starttoc{#1}% \endgroup } \else \renewcommand{\tableofcontents}{% \@cfttocstart % \end{macrocode} % Ensure that any previous paragraph has been finished. Within a group set % the local paragraphing style and typeset the title. % \begin{macrocode} \par \begingroup \parindent\z@ \parskip\cftparskip \@cftmaketoctitle % \end{macrocode} % If \Lpack{tocbibind} has been used, then add the ToC % name to the ToC. % \begin{macrocode} \if@cfttocbibind \@cftdobibtoc \fi % \end{macrocode} % Finally, read the \file{.toc} file and finish up. % \begin{macrocode} \@starttoc{toc}% \endgroup \@cfttocfinish} \fi } % \end{macrocode} % \end{macro} % % \begin{macro}{\@cftmaketoctitle} % This command typesets the title for the ToC. % \changes{v2.3}{2002/06/15}{Added \cs{@secpenalty} to \cs{@cftmaketoctitle}} % \changes{v2.3}{2002/06/15}{Added \cs{@cftpagestyle} to \cs{@cftmaketoctitle}} % \begin{macrocode} \newcommand{\@cftmaketoctitle}{% \addpenalty\@secpenalty \if@cfthaschapter \vspace*{\cftbeforetoctitleskip}% \else \vspace{\cftbeforetoctitleskip}% \fi \@cftpagestyle {\interlinepenalty\@M {\cfttoctitlefont\contentsname}{\cftaftertoctitle}% \cftmarktoc \par\nobreak \vskip \cftaftertoctitleskip \@afterheading}} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftbeforetoctitleskip} % \begin{macro}{\cftaftertoctitleskip} % These two lengths control the vertical spacing before and after the % ToC title. % \begin{macrocode} \newlength{\cftbeforetoctitleskip} \newlength{\cftaftertoctitleskip} % \end{macrocode} % 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*|. % \begin{macrocode} \if@cfthaschapter \setlength{\cftbeforetoctitleskip}{50pt} \setlength{\cftaftertoctitleskip}{40pt} \else \setlength{\cftbeforetoctitleskip}{3.5ex \@plus 1ex \@minus .2ex} \setlength{\cftaftertoctitleskip}{2.3ex \@plus.2ex} \fi % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\cfttoctitlefont} % \begin{macro}{\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). % \changes{v2.3}{2002/06/15}{koma changes the title fonts} % \begin{macrocode} \if@cfthaschapter \newcommand{\cfttoctitlefont}{\normalfont\Huge\bfseries} \if@cftkoma\renewcommand{\cfttoctitlefont}{\size@chapter\sectfont}\fi \else \newcommand{\cfttoctitlefont}{\normalfont\Large\bfseries} \if@cftkoma\renewcommand{\cfttoctitlefont}{\size@section\sectfont}\fi \fi \newcommand{\cftaftertoctitle}{} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\cftsetpnumwidth} % \begin{macro}{\cftsetrmarg} % Users commands for setting |\@pnumwidth| and |\@tocrmarg|. % \begin{macrocode} \newcommand{\cftsetpnumwidth}[1]{\renewcommand{\@pnumwidth}{#1}} \newcommand{\cftsetrmarg}[1]{\renewcommand{\@tocrmarg}{#1}} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\cftpnumalign} % \changes{v2.3f}{2013/05/02}{Add \cs{cftpnumalign} for page number alignment} % Alignment string (as input to \cs{makebox} for the page number box. % \begin{macrocode} \newcommand{\cftpnumalign}{r} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftdot} % \begin{macro}{\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{|\meta{sep}|}| % command provides a parameterised version of the leader code, where % \meta{sep} is the separation between the dots in mu units. % The symbol used for the `dots' in the leader is given by the value % of |\cftdot|. These macros are also provided by the \Lpack{ccaption} package. % \begin{macrocode} \providecommand{\cftdot}{.} \providecommand{\cftdotfill}[1]{% \def\@tempa{#1}% \def\@tempb{\cftnodots}% \ifx\@tempa\@tempb \hfill \else \leaders\hbox{$\m@th\mkern #1 mu\hbox{\cftdot}\mkern #1 mu$}\hfill \fi } % \end{macrocode} % \changes{v2.3f}{2013/04/30}{Specifically avoid placing dots when \cs{cftnodots} is used} % \end{macro} % \end{macro} % % \begin{macro}{\cftdotsep} % \begin{macro}{\cftnodots} % |\cftdotsep| holds the default dot separation, and is also provided % by the \Lpack{ccaption} package. % If the kerns in |\cftdotfill| are large enough, then no dots will % be printed. |\cftnodots| should be `large enough'. % (Actually, |\cftnodots| is now used as a flag for a conditional branch, so its numerical value isn't as important now.) % \begin{macrocode} \providecommand{\cftdotsep}{4.5} \newcommand{\cftnodots}{5000} % \end{macrocode} % \changes{v2.3f}{2013/04/30}{Reduce \cs{cftnodots} to avoid very large dotsep sizes.} % \end{macro} % \end{macro} % % Now for the trickier bits regarding the typesetting of the ToC % entries. % % A \file{.toc} (also \file{.lof} and \file{.lot}) file consists % of a list of % |\contentsline{|\meta{kind}|}{|\meta{title}|}{|\meta{page}|}| % commands, where \meta{kind} is the kind of heading (e.g., |part| or % |section| or |figure|), \meta{title} is the title text (including the number), % and \meta{page} is the page number. The entries are inserted into the % file by calling the % |\addcontentsline{|\meta{file}|}{|\meta{kind}|}{|\meta{title}|}| % command, where \meta{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{|\meta{file}|}{|\meta{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 \file{.toc} % etc., files. % % For the purposes at hand it is generally impossible to treat % the typesetting % of a title and its number separately, as both are bundled into the % \meta{title} argument within |\contentsline|. They could be handled % separately 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|. % % \begin{macro}{\cftparfillskip} % The |\l@kind| commands modify (locally) the value of |\parfillskip|. % |\cftparfillskip| is a copy of the default \textit{\TeX book} % |\parfillskip| definition. % \begin{macrocode} \newcommand{\cftparfillskip}{\parfillskip=0pt plus1fil} % \end{macrocode} % \end{macro} % % \begin{macro}{\numberline} % \changes{v1.1}{2000/02/11}{Added \cs{@cftbsnum} to \cs{numberline}} % The purpose of the |\numberline{|\meta{secnum}|}| command is to typeset % \meta{secnum} left justified in a box of width |\@tempdima|. I redefine % it to add three additional parameters, namely |\@cftbsnum|, % |\@cftasnum| and |\@cftasnumb| % (see \file{ltsect.dtx} for the original % definition). % \begin{macrocode} \renewcommand{\numberline}[1]{% \hb@xt@\@tempdima{\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb} % \end{macrocode} % \end{macro} % % \begin{macro}{\@cftbsnum} % \begin{macro}{\@cftasnum} % \begin{macro}{\@cftasnumb} % \changes{v0.2b}{1999/03/07}{Added empty definitions for @cftasnum and @cftasnumb commands} % \changes{v1.1}{2000/02/11}{Added empty definition of \cs{@cftbsnum}} % 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 \Lpack{float} package.\footnote{This bug % was discovered by Andrew Thurber when using the \Lpack{tocloft} and % \Lpack{algorithm} packages together.} % \begin{macrocode} \newcommand{\@cftbsnum}{} \newcommand{\@cftasnum}{} \newcommand{\@cftasnumb}{} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % % % \begin{macro}{\l@part} % \begin{macro}{\if@cftdopart} % \changes{v1.1}{2000/02/11}{Added \cs{@cftbsnum} and \cs{cftXpresnum} to % all \cs{\l@X} commands} % \changes{v1.1}{2000/02/11}{Added \cs{cftXpresnum} commands} % |\l@part{|\meta{title}|}{|\meta{page}|}| typesets the ToC entry for % a |part| heading. It is a parameterised copy of the default |\l@part| % (see \file{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. % \changes{v0.2a}{1999/01/24}{In article class, Part level is 0 not -1} % \changes{v2.0}{2001/03/03}{Checked directly for \cs{part} definition} % \changes{v2.3a}{2002/10/03}{Added \cs{cftpartpresnum} to \cs{l@part}} % % \begin{macrocode} \newif\if@cftdopart \newif\if@cfthaspart \@cftifundefined{part}{\@cfthaspartfalse}{\@cfthasparttrue} \if@cfthaspart \renewcommand*{\l@part}[2]{% \@cftdopartfalse \ifnum \c@tocdepth >-2\relax \if@cfthaschapter \@cftdoparttrue \fi \ifnum \c@tocdepth >\m@ne \if@cfthaschapter\else \@cftdoparttrue \fi \fi \fi \if@cftdopart \if@cfthaschapter \addpenalty{-\@highpenalty}% \else \addpenalty\@secpenalty \fi \addvspace{\cftbeforepartskip}% \begingroup {\leftskip \cftpartindent\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent \cftpartindent\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima \cftpartnumwidth\relax \let\@cftbsnum \cftpartpresnum \let\@cftasnum \cftpartaftersnum \let\@cftasnumb \cftpartaftersnumb \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip % \end{macrocode} % In default \LaTeX, the part ToC entry is written without \verb|\numberline| % and hence the `presnum' needs to be inserted manually. % In Koma-Script and titlesec (and probably others---let me know!), however, this is not the case. % \begin{macrocode} {\cftpartfont \if@cftkoma\else\if@cfttitlesec\else\cftpartpresnum\fi\fi #1}% \cftpartfillnum{#2}} \nobreak \if@cfthaschapter \global\@nobreaktrue \everypar{\global\@nobreakfalse\everypar{}}% \else \if@compatibility \global\@nobreaktrue \everypar{\global\@nobreakfalse\everypar{}}% \fi \fi \endgroup \fi} \fi % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\cftbeforepartskip} % \begin{macro}{\cftpartnumwidth} % \begin{macro}{\cftpartfont} % \begin{macro}{\cftpartpresnum} % \begin{macro}{\cftpartaftersnum} % \begin{macro}{\cftpartaftersnumb} % \begin{macro}{\cftpartleader} % \begin{macro}{\cftpartdotsep} % \begin{macro}{\cftpartpagefont} % \begin{macro}{\cftpartafterpnum} % \begin{macro}{\cftpartindent} % \begin{macro}{\cftpartfillnum} % These are the user commands to control the typesetting of Part entries. % They are initialised to give the standard appearance. % \changes{v2.3a}{2002/10/03}{Deleted \cs{cftpartaftersnum} and \cs{cftpartaftersnumb}} % \changes{v2.3b}{2003/01/20}{Reinstated \cs{cftpartaftersnum} and \cs{cftpartaftersnumb}} % \begin{macrocode} \if@cfthaspart \newlength{\cftbeforepartskip} \setlength{\cftbeforepartskip}{2.25em \@plus\p@} \newlength{\cftpartnumwidth} \setlength{\cftpartnumwidth}{0em} \newcommand{\cftpartfont}{\large\bfseries} \newcommand{\cftpartpresnum}{} \newcommand{\cftpartaftersnum}{} \newcommand{\cftpartaftersnumb}{} \newcommand{\cftpartleader}{\large\bfseries\cftdotfill{\cftpartdotsep}} \newcommand{\cftpartdotsep}{\cftnodots} \newcommand{\cftpartpagefont}{\large\bfseries} \newcommand{\cftpartafterpnum}{} \newlength{\cftpartindent} \setlength{\cftpartindent}{0em} \newcommand{\cftpartfillnum}[1]{% {\cftpartleader}% {\makebox[\@pnumwidth][\cftpnumalign]{\cftpartpagefont #1}\cftpartafterpnum\par}% } % \end{macrocode} % \Lpack{koma} classes use some different settings. % \changes{v2.3}{2002/06/15}{koma has different part settings} % \begin{macrocode} \if@cftkoma \setlength{\cftpartnumwidth}{2em} \renewcommand{\cftpartfont}{\sectfont\large} \renewcommand{\cftpartpagefont}{\sectfont\large} \fi \fi % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\l@chapter} % |\l@chapter{|\meta{title}|}{|\meta{page}|}| typesets the ToC entry for % a |chapter| heading. It is a parameterised copy of the default |\l@chapter| % (see \file{classes.dtx} for the original definition). This only applies % to chaptered documents. % \begin{macrocode} \if@cfthaschapter \renewcommand*{\l@chapter}[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip \cftbeforechapskip {\leftskip \cftchapindent\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent \cftchapindent\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima \cftchapnumwidth\relax \let\@cftbsnum \cftchappresnum \let\@cftasnum \cftchapaftersnum \let\@cftasnumb \cftchapaftersnumb \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip {\cftchapfont #1}\nobreak \cftchapfillnum{#2}}% \fi}% \fi % \end{macrocode} % \end{macro} % % \begin{macro}{\cftbeforechapskip} % \begin{macro}{\cftchapindent} % \begin{macro}{\cftchapnumwidth} % \begin{macro}{\cftchapfont} % \begin{macro}{\cftchappresnum} % \begin{macro}{\cftchapaftersnum} % \begin{macro}{\cftchapaftersnumb} % \begin{macro}{\cftchapleader} % \begin{macro}{\cftchapdotsep} % \begin{macro}{\cftchappagefont} % \begin{macro}{\cftchapafterpnum} % \begin{macro}{\cftchapfillnum} % These are the user commands to control the typesetting of Chapter entries. % They are initialised to give the standard appearance. % \begin{macrocode} \if@cfthaschapter \newlength{\cftbeforechapskip} \setlength{\cftbeforechapskip}{1.0em \@plus\p@} \newlength{\cftchapindent} \setlength{\cftchapindent}{0em} \newlength{\cftchapnumwidth} \setlength{\cftchapnumwidth}{1.5em} \newcommand{\cftchapfont}{\bfseries} \newcommand{\cftchappresnum}{} \newcommand{\cftchapaftersnum}{} \newcommand{\cftchapaftersnumb}{} \newcommand{\cftchapleader}{\bfseries\cftdotfill{\cftchapdotsep}} \newcommand{\cftchapdotsep}{\cftnodots} \newcommand{\cftchappagefont}{\bfseries} \newcommand{\cftchapafterpnum}{} \newcommand{\cftchapfillnum}[1]{% {\cftchapleader}\nobreak \makebox[\@pnumwidth][\cftpnumalign]{\cftchappagefont #1}\cftchapafterpnum\par } % \end{macrocode} % \Lpack{koma} classes have different chapter settings. % \changes{v2.3}{2002/06/15}{koma has different chapter settings} % \begin{macrocode} \if@cftkoma \renewcommand{\cftchapfont}{\sectfont} \fi \fi % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\l@section} % |\l@section{|\meta{title}|}{|\meta{page}|}| typesets the ToC entry for % a |section| heading. It is a parameterised copy of the default |\l@section| % (see \file{classes.dtx} for the original definition). % \begin{macrocode} \renewcommand*{\l@section}[2]{% \ifnum \c@tocdepth >\z@ \if@cfthaschapter \vskip \cftbeforesecskip \else \addpenalty\@secpenalty \addvspace{\cftbeforesecskip} \fi {\leftskip \cftsecindent\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent \cftsecindent\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima \cftsecnumwidth\relax \let\@cftbsnum \cftsecpresnum \let\@cftasnum \cftsecaftersnum \let\@cftasnumb \cftsecaftersnumb \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip {\cftsecfont #1}\nobreak \cftsecfillnum{#2}}% \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftbeforesecskip} % \begin{macro}{\cftsecindent} % \begin{macro}{\cftsecnumwidth} % \begin{macro}{\cftsecfont} % \begin{macro}{\cftsecpresnum} % \begin{macro}{\cftsecaftersnum} % \begin{macro}{\cftsecaftersnumb} % \begin{macro}{\cftsecleader} % \begin{macro}{\cftsecdotsep} % \begin{macro}{\cftsecpagefont} % \begin{macro}{\cftsecafterpnum} % \begin{macro}{\cftsecfillnum} % These are the user commands to control the typesetting of Section entries. % They are initialised to give the standard appearance. % \begin{macrocode} \newlength{\cftbeforesecskip} \newlength{\cftsecindent} \newlength{\cftsecnumwidth} \newcommand{\cftsecpresnum}{} \newcommand{\cftsecaftersnum}{} \newcommand{\cftsecaftersnumb}{} \if@cfthaschapter \setlength{\cftbeforesecskip}{\z@ \@plus.2\p@} \setlength{\cftsecindent}{1.5em} \setlength{\cftsecnumwidth}{2.3em} \newcommand{\cftsecfont}{\normalfont} \newcommand{\cftsecleader}{\normalfont\cftdotfill{\cftsecdotsep}} \newcommand{\cftsecdotsep}{\cftdotsep} \newcommand{\cftsecpagefont}{\normalfont} \else \setlength{\cftbeforesecskip}{1.0em \@plus\p@} \setlength{\cftsecindent}{0em} \setlength{\cftsecnumwidth}{1.5em} \newcommand{\cftsecfont}{\bfseries} \newcommand{\cftsecleader}{\bfseries\cftdotfill{\cftsecdotsep}} \newcommand{\cftsecdotsep}{\cftnodots} \newcommand{\cftsecpagefont}{\bfseries} \fi \newcommand{\cftsecafterpnum}{} \newcommand{\cftsecfillnum}[1]{% {\cftsecleader}\nobreak \makebox[\@pnumwidth][\cftpnumalign]{\cftsecpagefont #1}\cftsecafterpnum\par } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\l@subsection} % |\l@subsection{|\meta{title}|}{|\meta{page}|}| typesets the ToC entry for % a |subsection| heading. It is a parameterised copy of the default % |\l@subsection| % (see \file{classes.dtx} for the original definition). % \begin{macrocode} \renewcommand*{\l@subsection}[2]{% % \end{macrocode} % Only typeset the entry if it falls within the |tocdepth|. % \begin{macrocode} \ifnum \c@tocdepth >\@ne % \end{macrocode} % Add some vertical space. % \begin{macrocode} \vskip \cftbeforesubsecskip % \end{macrocode} % Start a group to keep paragraphing changes local. Set the |\leftskip| % to the entry's indentation. % \begin{macrocode} {\leftskip \cftsubsecindent\relax % \end{macrocode} % Set the |\rightskip| to |\@tocrmarg| to leave room for the page number. % \begin{macrocode} \rightskip \@tocrmarg % \end{macrocode} % Ensure that the last line of the entry will be filled. Setting % |\parfillskip| to a negative number prevents any overfull box messages. % \begin{macrocode} \parfillskip -\rightskip % \end{macrocode} % Set the paragraph indent to the entry's indentation. % \begin{macrocode} \parindent \cftsubsecindent\relax\@afterindenttrue % \end{macrocode} % Try and prevent breaks between lines in a multiple line entry. % \begin{macrocode} \interlinepenalty\@M % \end{macrocode} % Make sure that we have left vertical mode. % \begin{macrocode} \leavevmode % \end{macrocode} % Our version of |\numberline| expects that the width of the number box % is in |\@tempdima|, and that the three macros |\@cftbsnum|, % |\@cftasnum| and |\@cftasnumb| % are defined. We set all these to the values for this entry. % \begin{macrocode} \@tempdima \cftsubsecnumwidth\relax \let\@cftbsnum \cftsubsecpresnum \let\@cftasnum \cftsubsecaftersnum \let\@cftasnumb \cftsubsecaftersnumb % \end{macrocode} % Arrange that the (section number and) first line of the title is set % at the current indent, and any further lines are further indented. % \begin{macrocode} \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip % \end{macrocode} % Print the (number and) title, prohibiting any breaking. % \begin{macrocode} {\cftsubsecfont #1}\nobreak % \end{macrocode} % Print the leader and the page number, and close the group. % \begin{macrocode} \cftsubsecfillnum{#2}}% \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftbeforesubsecskip} % \begin{macro}{\cftsubsecindent} % \begin{macro}{\cftsubsecnumwidth} % \begin{macro}{\cftsubsecfont} % \begin{macro}{\cftsubsecpresnum} % \begin{macro}{\cftsubsecaftersnum} % \begin{macro}{\cftsubsecaftersnumb} % \begin{macro}{\cftsubsecleader} % \begin{macro}{\cftsubsecdotsep} % \begin{macro}{\cftsubsecpagefont} % \begin{macro}{\cftsubsecafterpnum} % These are the user commands to control the typesetting of Sub-section entries. % They are initialised to give the standard appearance. % \begin{macrocode} \newlength{\cftbeforesubsecskip} \setlength{\cftbeforesubsecskip}{\z@ \@plus.2\p@} \newlength{\cftsubsecindent} \newlength{\cftsubsecnumwidth} \if@cfthaschapter \setlength{\cftsubsecindent}{3.8em} \setlength{\cftsubsecnumwidth}{3.2em} \else \setlength{\cftsubsecindent}{1.5em} \setlength{\cftsubsecnumwidth}{2.3em} \fi \newcommand{\cftsubsecfont}{\normalfont} \newcommand{\cftsubsecpresnum}{} \newcommand{\cftsubsecaftersnum}{} \newcommand{\cftsubsecaftersnumb}{} \newcommand{\cftsubsecleader}{\normalfont\cftdotfill{\cftsubsecdotsep}} \newcommand{\cftsubsecdotsep}{\cftdotsep} \newcommand{\cftsubsecpagefont}{\normalfont} \newcommand{\cftsubsecafterpnum}{} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\cftsubsecfillnum} % |\cftsubsecfillnum{|\meta{page}|}| typesets the leader and the \meta{page} % number of a |subsection| entry. % First print the leader and then, with no break, set the page number % flushright in a box of width |\@pnumwidth|, % not forgetting to finish the paragraph. % \begin{macrocode} \newcommand{\cftsubsecfillnum}[1]{% {\cftsubsecleader}\nobreak \makebox[\@pnumwidth][\cftpnumalign]{\cftsubsecpagefont #1}\cftsubsecafterpnum\par } % \end{macrocode} % \end{macro} % % \begin{macro}{\l@subsubsection} % |\l@subsubsection{|\meta{title}|}{|\meta{page}|}| typesets the ToC entry for % a |subsubsection| heading. It is a parameterised copy of the default % |\l@subsubsection| % (see \file{classes.dtx} for the original definition). % \begin{macrocode} \renewcommand*{\l@subsubsection}[2]{% \ifnum \c@tocdepth >\tw@ \vskip \cftbeforesubsubsecskip {\leftskip \cftsubsubsecindent\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent \cftsubsubsecindent\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima \cftsubsubsecnumwidth\relax \let\@cftbsnum \cftsubsubsecpresnum \let\@cftasnum \cftsubsubsecaftersnum \let\@cftasnumb \cftsubsubsecaftersnumb \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip {\cftsubsubsecfont #1}\nobreak \cftsubsubsecfillnum{#2}}% \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftbeforesubsubsecskip} % \begin{macro}{\cftsubsubsecindent} % \begin{macro}{\cftsubsubsecnumwidth} % \begin{macro}{\cftsubsubsecfont} % \begin{macro}{\cftsubsubsecpresnum} % \begin{macro}{\cftsubsubsecaftersnum} % \begin{macro}{\cftsubsubsecaftersnumb} % \begin{macro}{\cftsubsubsecleader} % \begin{macro}{\cftsubsubsecdotsep} % \begin{macro}{\cftsubsubsecpagefont} % \begin{macro}{\cftsubsubsecafterpnum} % \begin{macro}{\cftsubsubsecfillnum} % These are the user commands to control the typesetting of Sub-sub-section entries. % They are initialised to give the standard appearance. % \begin{macrocode} \newlength{\cftbeforesubsubsecskip} \setlength{\cftbeforesubsubsecskip}{\z@ \@plus.2\p@} \newlength{\cftsubsubsecindent} \newlength{\cftsubsubsecnumwidth} \if@cfthaschapter \setlength{\cftsubsubsecindent}{7.0em} \setlength{\cftsubsubsecnumwidth}{4.1em} \else \setlength{\cftsubsubsecindent}{3.8em} \setlength{\cftsubsubsecnumwidth}{3.2em} \fi \newcommand{\cftsubsubsecfont}{\normalfont} \newcommand{\cftsubsubsecpresnum}{} \newcommand{\cftsubsubsecaftersnum}{} \newcommand{\cftsubsubsecaftersnumb}{} \newcommand{\cftsubsubsecleader}{\normalfont\cftdotfill{\cftsubsubsecdotsep}} \newcommand{\cftsubsubsecdotsep}{\cftdotsep} \newcommand{\cftsubsubsecpagefont}{\normalfont} \newcommand{\cftsubsubsecafterpnum}{} \newcommand{\cftsubsubsecfillnum}[1]{% {\cftsubsubsecleader}\nobreak \makebox[\@pnumwidth][\cftpnumalign]{\cftsubsubsecpagefont #1}\cftsubsubsecafterpnum\par } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\l@paragraph} % |\l@paragraph{|\meta{title}|}{|\meta{page}|}| typesets the ToC entry for % a |paragraph| heading. It is a parameterised copy of the default % |\l@paragraph| % (see \file{classes.dtx} for the original definition). % \begin{macrocode} \renewcommand*{\l@paragraph}[2]{% \ifnum \c@tocdepth >3\relax \vskip \cftbeforeparaskip {\leftskip \cftparaindent\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent \cftparaindent\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima \cftparanumwidth\relax \let\@cftbsnum \cftparapresnum \let\@cftasnum \cftparaaftersnum \let\@cftasnumb \cftparaaftersnumb \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip {\cftparafont #1}\nobreak \cftparafillnum{#2}}% \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftbeforeparaskip} % \begin{macro}{\cftparaindent} % \begin{macro}{\cftparanumwidth} % \begin{macro}{\cftparafont} % \begin{macro}{\cftparapresnum} % \begin{macro}{\cftparaaftersnum} % \begin{macro}{\cftparaaftersnumb} % \begin{macro}{\cftparaleader} % \begin{macro}{\cftparadotsep} % \begin{macro}{\cftparapagefont} % \begin{macro}{\cftparaafterpnum} % \begin{macro}{\cftparafillnum} % These are the user commands to control the typesetting of Paragraph entries. % They are initialised to give the standard appearance. % \begin{macrocode} \newlength{\cftbeforeparaskip} \setlength{\cftbeforeparaskip}{\z@ \@plus.2\p@} \newlength{\cftparaindent} \newlength{\cftparanumwidth} \if@cfthaschapter \setlength{\cftparaindent}{10em} \setlength{\cftparanumwidth}{5em} \else \setlength{\cftparaindent}{7.0em} \setlength{\cftparanumwidth}{4.1em} \fi \newcommand{\cftparafont}{\normalfont} \newcommand{\cftparapresnum}{} \newcommand{\cftparaaftersnum}{} \newcommand{\cftparaaftersnumb}{} \newcommand{\cftparaleader}{\normalfont\cftdotfill{\cftparadotsep}} \newcommand{\cftparadotsep}{\cftdotsep} \newcommand{\cftparapagefont}{\normalfont} \newcommand{\cftparaafterpnum}{} \newcommand{\cftparafillnum}[1]{% {\cftparaleader}\nobreak \makebox[\@pnumwidth][\cftpnumalign]{\cftparapagefont #1}\cftparaafterpnum\par } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\l@subparagraph} % |\l@subparagraph{|\meta{title}|}{|\meta{page}|}| typesets the ToC entry for % a |subparagraph| heading. It is a parameterised copy of the default % |\l@subparagraph| % (see \file{classes.dtx} for the original definition). % \begin{macrocode} \renewcommand*{\l@subparagraph}[2]{% \ifnum \c@tocdepth >4\relax \vskip \cftbeforesubparaskip {\leftskip \cftsubparaindent\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent \cftsubparaindent\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima \cftsubparanumwidth\relax \let\@cftbsnum \cftsubparapresnum \let\@cftasnum \cftsubparaaftersnum \let\@cftasnumb \cftsubparaaftersnumb \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip {\cftsubparafont #1}\nobreak \cftsubparafillnum{#2}}% \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftbeforesubparaskip} % \begin{macro}{\cftsubparaindent} % \begin{macro}{\cftsubparanumwidth} % \begin{macro}{\cftsubparafont} % \begin{macro}{\cftsubparapresnum} % \begin{macro}{\cftsubparaaftersnum} % \begin{macro}{\cftsubparaaftersnumb} % \begin{macro}{\cftsubparaleader} % \begin{macro}{\cftsubparadotsep} % \begin{macro}{\cftsubparapagefont} % \begin{macro}{\cftsubparaafterpnum} % \begin{macro}{\cftsubparafillnum} % These are the user commands to control the typesetting of Sub-paragraph entries. % They are initialised to give the standard appearance. % \begin{macrocode} \newlength{\cftbeforesubparaskip} \setlength{\cftbeforesubparaskip}{\z@ \@plus.2\p@} \newlength{\cftsubparaindent} \newlength{\cftsubparanumwidth} \if@cfthaschapter \setlength{\cftsubparaindent}{12em} \setlength{\cftsubparanumwidth}{6em} \else \setlength{\cftsubparaindent}{10em} \setlength{\cftsubparanumwidth}{5em} \fi \newcommand{\cftsubparafont}{\normalfont} \newcommand{\cftsubparapresnum}{} \newcommand{\cftsubparaaftersnum}{} \newcommand{\cftsubparaaftersnumb}{} \newcommand{\cftsubparaleader}{\normalfont\cftdotfill{\cftsubparadotsep}} \newcommand{\cftsubparadotsep}{\cftdotsep} \newcommand{\cftsubparapagefont}{\normalfont} \newcommand{\cftsubparaafterpnum}{} \newcommand{\cftsubparafillnum}[1]{% {\cftsubparaleader}\nobreak \makebox[\@pnumwidth][\cftpnumalign]{\cftsubparapagefont #1}\cftsubparaafterpnum\par } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % % \begin{macro}{\@cftdobiblof} % If the \Lpack{tocbibind} package has been used and it has % redefined |\listoffigures| we need to cater for that. The contents % of the definition are defined in \Lpack{tocbibind}. % \begin{macrocode} \newcommand{\@cftdobiblof}{% \if@dotoclof \if@bibchapter \phantomsection \addcontentsline{toc}{chapter}{\listfigurename} \else \phantomsection \addcontentsline{toc}{\@tocextra}{\listfigurename} \fi \fi} % \end{macrocode} % \end{macro} % % % \begin{macro}{\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 \Lopt{titles} option is used). % \begin{macrocode} \AtBeginDocument{% \if@cftnctoc\else \renewcommand{\listoffigures}{% \@cfttocstart % \end{macrocode} % 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 \file{.lof} file. % \begin{macrocode} \par \begingroup \parindent\z@ \parskip\cftparskip \@cftmakeloftitle \if@cfttocbibind \@cftdobiblof \fi \@starttoc{lof}% \endgroup % \end{macrocode} % Finally, restore any multicolumn typesetting. % \begin{macrocode} \@cfttocfinish}% \fi } % \end{macrocode} % \end{macro} % % \begin{macro}{\@cftmakeloftitle} % This command typesets the title for the LoF. % \changes{v2.3}{2002/06/15}{Added \cs{@secpenalty} to \cs{cftmakeloftitle}} % \changes{v2.3}{2002/06/15}{Added \cs{@cftpagestyle} to \cs{cftmakeloftitle}} % \begin{macrocode} \newcommand{\@cftmakeloftitle}{% \addpenalty\@secpenalty \if@cfthaschapter \vspace*{\cftbeforeloftitleskip} \else \vspace{\cftbeforeloftitleskip} \fi \@cftpagestyle {\interlinepenalty\@M {\cftloftitlefont\listfigurename}{\cftafterloftitle} \cftmarklof \par\nobreak \vskip \cftafterloftitleskip \@afterheading}} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftbeforeloftitleskip} % \begin{macro}{\cftafterloftitleskip} % These two lengths control the vertical spacing before and after the % LoF title. % \begin{macrocode} \newlength{\cftbeforeloftitleskip} \newlength{\cftafterloftitleskip} % \end{macrocode} % 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*|. % \begin{macrocode} \if@cfthaschapter \setlength{\cftbeforeloftitleskip}{50pt} \setlength{\cftafterloftitleskip}{40pt} \else \setlength{\cftbeforeloftitleskip}{3.5ex \@plus 1ex \@minus .2ex} \setlength{\cftafterloftitleskip}{2.3ex \@plus.2ex} \fi % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\cftloftitlefont} % \begin{macro}{\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). % \changes{v2.3}{2002/06/15}{koma has different settings for LoF titles} % \begin{macrocode} \if@cfthaschapter \newcommand{\cftloftitlefont}{\normalfont\Huge\bfseries} \if@cftkoma\renewcommand{\cftloftitlefont}{\size@chapter\sectfont}\fi \else \newcommand{\cftloftitlefont}{\normalfont\Large\bfseries} \if@cftkoma\renewcommand{\cftloftitlefont}{\size@section\sectfont}\fi \fi \newcommand{\cftafterloftitle}{} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\l@figure} % |\l@figure{|\meta{title}|}{|\meta{page}|}| typesets the LoF entry for % a |figure| caption heading. It is a parameterised copy of the default % |\l@figure| % (see \file{classes.dtx} for the original definition). % \begin{macrocode} \renewcommand*{\l@figure}[2]{% \ifnum \c@lofdepth >\z@ \vskip \cftbeforefigskip {\leftskip \cftfigindent\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent \cftfigindent\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima \cftfignumwidth\relax \let\@cftbsnum \cftfigpresnum \let\@cftasnum \cftfigaftersnum \let\@cftasnumb \cftfigaftersnumb \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip {\cftfigfont #1}\nobreak \cftfigfillnum{#2}}% \fi } % \end{macrocode} % \end{macro} % % \begin{macro}{\cftbeforefigskip} % \begin{macro}{\cftfigindent} % \begin{macro}{\cftfignumwidth} % \begin{macro}{\cftfigfont} % \begin{macro}{\cftfigpresnum} % \begin{macro}{\cftfigaftersnum} % \begin{macro}{\cftfigaftersnumb} % \begin{macro}{\cftfigleader} % \begin{macro}{\cftfigdotsep} % \begin{macro}{\cftfigpagefont} % \begin{macro}{\cftfigafterpnum} % \begin{macro}{\cftfigfillnum} % These are the user commands to control the typesetting of Figure caption entries. % They are initialised to give the standard appearance. % \begin{macrocode} \newlength{\cftbeforefigskip} \setlength{\cftbeforefigskip}{\z@ \@plus.2\p@} \newlength{\cftfigindent} \setlength{\cftfigindent}{1.5em} \newlength{\cftfignumwidth} \setlength{\cftfignumwidth}{2.3em} \newcommand{\cftfigfont}{\normalfont} \newcommand{\cftfigpresnum}{} \newcommand{\cftfigaftersnum}{} \newcommand{\cftfigaftersnumb}{} \newcommand{\cftfigleader}{\normalfont\cftdotfill{\cftfigdotsep}} \newcommand{\cftfigdotsep}{\cftdotsep} \newcommand{\cftfigpagefont}{\normalfont} \newcommand{\cftfigafterpnum}{} \newcommand{\cftfigfillnum}[1]{% {\cftfigleader}\nobreak \makebox[\@pnumwidth][\cftpnumalign]{\cftfigpagefont #1}\cftfigafterpnum\par } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{lofdepth} % \begin{macro}{lotdepth} % The counters |lofdepth| and |lotdepth| are defined by the % \Lpack{subfigure} package. % Define them here if that package is not used. % \begin{macrocode} \if@cftsubfigopt\else \newcounter{lofdepth}\setcounter{lofdepth}{1} \newcounter{lotdepth}\setcounter{lotdepth}{1} \fi % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\@cftdobiblot} % If the \Lpack{tocbibind} package has been used and it has % redefined |\listoftables| we need to cater for that. The contents % of the definition are defined in \Lpack{tocbibind}. % \begin{macrocode} \newcommand{\@cftdobiblot}{% \if@dotoclot \if@bibchapter \phantomsection \addcontentsline{toc}{chapter}{\listtablename} \else \phantomsection \addcontentsline{toc}{\@tocextra}{\listtablename} \fi \fi} % \end{macrocode} % \end{macro} % % % \begin{macro}{\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 \Lopt{titles} option has % been used). % \begin{macrocode} \AtBeginDocument{% \if@cftnctoc\else \renewcommand{\listoftables}{% \@cfttocstart % \end{macrocode} % 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 \file{.lot} file. % \begin{macrocode} \par \begingroup \parindent\z@ \parskip\cftparskip \@cftmakelottitle \if@cfttocbibind \@cftdobiblot \fi \@starttoc{lot}% \endgroup % \end{macrocode} % Finally, restore any multicolumn typesetting. % \begin{macrocode} \@cfttocfinish}% \fi } % \end{macrocode} % \end{macro} % % \begin{macro}{\@cftmakelottitle} % This command typesets the title for the LoT. % \changes{v2.3}{2002/06/15}{Added \cs{@secpenalty} to \cs{@cftmakelottitle}} % \changes{v2.3}{2002/06/15}{Added \cs{@cftpagestyle} to \cs{@cftmakelottitle}} % \begin{macrocode} \newcommand{\@cftmakelottitle}{% \addpenalty\@secpenalty \if@cfthaschapter \vspace*{\cftbeforelottitleskip} \else \vspace{\cftbeforelottitleskip} \fi \@cftpagestyle {\interlinepenalty\@M {\cftlottitlefont\listtablename}{\cftafterlottitle} \cftmarklot \par\nobreak \vskip \cftafterlottitleskip \@afterheading}} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftbeforelottitleskip} % \begin{macro}{\cftafterlottitleskip} % These two lengths control the vertical spacing before and after the % LoT title. % \begin{macrocode} \newlength{\cftbeforelottitleskip} \newlength{\cftafterlottitleskip} % \end{macrocode} % 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*|. % \begin{macrocode} \if@cfthaschapter \setlength{\cftbeforelottitleskip}{50pt} \setlength{\cftafterlottitleskip}{40pt} \else \setlength{\cftbeforelottitleskip}{3.5ex \@plus 1ex \@minus .2ex} \setlength{\cftafterlottitleskip}{2.3ex \@plus.2ex} \fi % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\cftlottitlefont} % \begin{macro}{\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). % \changes{v2.3}{2002/06/15}{koma has different settings for LoT titles} % \begin{macrocode} \if@cfthaschapter \newcommand{\cftlottitlefont}{\normalfont\Huge\bfseries} \if@cftkoma\renewcommand{\cftlottitlefont}{\size@chapter\sectfont}\fi \else \newcommand{\cftlottitlefont}{\normalfont\Large\bfseries} \if@cftkoma\renewcommand{\cftlottitlefont}{\size@section\sectfont}\fi \fi \newcommand{\cftafterlottitle}{} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\l@table} % |\l@table{|\meta{title}|}{|\meta{page}|}| typesets the LoT entry for % a |table| caption heading. It is a parameterised copy of the default % |\l@table| % (see \file{classes.dtx} for the original definition). % \begin{macrocode} \renewcommand*{\l@table}[2]{% \ifnum\c@lotdepth >\z@ \vskip \cftbeforetabskip {\leftskip \cfttabindent\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent \cfttabindent\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima \cfttabnumwidth\relax \let\@cftbsnum \cfttabpresnum \let\@cftasnum \cfttabaftersnum \let\@cftasnumb \cfttabaftersnumb \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip {\cfttabfont #1}\nobreak \cfttabfillnum{#2}}% \fi } % \end{macrocode} % \end{macro} % % \begin{macro}{\cftbeforetabskip} % \begin{macro}{\cfttabindent} % \begin{macro}{\cfttabnumwidth} % \begin{macro}{\cfttabfont} % \begin{macro}{\cfttabpresnum} % \begin{macro}{\cfttabaftersnum} % \begin{macro}{\cfttabaftersnumb} % \begin{macro}{\cfttableader} % \begin{macro}{\cfttabdotsep} % \begin{macro}{\cfttabpagefont} % \begin{macro}{\cfttabafterpnum} % \begin{macro}{\cfttabfillnum} % These are the user commands to control the typesetting of Table caption entries. % They are initialised to give the standard appearance. % \begin{macrocode} \newlength{\cftbeforetabskip} \setlength{\cftbeforetabskip}{\z@ \@plus.2\p@} \newlength{\cfttabindent} \setlength{\cfttabindent}{1.5em} \newlength{\cfttabnumwidth} \setlength{\cfttabnumwidth}{2.3em} \newcommand{\cfttabfont}{\normalfont} \newcommand{\cfttabpresnum}{} \newcommand{\cfttabaftersnum}{} \newcommand{\cfttabaftersnumb}{} \newcommand{\cfttableader}{\normalfont\cftdotfill{\cfttabdotsep}} \newcommand{\cfttabdotsep}{\cftdotsep} \newcommand{\cfttabpagefont}{\normalfont} \newcommand{\cfttabafterpnum}{} \newcommand{\cfttabfillnum}[1]{% {\cfttableader}\nobreak \makebox[\@pnumwidth][\cftpnumalign]{\cfttabpagefont #1}\cfttabafterpnum\par } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \subsection{Support for the \Lpack{subfigure} package} % \changes{v1.1}{2000/02/12}{Added subfigure support} % % The code for supporting the \Lpack{subfigure} package is, in all % essentials, the same as that for the figure and table captions; only the % names are changed. However, the code need only be executed if the % \Lpack{subfigure} package is actually loaded. % % \begin{macro}{\@cftl@subfig} % This command redefines the |\l@subfigure| command. % \begin{macrocode} \newcommand{\@cftl@subfig}{% % \end{macrocode} % \begin{macro}{\l@subfigure} % |\l@subfigure{|\meta{title}|}{|\meta{page}|}| typesets the LoF entry for % a |subfigure| caption heading. It is essentially the same as the % parameterised code for |\l@figure| except that account has to be taken % of |lofdepth|. % \begin{macrocode} \renewcommand*{\l@subfigure}[2]{% \ifnum \c@lofdepth > \toclevel@subfigure \vskip \cftbeforesubfigskip {\leftskip \cftsubfigindent\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent \cftsubfigindent\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima \cftsubfignumwidth\relax \let\@cftbsnum \cftsubfigpresnum \let\@cftasnum \cftsubfigaftersnum \let\@cftasnumb \cftsubfigaftersnumb \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip {\cftsubfigfont ##1}\nobreak \cftsubfigfillnum{##2}}% \fi }% } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\@cftsetsubfig} % This command initialises the setup for subfigure captions in the LoF. % \begin{macrocode} \newcommand{\@cftsetsubfig}{% % \end{macrocode} % \begin{macro}{\cftbeforesubfigskip} % \begin{macro}{\cftsubfigindent} % \begin{macro}{\cftsubfignumwidth} % \begin{macro}{\cftsubfigfont} % \begin{macro}{\cftsubfigpresnum} % \begin{macro}{\cftsubfigaftersnum} % \begin{macro}{\cftsubfigaftersnumb} % \begin{macro}{\cftsubfigleader} % \begin{macro}{\cftsubfigdotsep} % \begin{macro}{\cftsubfigpagefont} % \begin{macro}{\cftsubfigafterpnum} % \begin{macro}{\toclevel@subfig} % \begin{macro}{\cftsubfigfillnum} % \begin{macrocode} \newlength{\cftbeforesubfigskip} \setlength{\cftbeforesubfigskip}{\z@ \@plus.2\p@} \newlength{\cftsubfigindent} \setlength{\cftsubfigindent}{3.8em} \newlength{\cftsubfignumwidth} \setlength{\cftsubfignumwidth}{2.5em} \newcommand{\cftsubfigfont}{\normalfont} \newcommand{\cftsubfigpresnum}{} \newcommand{\cftsubfigaftersnum}{} \newcommand{\cftsubfigaftersnumb}{} \newcommand{\cftsubfigleader}{\normalfont\cftdotfill{\cftsubtabdotsep}} \newcommand{\cftsubfigdotsep}{\cftdotsep} \newcommand{\cftsubfigpagefont}{\normalfont} \newcommand{\cftsubfigafterpnum}{} \providecommand{\toclevel@subfigure}{1} \newcommand{\cftsubfigfillnum}[1]{% {\cftsubfigleader}\nobreak \makebox[\@pnumwidth][\cftpnumalign]{\cftsubfigpagefont ##1}\cftsubfigafterpnum\par } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % This is the end of |\@cftsetsubfig|. % \begin{macrocode} } % \end{macrocode} % \end{macro} % % \begin{macro}{\@cftl@subtab} % This code redefines the code for |\l@subtable|. % \begin{macrocode} \newcommand{\@cftl@subtab}{% % \end{macrocode} % \begin{macro}{\l@subtable} % |\l@subtable{|\meta{title}|}{|\meta{page}|}| typesets the LoT entry for % a |subtable| caption heading. It is essentially the same as the % parameterised code for |\l@table| except account has to be taken of % |lotdepth|. % \begin{macrocode} \renewcommand*{\l@subtable}[2]{% \ifnum \c@lotdepth > \toclevel@subtable \vskip \cftbeforesubtabskip {\leftskip \cftsubtabindent\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent \cftsubtabindent\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima \cftsubtabnumwidth\relax \let\@cftbsnum \cftsubtabpresnum \let\@cftasnum \cftsubtabaftersnum \let\@cftasnumb \cftsubtabaftersnumb \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip {\cftsubtabfont ##1}\nobreak \cftsubtabfillnum{##2}}% \fi }% } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\@cftsetsubtab} % This command sets up the defaults for subtable entries in the LoT. % \begin{macrocode} \newcommand{\@cftsetsubtab}{% % \end{macrocode} % \begin{macro}{\cftbeforesubtabskip} % \begin{macro}{\cftsubtabindent} % \begin{macro}{\cftsubtabnumwidth} % \begin{macro}{\cftsubtabfont} % \begin{macro}{\cftsubtabpresnum} % \begin{macro}{\cftsubtabaftersnum} % \begin{macro}{\cftsubtabaftersnumb} % \begin{macro}{\cftsubtableader} % \begin{macro}{\cftsubtabdotsep} % \begin{macro}{\cftsubtabpagefont} % \begin{macro}{\cftsubtabafterpnum} % \begin{macro}{\toclevel@subtable} % \begin{macro}{\cftsubtabfillnum} % These are the user commands to control the typesetting of Subtable % caption entries. % They are initialised to give the standard appearance. % \begin{macrocode} \newlength{\cftbeforesubtabskip} \setlength{\cftbeforesubtabskip}{\z@ \@plus.2\p@} \newlength{\cftsubtabindent} \setlength{\cftsubtabindent}{3.8em} \newlength{\cftsubtabnumwidth} \setlength{\cftsubtabnumwidth}{2.5em} \newcommand{\cftsubtabfont}{\normalfont} \newcommand{\cftsubtabpresnum}{} \newcommand{\cftsubtabaftersnum}{} \newcommand{\cftsubtabaftersnumb}{} \newcommand{\cftsubtableader}{\normalfont\cftdotfill{\cftsubtabdotsep}} \newcommand{\cftsubtabdotsep}{\cftdotsep} \newcommand{\cftsubtabpagefont}{\normalfont} \newcommand{\cftsubtabafterpnum}{} \providecommand{\toclevel@subtable}{1} \newcommand{\cftsubtabfillnum}[1]{% {\cftsubtableader}\nobreak \makebox[\@pnumwidth][\cftpnumalign]{\cftsubtabpagefont ##1}\cftsubtabafterpnum\par } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % This is the end of |\@cftsetsubtab|. % \begin{macrocode} } % \end{macrocode} % \end{macro} % % Call the \Lpack{subfigure} package setup code only if the % \Lopt{subfigure} option is specified. The |\l@...| redefinitions have to % come after the \Lpack{subfigure} package is loaded. % \begin{macrocode} \if@cftsubfigopt \@cftsetsubfig\@cftsetsubtab \AtBeginDocument{\@cftl@subfig\@cftl@subtab} \fi %% \AtBeginDocument{\if@cftsubfigopt %% \@cftsetsubfig\@cftsetsubtab %% \@cftl@subfig\@cftl@subtab %% \fi} % \end{macrocode} % % % \subsection{New list of\ldots} % \changes{v2.0}{2001/03/03}{Added \cs{newlistof} and \cs{newlistentry}} % % \begin{macro}{\newlistentry} % |\newlistentry[|\meta{within}|]{|\meta{counter}|}{|\meta{ext}|}{|\meta{level-1}|}| creates a set of commands for a new kind of entry into a List of. % \begin{macrocode} \newcommand{\newlistentry}[4][\@empty]{% % \end{macrocode} % \begin{macro}{\c@X} % \begin{macro}{\theX} % Check if \meta{within} and \meta{counter} have been defined. It is % an error if \meta{within} has not been defined, and an error if % \meta{counter} has been defined. Set the default counter values. % \begin{macrocode} \@ifundefined{c@#2}{% check & set the counter \ifx \@empty#1\relax \newcounter{#2} \else \@ifundefined{c@#1}{\PackageWarning{tocloft}% {#1 has no counter for use as a `within'} \newcounter{#2}}% {\newcounter{#2}[#1]% \expandafter\edef\csname the#2\endcsname{% \expandafter\noexpand\csname the#1\endcsname.\noexpand\arabic{#2}}} \fi \setcounter{#2}{0} } {\PackageError{tocloft}{#2 has been previously defined}{\@eha}} % \end{macrocode} % \end{macro} % \end{macro} % % That finishes off the error checking. No matter what the result, the % rest of the new commands are defined. % % \begin{macro}{\l@X} % |\l@X{|\meta{title}|}{|\meta{page}|}| typesets the entry. % \begin{macrocode} \@namedef{l@#2}##1##2{% % \end{macrocode} % Only typeset if the |\Zdepth| is greater than \meta{level-1}. % \begin{macrocode} \ifnum \@nameuse{c@#3depth} > #4\relax \vskip \@nameuse{cftbefore#2skip} {\leftskip \@nameuse{cft#2indent}\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent \@nameuse{cft#2indent}\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima \@nameuse{cft#2numwidth}\relax \expandafter\let\expandafter\@cftbsnum\csname cft#2presnum\endcsname \expandafter\let\expandafter\@cftasnum\csname cft#2aftersnum\endcsname \expandafter\let\expandafter\@cftasnumb\csname cft#2aftersnumb\endcsname \advance\leftskip\@tempdima \null\nobreak\hskip -\leftskip {\@nameuse{cft#2font}##1}\nobreak \@nameuse{cft#2fillnum}{##2}}% \fi } % end of \l@#2 % \end{macrocode} % \end{macro} % % Now define all the layout commands used by |\l@X|. The default % values of these correspond to those for section entries in % non-chaptered documents. % \begin{macro}{\cftbeforeXskip} % \begin{macrocode} \expandafter\newlength\csname cftbefore#2skip\endcsname \setlength{\@nameuse{cftbefore#2skip}}{\z@ \@plus .2\p@} % \end{macrocode} % \end{macro} % \begin{macro}{\cftXindent} % \begin{macro}{\cftXnumwidth} % \begin{macrocode} \expandafter\newlength\csname cft#2indent\endcsname \expandafter\newlength\csname cft#2numwidth\endcsname % \end{macrocode} % Set the default values for the indent and numwidth depending on % the entry's level. A level of 1 corresponds to a figure entry. % \begin{macrocode} \ifcase #4\relax % 0 \setlength{\@nameuse{cft#2indent}}{0em} \setlength{\@nameuse{cft#2numwidth}}{1.5em} \or % 1 \setlength{\@nameuse{cft#2indent}}{1.5em} \setlength{\@nameuse{cft#2numwidth}}{2.3em} \or % 2 \setlength{\@nameuse{cft#2indent}}{3.8em} \setlength{\@nameuse{cft#2numwidth}}{3.2em} \or % 3 \setlength{\@nameuse{cft#2indent}}{7.0em} \setlength{\@nameuse{cft#2numwidth}}{4.1em} \else % anything else \setlength{\@nameuse{cft#2indent}}{10.0em} \setlength{\@nameuse{cft#2numwidth}}{5.0em} \fi % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\cftXfont} % \begin{macro}{\cftXpresnum} % \begin{macro}{\cftXaftersnum} % \begin{macro}{\cftXaftersnumb} % \begin{macro}{\cftXdotsep} % \begin{macro}{\cftXleader} % \begin{macro}{\cftXpagefont} % \begin{macro}{\cftXafterpnum} % And the remaining commands. % \begin{macrocode} \@namedef{cft#2font}{\normalfont} \@namedef{cft#2presnum}{} \@namedef{cft#2aftersnum}{} \@namedef{cft#2aftersnumb}{} \@namedef{cft#2dotsep}{\cftdotsep} \@namedef{cft#2leader}{\normalfont\cftdotfill{\@nameuse{cft#2dotsep}}} \@namedef{cft#2pagefont}{\normalfont} \@namedef{cft#2afterpnum}{} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\toclevel@X} % The hyperref package needs a command |\toclevel@X|, holding % the \meta{level-1} value. % \begin{macrocode} \@namedef{toclevel@#2}{#4} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftXfillnum} % Typeset the leader and page number. % \begin{macrocode} \@namedef{cft#2fillnum}##1{% {\@nameuse{cft#2leader}}\nobreak \makebox[\@pnumwidth][\cftpnumalign]{\@nameuse{cft#2pagefont}##1}\@nameuse{cft#2afterpnum}\par } % \end{macrocode} % \end{macro} % This ends the definition of |\newlistentry|. % \begin{macrocode} } % \end{macrocode} % \end{macro} % % \begin{macro}{\newlistof} % |\newlistof[|\meta{within}|]{|\meta{entry}|}{|\meta{ext}|}{|\meta{listofname}|}| % creates the commands for a new List of. % \begin{macrocode} \newcommand{\newlistof}[4][\@empty]{% % \end{macrocode} % Call |\newlistentry| to set up the first level entry. % \begin{macrocode} \ifx \@empty#1\relax \newlistentry{#2}{#3}{0} \else \newlistentry[#1]{#2}{#3}{0} \fi % \end{macrocode} % \end{macro} % % \begin{macro}{\ext@Z} % \begin{macro}{\Zdepth} % The file extension and listing depth. % \begin{macrocode} \@namedef{ext@#2}{#3} \newcounter{#3depth} \setcounter{#3depth}{1} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\cftmarkZ} % The heading marks for the listing. % \changes{v2.3}{2002/06/15}{different koma settings in \cs{newlistof}} % \begin{macrocode} \if@cftkoma \@namedef{cftmark#3}{% \@mkboth{#4}{#4}} \else \@namedef{cftmark#3}{% \@mkboth{\MakeUppercase{#4}}{\MakeUppercase{#4}}} \fi % \end{macrocode} % \end{macro} % % \begin{macro}{\listofX} % Typeset the listing title and entries. % \begin{macrocode} \if@cftnctoc % \end{macrocode} % For the \Lopt{titles} option, basically copy the code from % the standard |\tableofcontents| command. % \begin{macrocode} \@namedef{listof#2}{% \@cfttocstart \if@cfthaschapter \chapter*{#4} \else \section*{#4} \fi \@nameuse{cftmark#3} \@starttoc{#3}% \@cfttocfinish} \else % \end{macrocode} % Otherwise use the fully parameterised definition. % \begin{macrocode} \@namedef{listof#2}{% \@cfttocstart \par \begingroup \parindent\z@ \parskip\cftparskip \@nameuse{@cftmake#3title} \@starttoc{#3}% \endgroup \@cfttocfinish} \fi % \end{macrocode} % \end{macro} % % \begin{macro}{\@cftmakeZtitle} % Typeset the title. % \changes{v2.3}{2002/06/15}{Added \cs{@secpenalty} to \cs{@cftmakeZtitle}} % \changes{v2.3}{2002/06/15}{Added \cs{@cftpagestyle} to \cs{@cftmakeZtitle}} % \begin{macrocode} \@namedef{@cftmake#3title}{% \addpenalty\@secpenalty \if@cfthaschapter \vspace*{\@nameuse{cftbefore#3titleskip}}% \else \vspace{\@nameuse{cftbefore#3titleskip}}% \fi \@cftpagestyle {\interlinepenalty\@M {\@nameuse{cft#3titlefont}#4}{\@nameuse{cftafter#3title}}% \@nameuse{cftmark#3}% \par\nobreak \vskip \@nameuse{cftafter#3titleskip}% \@afterheading}} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftbeforeZtitleskip} % \begin{macro}{\cftafterZtitleskip} % \begin{macro}{\cftZtitlefont} % The skips before and after the title heading, and the title font. % The default values depend on whether or not the document class % has chapters. % \begin{macrocode} \expandafter\newlength\csname cftbefore#3titleskip\endcsname \expandafter\newlength\csname cftafter#3titleskip\endcsname \if@cfthaschapter \setlength{\@nameuse{cftbefore#3titleskip}}{50pt} \setlength{\@nameuse{cftafter#3titleskip}}{40pt} \if@cftkoma \@namedef{cft#3titlefont}{\size@chapter\sectfont} \else \@namedef{cft#3titlefont}{\normalfont\Huge\bfseries} \fi \else \setlength{\@nameuse{cftbefore#3titleskip}}{3.5ex \@plus 1ex \@minus .2ex} \setlength{\@nameuse{cftafter#3titleskip}}{2.3ex \@plus .2ex} \if@cftkoma \@namedef{cft#3titlefont}{\size@section\sectfont} \else \@namedef{cft#3titlefont}{\normalfont\Huge\bfseries} \fi \fi % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\cftafterZtitle} % Something to go after the title. % \begin{macrocode} \@namedef{cftafter#3title}{} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftZprehook} % \begin{macro}{\cftZposthook} % Hooks before and after the list of entries. % \begin{macrocode} \@namedef{cft#3prehook}{} \@namedef{cft#3posthook}{} % \end{macrocode} % \end{macro} % % This is the end of the definition of |\newlistof|. % \begin{macrocode} } % \end{macrocode} % \end{macro} % % \begin{macro}{\cftsetindents} % \changes{v2.0}{2001/03/15}{Added \cs{cftsetindents}} % |\cftsetindents{|\meta{entry}|}{|\meta{indent}|}{|\meta{numwidth}|}| sets % the \textit{indent} and \textit{numwidth} for entry \meta{entry}. The macro % has to map between the external entry name and the internal shorthand. % \begin{macrocode} \newcommand{\cftsetindents}[3]{% \def\@cftemp{#1} \ifx\@cftemp\cftchapname \@cftsetindents{chap}{#2}{#3} \else \ifx\@cftemp\cftsecname \@cftsetindents{sec}{#2}{#3} \else \ifx\@cftemp\cftsubsecname \@cftsetindents{subsec}{#2}{#3} \else \ifx\@cftemp\cftsubsubsecname \@cftsetindents{subsubsec}{#2}{#3} \else \ifx\@cftemp\cftparaname \@cftsetindents{para}{#2}{#3} \else \ifx\@cftemp\cftsubparaname \@cftsetindents{subpara}{#2}{#3} \else \ifx\@cftemp\cftfigname \@cftsetindents{fig}{#2}{#3} \else \ifx\@cftemp\cftsubfigname \@cftsetindents{subfig}{#2}{#3} \else \ifx\@cftemp\cfttabname \@cftsetindents{tab}{#2}{#3} \else \ifx\@cftemp\cftsubtabname \@cftsetindents{subtab}{#2}{#3} \else \@cftsetindents{#1}{#2}{#3} \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi } % \end{macrocode} % \end{macro} % % \begin{macro}{\@cftsetindents} % |\@cftsetindents{|\meta{X}|}{|\meta{indent}|}{|\meta{numwidth}|}| is % the internal version of |\cftsetindents|, where in this case \meta{X} % is the internal (shorthand) name of the entry. % \begin{macrocode} \newcommand{\@cftsetindents}[3]{% \setlength{\@nameuse{cft#1indent}}{#2} \setlength{\@nameuse{cft#1numwidth}}{#3} } % \end{macrocode} % \end{macro} % % % \subsection{Switching page numbering} % \changes{v2.0}{2001/03/03}{Added page number switching off/on} % % \begin{macro}{\@cftpnumoff} % |\@cftpnumoff{|\meta{shorthand}|}| is the workhorse % for switching page numbering off. The \meta{shorthand} argument is the % shorthand name of the entry (e.g. |subsec| for |subsection|). % The macro redefines the |\cftXnumfill| command so that there is no leader % and the page number is ignored. % \begin{macrocode} \newcommand{\@cftpnumoff}[1]{% \@namedef{cft#1fillnum}##1{% \cftparfillskip\@nameuse{cft#1afterpnum}\par}} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftchapname} % \begin{macro}{\cftsecname} % \begin{macro}{\cftsubsecname} % \begin{macro}{\cftsubsubsecname} % \begin{macro}{\cftparaname} % \begin{macro}{\cftsubparaname} % \begin{macro}{\cftfigname} % \begin{macro}{\cftsubfigname} % \begin{macro}{\cfttabname} % \begin{macro}{\cftsubtabname} % Unfortunately an early design decision was the use shorthands like |sec| % for |section|. For the page switching I need to be able to correlate the % shorthands and longhands. % \begin{macrocode} \newcommand*{\cftchapname}{chapter} \newcommand*{\cftsecname}{section} \newcommand*{\cftsubsecname}{subsection} \newcommand*{\cftsubsubsecname}{subsubsection} \newcommand*{\cftparaname}{paragraph} \newcommand*{\cftsubparaname}{subparagraph} \newcommand*{\cftfigname}{figure} \newcommand*{\cftsubfigname}{subfigure} \newcommand*{\cfttabname}{table} \newcommand*{\cftsubtabname}{subtable} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\cftpagenumbersoff} % The user level command for switching off page numbers is % |\cftpagenumbersoff{|\meta{entry}|}| where \meta{entry} is the longhand % name of the entry. The principal task opf this macro is to determine % the corresponding shorthand name of the \meta{entry} and then call % |\@cftpnumoff| to do the work. For |part| and user-defined entries % the long- and short-hand entry names are identical. % \begin{macrocode} \DeclareRobustCommand{\cftpagenumbersoff}[1]{% \def\@cftemp{#1} \ifx\@cftemp\cftchapname \@cftpnumoff{chap} \else \ifx\@cftemp\cftsecname \@cftpnumoff{sec} \else \ifx\@cftemp\cftsubsecname \@cftpnumoff{subsec} \else \ifx\@cftemp\cftsubsubsecname \@cftpnumoff{subsubsec} \else \ifx\@cftemp\cftparaname \@cftpnumoff{para} \else \ifx\@cftemp\cftsubparaname \@cftpnumoff{subpara} \else \ifx\@cftemp\cftfigname \@cftpnumoff{fig} \else \ifx\@cftemp\cftsubfigname \@cftpnumoff{subfig} \else \ifx\@cftemp\cfttabname \@cftpnumoff{tab} \else \ifx\@cftemp\cftsubtabname \@cftpnumoff{subtab} \else \@cftpnumoff{#1} \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi } % \end{macrocode} % \end{macro} % % \begin{macro}{\cftpagenumberson} % |\cftpagenumberson{|\meta{entry}|}| is the user level command for % reversing the corresponding |\cftpagenumbersoff|. % \begin{macrocode} \DeclareRobustCommand{\cftpagenumberson}[1]{% \def\@cftemp{#1} \ifx\@cftemp\cftchapname \@cftpnumon{chap} \else \ifx\@cftemp\cftsecname \@cftpnumon{sec} \else \ifx\@cftemp\cftsubsecname \@cftpnumon{subsec} \else \ifx\@cftemp\cftsubsubsecname \@cftpnumon{subsubsec} \else \ifx\@cftemp\cftparaname \@cftpnumon{para} \else \ifx\@cftemp\cftsubparaname \@cftpnumon{subpara} \else \ifx\@cftemp\cftfigname \@cftpnumon{fig} \else \ifx\@cftemp\cftsubfigname \@cftpnumon{subfig} \else \ifx\@cftemp\cfttabname \@cftpnumon{tab} \else \ifx\@cftemp\cftsubtabname \@cftpnumon{subtab} \else \@cftpnumon{#1} \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi } % \end{macrocode} % \end{macro} % % % \begin{macro}{\@cftpnumon} % |\@cftpnumon{|\meta{shorthand}|}| is the workhorse % for switching page numbering off. The \meta{shorthand} argument is the % shorthand name of the entry (e.g. |subsec| for |subsection|). % The macro defines the |\cftXnumfill| command to correspond to % the default definition. % \begin{macrocode} \newcommand{\@cftpnumon}[1]{% \@namedef{cft#1fillnum}##1{% {\@nameuse{cft#1leader}}\nobreak \makebox[\@pnumwidth][\cftpnumalign]{\@nameuse{cft#1pagefont}##1}\@nameuse{cft#1afterpnum}\par }% } % \end{macrocode} % \end{macro} % % % % % % % \subsection{Experimental utilities} % % The code in this section is experimental but in the sense that the % capabilities might be modified in the future rather than that the code % does not work. % % \begin{macro}{\cftchapterprecis} % This is experimental. |\cftchapterprecis{|\meta{text}|}| typesets % \meta{text} at the point where it is called, and also adds \meta{text} % to the \file{.toc} file. It is expects to be called immediately after % a |\chapter| command. % \begin{macrocode} \newcommand{\cftchapterprecis}[1]{% \cftchapterprecishere{#1} \cftchapterprecistoc{#1}} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftchapterprecishere} % |\cftchapterprecishere{|\meta{text}|}| typesets \meta{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. % \begin{macrocode} \newcommand{\cftchapterprecishere}[1]{% \vspace*{-2\baselineskip} % \end{macrocode} % Typeset its argument using italic font in a |quote| environment. % \begin{macrocode} \begin{quote}\textit{#1}\end{quote}} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftchapterprecistoc} % |\cftchapterprecistoc{|\meta{text}|}| adds \meta{text} to the \file{.toc} % file. The \meta{text} will be typeset within the same margins as the % the title text of a |\chapter| heading, using an italic font. % \begin{macrocode} \newcommand{\cftchapterprecistoc}[1]{\addtocontents{toc}{% % \end{macrocode} % Start a group to localize changes to the paragraphing. Set the % left margin to the chapter indent plus the chapter number width. % \begin{macrocode} {\leftskip \cftchapindent\relax \advance\leftskip \cftchapnumwidth\relax % \end{macrocode} % Set the right hand margin to |\@tocrmarg|. % \begin{macrocode} \rightskip \@tocrmarg\relax % \end{macrocode} % Typeset \meta{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. % \begin{macrocode} \textit{#1}\protect\par}}} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftlocalchange} % |\cftmakelocalchange{|\meta{file}|}{|\meta{pnumwidth}|}{|\meta{tocrmarg}|}| % makes an entry into \meta{file} to change the |\@pnumwidth| and % the |\@tocrmarg| values. % \begin{macrocode} \newcommand{\cftlocalchange}[3]{% \addtocontents{#1}{\protect\cftsetpnumwidth{#2} \protect\cftsetrmarg{#3}}} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftaddtitleline} % |\cftaddtitleline{|\meta{file}|}{|\meta{kind}|}{|\meta{title}|}{|\meta{page}|}| % adds a |\contentsline| entry to \meta{file} with the given information. % \begin{macrocode} \newcommand{\cftaddtitleline}[4]{\addtocontents{#1}{% \protect\contentsline{#2}{#3}{#4}}} % \end{macrocode} % \end{macro} % % \begin{macro}{\cftaddnumtitleline} % |\cftaddtitleline{|\meta{file}|}{|\meta{kind}|}{|\meta{num}|}{|\meta{title}|}{|\meta{page}|}| % adds a |\contentsline| entry to \meta{file} with the given information. % \changes{v2.3c}{2003/09/26}{Removed \cs{ignorespaces} from \cs{cftaddnumtitleline}} % \begin{macrocode} \newcommand{\cftaddnumtitleline}[5]{\addtocontents{#1}{% \protect\contentsline{#2}{\protect\numberline{#3}#4}{#5}}} % \end{macrocode} % \end{macro} % % And, if dear old \Lpack{hyperref} has been used, we have to fix up these % two macros. % \changes{2003/09/26}{v2.3c}{Hyperref fix for \cs{cftaddtitleline} and % \cs{cftaddnumtitleline}} % \begin{macrocode} \AtBeginDocument{% \@ifpackageloaded{hyperref}{% \renewcommand{\cftaddtitleline}[4]{\addtocontents{#1}{% \protect\contentsline{#2}{#3}{#4}{\@currentHref}}} \renewcommand{\cftaddnumtitleline}[5]{\addtocontents{#1}{% \protect\contentsline{#2}{\protect\numberline{#3}#4}{#5}{\@currentHref}}} }{} } % \end{macrocode} % % % \begin{macro}{\@starttoc} % % Okay, here's a roughly-comprehensive list where \cs{@starttoc} is redefined in \TeX{} Live 2014. % \begin{itemize} % \item amsart, amsbook, amsdtx, amsproc % \item asect % \item latx.ltx (of course) % \item newfloat % \item flowfram % \item gmampulex (?), gmtypos % \item hyperref, memhfixc % \item ijmart % \item scrartcl, scrbook, scrreprt % \item scrwtfile % \item tocbasic % \item tocstyle % \item memoir % \item multitoc % \item nccsect % \item notoccite % \item artikel3, boek3, rapport3, % \item rerunfilecheck % \item parskip % \item pdfwin % \item revtex4 % \item devanagari % \end{itemize} % This makes things difficult if we want to redefine \cs{@starttoc} here. % Many of the packages/classes above will not be used in conjunction with tocloft; on the other hand, we don't want to trample too much on others' code. % % So for our own work here, let's be extra conservative, at least for now, and only hook into \cs{starttoc} if it's the standard \LaTeX{} version. % \begin{macrocode} \def\@starttoc@latex@orig#1{% \begingroup \makeatletter \@input{\jobname.#1}% \if@filesw \expandafter\newwrite\csname tf@#1\endcsname \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax \fi \@nobreakfalse \endgroup} \ifx\@starttoc\@starttoc@latex@orig \def\@starttoc#1{% \csname cft#1prehook\endcsname \begingroup \makeatletter \@input{\jobname.#1}% \if@filesw \expandafter\newwrite\csname tf@#1\endcsname \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax \fi \@nobreakfalse \endgroup \csname cft#1posthook\endcsname} \newcommand\cfttocprehook{} \newcommand\cftlofprehook{} \newcommand\cftlotprehook{} \newcommand\cfttocposthook{} \newcommand\cftlofposthook{} \newcommand\cftlotposthook{} \else \PackageWarning{tocloft}{\string\@starttoc\space has already been redefined; tocloft bailing out.} \fi % \end{macrocode} % \end{macro} % % % % % The end of this package. % \begin{macrocode} % % \end{macrocode} % % % \bibliographystyle{alpha} % % \begin{thebibliography}{GMS94} % % \bibitem[Coc95]{SUBFIGURE} % Steven Douglas Cochran. % \newblock \emph{{The subfigure package}}. % \newblock March 1995. % \newblock (Available from CTAN as file \texttt{subfigure.dtx}) % % \bibitem[Dru99]{MINITOC} % Jean-Pierre Drucbert. % \newblock \emph{{The minitoc package}}. % \newblock August 1999. % \newblock (Available from CTAN in subdirectory \texttt{/minitoc}) % % \bibitem[GMS94]{GOOSSENS94} % Michel Goossens, Frank Mittelbach, and Alexander Samarin. % \newblock {\em The LaTeX Companion}. % \newblock Addison-Wesley Publishing Company, 1994. % % \bibitem[Lin97]{FNCYCHAP} % Ulf~A. Lindgren. % \newblock \emph{{FncyChap V1.11}}. % \newblock April 1997. % \newblock (Available from CTAN in subdirectory \texttt{/fncychap}) % % \bibitem[Lin95]{FLOAT} % Anselm Lingnau. % \newblock \emph{{An Improved Environment for Floats}}. % \newblock March 1995. % \newblock (Available from CTAN in subdirectory \texttt{/float}) % % \bibitem[Wil96a]{ALGORITHM} % Peter Williams. % \newblock \emph{{Algorithms}}. % \newblock April 1996. % \newblock (Available from CTAN in subdirectory \texttt{/algorithm}) % % \bibitem[Wil96b]{PRW96i} % Peter~R. Wilson. % \newblock \emph{{LaTeX for standards: The LaTeX package files user manual}}. % \newblock NIST Report NISTIR, June 1996. % % \bibitem[Wil00]{TOCBIBIND} % Peter~R. Wilson. % \newblock \emph{{The tocbibind package}}. % \newblock March 2000. % \newblock (Available from CTAN as file \texttt{tocbibind.dtx}) % % \bibitem[Wil01]{CCAPTION} % Peter~R. Wilson. % \newblock \emph{{The ccaption package}}. % \newblock March 2001. % \newblock (Available from CTAN as file \texttt{ccaption.dtx}) % % \end{thebibliography} % % % \Finale % \PrintIndex % \endinput %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~}