1 % \iffalse meta-comment
4 % The LaTeX3 Project and any individual authors listed elsewhere
7 % This file is part of the LaTeX base system.
8 % -------------------------------------------
10 % It may be distributed and/or modified under the
11 % conditions of the LaTeX Project Public License, either version 1.3c
12 % of this license or (at your option) any later version.
13 % The latest version of this license is in
14 % http://www.latex-project.org/lppl.txt
15 % and version 1.3c or later is part of all distributions of LaTeX
16 % version 2005/12/01 or later.
18 % This file has the LPPL maintenance status "maintained".
20 % The list of all files belonging to the LaTeX base distribution is
21 % given in the file `manifest.txt'. See also `legal.txt' for additional
24 % The list of derived (unpacked) files belonging to the distribution
25 % and covered by LPPL is defined by the unpacking scripts (with
26 % extension .ins) which are part of the distribution.
31 %%% From File: ltsect.dtx
34 \ProvidesFile{ltsect.dtx}[2016/09/29 v1.0z LaTeX Kernel (Sectioning)]
36 \documentclass{ltxdoc}
37 \GetFileInfo{ltsect.dtx}
47 Tobias Oetiker\thanks{Tobi updated
48 the comments to `doc' conventions}\and
52 \MaintainedByLaTeXTeam{latex}
60 % \changes{v1.0o}{1995/05/07}{Use \cs{hb@xt@}}
61 % \changes{v1.0y}{1996/10/31}{Corrected and tidied documentation;
65 % \section{Sectioning Commands}
67 % This file defines the declarations such as |\author| which are used
68 % by |\maketitle|. |\maketitle| itself is defined by each class, not
69 % in the \LaTeX{} kernel.
71 % The second part of the file defines the generic commands used for
72 % defining sectioning commands such as |\chapter|. Again the actual
73 % document level commands are defined in the class files, in terms of
79 % \changes{v1.0a}{1994/03/04}{Initial version, split from latex.dtx}
80 % \changes{v1.0b}{1994/03/28}{Split further from ltherest.dtx}
81 % \changes{v1.0d}{1994/05/21}{Use new error commands}
82 % \changes{v1.0f}{1994/10/12}{Doc. typos}
83 % \changes{v1.0g}{1994/10/18}{Added \cs{normalcolor}}
84 % \changes{v1.0i}{1994/11/17}
85 % {\cs{@tempa} to \cs{reserved@a}}
86 % \changes{v1.0m}{1995/05/03}{TO: Promoted documentation to doc.sty
94 % \subsection{The Title}
96 % \DescribeMacro{\title}
97 % The user defines the title and author by the declarations
98 % |\title|\marg{name},
99 % \DescribeMacro{\author}
100 % |\author|\marg{name}
102 % \DescribeMacro{\date}
103 % Similarly the date is declared with
104 % |\date|\marg{date}.
106 % \DescribeMacro{\thanks}
107 % Inside these, the |\thanks|\marg{footnote text} command may be used
108 % to make acknowledgements, notice of address, etc.\ in a footnote.
109 % \DescribeMacro{\and}
110 % If there are multiple authors, they have to be separated with the
113 % \DescribeMacro{\maketitle}
114 % And finally, the |\maketitle| command produces the actual title,
115 % using the information previously saved with the other commands.
117 % \begin{macro}{\title}
118 % \begin{macro}{\@title}
119 % \changes{LaTeX2e}{1993/12/11}{Added default}
120 % |\title| for use in |\maketitle|. If not given |\maketitle| will
121 % produce an error message.
123 \def\title#1{\gdef\@title{#1}}
124 \def\@title{\@latex@error{No \noexpand\title given}\@ehc}
129 % \begin{macro}{\author}
130 % \begin{macro}{\@author}
131 % \changes{LaTeX2e}{1993/12/11}{Added default}
133 % |\author| for use in |\maketitle|. If not given |\maketitle| will
134 % produce a warning message.
137 \def\author#1{\gdef\@author{#1}}
138 \def\@author{\@latex@warning@no@line{No \noexpand\author given}}
143 % \begin{macro}{\date}
144 % \begin{macro}{\@date}
145 % |\date| for use in |\maketitle|. If not given |\maketitle| will
146 % produce |\today| as the default.
148 \def\date#1{\gdef\@date{#1}}
154 % \changes{1.0h}{1994/11/04}{(ASAJ) Added \cs{protected@xdef} to
156 % \begin{macro}{\thanks}
158 \def\thanks#1{\footnotemark
159 \protected@xdef\@thanks{\@thanks
160 \protect\footnotetext[\the\c@footnote]{#1}}%
165 % \begin{macro}{\@thanks}
170 % \begin{macro}{\and}
172 \def\and{% % \begin{tabular}
174 \hskip 1em \@plus.17fil%
175 \begin{tabular}[t]{c}}% % \end{tabular}
180 \message{sectioning,}
182 % \subsection{Sectioning}
185 % \begin{macro}{\@secpenalty}
187 \newcount\@secpenalty
192 % \begin{macro}{\if@noskipsec}
193 % \begin{macro}{\@noskipsectrue}
194 % \changes{1.0w}{1996/09/29}{Added documentation}
195 % Way back in 1991 (08/26) FMi \& RmS set the |\@noskipsec| switch
196 % to true for the preamble and to false in |\document|.
197 % This was done to trap lists and related text in the preamble but it
198 % does not catch everything.
200 \newif\if@noskipsec \@noskipsectrue
205 % \begin{macro}{\@startsection}
207 % The |\@startsection{|\meta{name}|}{|\meta{level}|}{|%
208 % \meta{indent}|}{|\meta{beforeskip}|}|\\
209 % |{|\meta{afterskip}|}{|\meta{style}|}*[|\meta{altheading}%
210 % |]{|\meta{heading}|}|
211 % command is the mother of all the user level sectioning commands.
212 % The part after the |*|, including the |*| is optional.
214 % \begin{description}
215 % \item[name:] e.g., 'subsection'
216 % \item[level:] a number, denoting depth of section -- e.g.,
217 % chapter = 0, section = 1, etc.
218 % \item[indent:] Indentation of heading from left margin
219 % \item[beforeskip:] Absolute value = skip to leave above the heading.
220 % If negative, then paragraph indent of text following
221 % heading is suppressed.
222 % \item[afterskip:] if positive, then skip to leave below heading, else
223 % negative of skip to leave to right of run-in heading.
224 % \item[style:] Commands to set style. Since June 1996 release the
225 % \emph{last} command in this argument may be a command
226 % such as |\MakeUppercase| or |\fbox| that takes an
227 % argument. The section heading will be supplied as the
228 % argument to this command. So setting |#6| to, say,
229 % |\bfseries\MakeUppercase| would produce bold,
230 % uppercase headings.
233 % If `|*|' is missing, then increment the counter. If it is
234 % present, then there should be no |[|\meta{altheading}|]| argument.
235 % The command uses the counter 'secnumdepth'. It contains a pointer
236 % to the highest section level that is to be numbered.
239 % The |\@startsection| command should be at the same or higher
240 % grouping level as the text that follows it. For example, you should
241 % \emph{not} do something like
243 % \def\foo{ \begingroup ...
248 % Pseudocode for the |\@startsection| command
249 % \begin{oldcomments}
250 % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} ==
252 % IF @noskipsec = T THEN \leavevmode FI
253 % % true if previous section had no body.
256 % \@tempskipa := BEFORESKIP
258 % IF \@tempskipa < 0 THEN \@tempskipa := -\@tempskipa
262 % THEN \everypar == null
263 % ELSE \addpenalty{\@secpenalty}
264 % \addvspace{\@tempskipa}
267 % THEN \@ssect{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
268 % ELSE \@dblarg{\@sect
269 % {NAME}{LEVEL}{INDENT}
270 % {BEFORESKIP}{AFTERSKIP}{STYLE}}
276 \def\@startsection#1#2#3#4#5#6{%
277 \if@noskipsec \leavevmode \fi
281 \ifdim \@tempskipa <\z@
282 \@tempskipa -\@tempskipa \@afterindentfalse
287 \addpenalty\@secpenalty\addvspace\@tempskipa
290 {\@ssect{#3}{#4}{#5}{#6}}%
291 {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
295 % \begin{macro}{\@sect}
296 % Pseudocode for the |\@sect| command
297 % \begin{oldcomments}
298 % \@sect{NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}[ARG1]{ARG2}
301 % IF LEVEL > \c@secnumdepth
302 % THEN \@svsec :=L null
303 % ELSE \refstepcounter{NAME}
304 % \@svsec :=L BEGIN \@seccntformat{#1}\relax END
309 % \@hangfrom{\hskip INDENT\@svsec}
310 % {\interlinepenalty 10000 ARG2\par}
313 % \addcontentsline{toc}{NAME}
314 % { IF LEVEL > \c@secnumdepth
315 % ELSE \protect\numberline{\theNAME} FI
317 % ELSE \@svsechd == BEGIN STYLE
318 % \hskip INDENT\@svsec
321 % \addcontentsline{toc}{NAME}
322 % { IF LEVEL > \c@secnumdepth
324 % \protect\numberline{\theNAME}
333 % \changes{LaTeX2.09}{1992/08/25}
334 % {(FMi) replaced explicit setting of \cs{@svsec}
335 % by call to \cs{@seccntformat}}
336 % \changes{LaTeX2.09}{1993/08/05}
337 % {(RmS) Made sure that \cs{protect} works correctly in
338 % expansion of \cs{the} counter}
339 % \changes{1.0h}{1994/11/04}
340 % {(ASAJ) Added \cs{protected@edef}.}
342 \def\@sect#1#2#3#4#5#6[#7]#8{%
343 \ifnum #2>\c@secnumdepth
348 % Since |\@seccntformat| might end with an improper |\hskip| which
349 % is scanning forward for |plus| or |minus| we end the definition
350 % of |\@svsec| with |\relax| as a precaution.
351 % \changes{1.0n}{1995/05/06}{Added \cs{relax} after
352 % \cs{@seccntformat} just in case}
354 \protected@edef\@svsec{\@seccntformat{#1}\relax}%
357 \ifdim \@tempskipa>\z@
360 % \changes{v1.0s}{1996/05/21}
361 % {(DPC) Moved brace to allow commands like
362 % \cs{MakeUppercase} in 6th argument.
363 % Changed \cs{par} to \cs{endgraf} to allow non-long
364 % commands. internal/2148}
365 % \changes{v1.0t}{1996/06/10}
366 % {(DPC) Changed \cs{endgraf} to \cs{@@par}}
367 % This |{| used to be after the argument to |\@hangfrom| but was moved
368 % here to allow commands such as |\MakeUppercase| to be used at the end
372 \@hangfrom{\hskip #3\relax\@svsec}%
373 \interlinepenalty \@M #8\@@par}%
375 \csname #1mark\endcsname{#7}%
376 \addcontentsline{toc}{#1}{%
377 \ifnum #2>\c@secnumdepth \else
378 \protect\numberline{\csname the#1\endcsname}%
383 % |\relax| added 2 May 90
384 % \changes{v1.0s}{1996/05/21}
385 % {(DPC) Added extra braces for internal/2148}
390 \csname #1mark\endcsname{#7}%
391 \addcontentsline{toc}{#1}{%
392 \ifnum #2>\c@secnumdepth \else
393 \protect\numberline{\csname the#1\endcsname}%
401 % \begin{macro}{\@xsect}%
402 % Pseudocode for the |\@xsect| command
403 % \begin{oldcomments}
404 % \@xsect{AFTERSKIP} ==
410 % ELSE @nobreak :=G F
412 % \everypar{ IF @noskipsec = T
413 % THEN @noskipsec :=G F
414 % \clubpenalty :=G 10000
420 % \hskip -AFTERSKIP \relax
421 % %% relax added 14 Jan 91
422 % ELSE \clubpenalty :=G \@clubpenalty
431 % \changes{0.0}{1992/08/19}
432 % {(RmS) corrected bug: stretch and shrink in argument to
433 % \cs{hskip} previously not negated}
437 \ifdim \@tempskipa>\z@
439 % Why not combine |\@sect| and |\@xsect| and save doing the
440 % same test twice? It is not possible to change this now as these
443 % This |\par| seems unnecessary.
450 % \changes{v1.0u}{1996/07/26}{Removed \cs{global} before
452 % \changes{v1.0x}{1996/10/23}{Replaced \cs{hskip...} with \cs{setbox...}
453 % as used in \cs{@afterheading}}
456 \global\@noskipsectrue
459 \global\@noskipsecfalse
460 {\setbox\z@\lastbox}%
462 \begingroup \@svsechd \endgroup
467 \clubpenalty \@clubpenalty
475 % \begin{macro}{\@seccntformat}
476 % This command formats the section number including the space
478 % \changes{1.0n}{1995/05/06}{Use \cs{quad} instead of \cs{hskip}}
480 \def\@seccntformat#1{\csname the#1\endcsname\quad}
484 % Pseudocode for the |\@ssect| command
485 % \begin{oldcomments}
486 % \@ssect{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}{ARG} ==
491 % \@hangfrom{\hskip INDENT}{\interlinepenalty 10000 ARG\par}
493 % ELSE \@svsechd == BEGIN STYLE
502 % Pseudocode for the |\@afterheading| command
503 % \begin{oldcomments}
507 % \everypar := BEGIN IF @nobreak = T
508 % THEN @nobreak :=G false
509 % \clubpenalty :=G 10000
510 % IF @afterindent = F
511 % THEN remove \lastbox
513 % ELSE \clubpenalty :=G \@clubpenalty
521 % \begin{macro}{\@ssect}
523 \def\@ssect#1#2#3#4#5{%
525 \ifdim \@tempskipa>\z@
528 % \changes{v1.0s}{1996/05/21}
529 % {(DPC) Moved brace to allow commands like
530 % \cs{MakeUppercase} in 4th argument.
531 % Changed \cs{par} to \cs{endgraf} to allow non-long
532 % commands. internal/2148}
533 % \changes{v1.0t}{1996/06/10}
534 % {(DPC) Changed \cs{endgraf} to \cs{@@par}}
535 % This |{| used to be after the argument to |\@hangfrom| but was moved
536 % here to allow commands such as |\MakeUppercase| to be used at the end
540 \@hangfrom{\hskip #1}%
541 \interlinepenalty \@M #5\@@par}%
545 % \changes{v1.0s}{1996/05/21}
546 % {(DPC) Added extra braces for internal/2148}
548 \def\@svsechd{#4{\hskip #1\relax #5}}%
554 % \begin{macro}{\if@afterindent}
555 % \begin{macro}{\@afterindenttrue}
557 \newif\if@afterindent \@afterindenttrue
559 % \end{macro}\end{macro}
561 % \begin{macro}{\@afterheading}
562 % \changes{v1.0v}{1996/08/02}{Removed \cs{global}
563 % before \cs{@nobreak...}}
565 % This hook is used in setting up custom-built headings in classes.dtx.
574 \if@afterindent \else
575 {\setbox\z@\lastbox}%
578 \clubpenalty \@clubpenalty
585 % \begin{macro}{\@hangfrom}
587 % |\@hangfrom{|\meta{text}|}| : Puts \meta{text} in a box, and makes a
588 % hanging indentation of the following material up to the first
589 % |\par|. Should be used in vertical mode.
591 % \changes{v1.0a}{1994/03/07}{(DPC)Extra groups for colour}
593 \def\@hangfrom#1{\setbox\@tempboxa\hbox{{#1}}%
594 \hangindent \wd\@tempboxa\noindent\box\@tempboxa}
598 % \begin{macro}{\c@secnumdepth}
599 % \begin{macro}{\c@tocdepth}
601 \newcount\c@secnumdepth
604 % \end{macro}\end{macro}
606 % \begin{macro}{\secdef}
608 % |\secdef{|\meta{unstarcmds}|}{|\meta{unstarcmds}|}{|%
609 % \meta{starcmds}|}|\\
610 % When defining a |\chapter| or |\section| command without using
611 % |\@startsection|, you can use |\secdef| as follows:
613 % \item |\def\chapter{| \ldots |\secdef|
614 % |\|\meta{starcmd} |\|\meta{unstarcmd} |}|
615 % \item |\def\|\meta{starcmd}|[#1]#2{| \ldots |}|
616 % |%| Command to define |\chapter[|\ldots|]{|\ldots|}|
617 % \item |\def\|\meta{unstarcmd}|#1{| \ldots |}|
618 % |%| Command to define |\chapter*{|\ldots|}|
622 \def\secdef#1#2{\@ifstar{#2}{\@dblarg{#1}}}
626 % \subsubsection{Initializations}
627 % \begin{macro}{\sectionmark}
628 % \begin{macro}{\subsectionmark}
629 % \begin{macro}{\subsubsectionmark}
630 % \begin{macro}{\paragraphmark}
631 % \begin{macro}{\subparagraphmark}
632 % \changes{v1.0q}{1995/10/25}{Use \cs{let} not \cs{def} to save space.}
634 \let\sectionmark\@gobble
635 \let\subsectionmark\@gobble
636 \let\subsubsectionmark\@gobble
637 \let\paragraphmark\@gobble
638 \let\subparagraphmark\@gobble
650 % \subsection{Table of Contents etc.}
652 % \subsubsection{Convention}
653 % |\tf@|\meta{foo} = file number for output for table foo.
654 % The file is opened only if |@filesw| = |true|.
656 % \subsubsection{Commands}
659 % A |\l@|\meta{type}|{|\meta{entry}|}{|\meta{page}|}| Macro needs to
660 % defined by document style for making an entry of type \meta{type}
661 % in a table of contents, etc. E.g., the document style
662 % should define |\l@chapter|, |\l@section|, etc.
664 % \textbf{Note:} When the |\protect| command is
665 % used in the \meta{entry} or \meta{text} of one of the commands
666 % below, it causes the following control sequence to be written on
667 % the file without being expanded. The sequence will be expanded
668 % when the table of contents entry is processed.
670 % \textbf{Surprise:} Inside an |\addcontentsline| or |\addtocontents|
671 % command argument, the commands: |\index|, |\glossary|, and |\label|
672 % are no-ops . This could cause a problem if the user puts an
673 % |\index| or |\label| into one of the commands he writes, or into the
674 % optional `short version' argument of a |\section| or |\caption|
677 % \begin{macro}{\@starttoc}
678 % The |\@starttoc|\marg{ext} command is used to define the commands:\\
679 % |\tableofcontents|, |\listoffigures|, etc.
682 % |\@starttoc{lof}| is used in |\listoffigures|. This command
683 % reads the |.|\meta{ext} file and sets up to write the new
684 % |.|\meta{ext} file.
686 % \begin{oldcomments}
691 % read file \jobname.EXT
693 % THEN open \jobname.EXT as file \tf@EXT
695 % @nobreak :=G FALSE %% added 24 May 89
700 % \changes{0.0}{1992/01/14}{(RmS) added \cs{immediate} to \cs{openout}
701 % as all \cs{write} commands
702 % are also executed \cs{immediate}}
703 % \changes{v1.0u}{1996/07/26}{removed \cs{global}
704 % before \cs{@nobreak...}}
709 \@input{\jobname.#1}%
711 \expandafter\newwrite\csname tf@#1\endcsname
712 \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
719 % \begin{macro}{\addcontentsline}
720 % The |\addcontentsline{|\meta{table}|}{|\meta{type}|}{|%
721 % \meta{entry}|}| command allows the user to add
722 % his/her own entry to a table of contents, etc. The command adds the
723 % entry |\contentsline{|\meta{type}|}{|\meta{entry}|}{|\meta{page}|}|
724 % to the |.|\meta{table} file.
726 % This macro is implemented as an application of |\addtocontents|.
727 % Note that |\thepage| is not expandable during |\protected@write|
728 % therefore one gets the page number at the time of the |\shipout|.
730 % \changes{v1.0c}{1994/05/20}{Correct setting of \cs{protect}.}
731 % \changes{v1.0j}{1995/04/23}{Use \cs{contentsline} internally.}
732 % \changes{v1.0h}{1994/11/04}{Added \cs{protected@write} to
733 % \cs{addcontentsline}. ASAJ.}
735 \def\addcontentsline#1#2#3{%
736 \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}}
740 % \changes{v1.0c}{1994/05/20}{Correct setting of \cs{protect}.}
741 % \changes{v1.0h}{1994/11/04}{Added \cs{protected@write} to
742 % \cs{addtocontents}. ASAJ.}
743 % \begin{macro}{\addtocontents}
745 % The |\addtocontents{|\meta{table}|}{|\meta{text}|}| command
746 % adds \meta{text} to the |.|\meta{table} file, with no
750 \long\def\addtocontents#1#2{%
751 \protected@write\@auxout
752 {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}%
753 {\string\@writefile{#1}{#2}}}
757 % \begin{macro}{\contentsline}
758 % The |\contentsline{|\meta{type}|}{|\meta{entry}|}{|\meta{page}|}|
759 % macro produces a \meta{type} entry in a table of contents, etc.
760 % It will appear in the |.toc| or other file. For example,
761 % The entry for subsection 1.4.3 in the table of contents for
762 % example, might be produced by:
765 % \contentsline{subsection}
766 % {\makebox{30pt}[r]{1.4.3} Gnats and Gnus}{22}
769 % The |\protect| command causes command sequences to be written
770 % without expanding them.
773 \def\contentsline#1{\csname l@#1\endcsname}
777 % |\@dottedtocline{|\meta{level}|}{|\meta{indent}|}{|\meta{numwidth}%
778 % |}{|\meta{title}|}{|\meta{page}|}|:
779 % Macro to produce a table of contents line with the following
781 % \begin{description}
782 % \item[level] If \meta{level} $>$ |\c@tocdepth|, then no line
784 % \item[indent] Total indentation from the left margin.
785 % \item[numwidth] Width of box for number if the \meta{title} has a
786 % |\numberline| command.
787 % As of 25 Jan 1988, this is also the amount of extra
788 % indentation added to second and later lines of a
789 % multiple line entry.
790 % \item[title] Contents of entry.
791 % \item[page] Page number.
794 % Uses the following parameters, which must be set by the document
795 % style. They should be defined with |\def|'s.
796 % \begin{description}
797 % \item[|\@pnumwidth|] Width of box in which page number is set.
798 % \item[|\@tocrmarg|] Right margin indentation for all but last line
799 % of multiple-line entries.
800 % \item[|\@dotsep|] Separation between dots, in mu units.
801 % Should be |\def|'d to a number like 2 or 1.7
804 % \begin{macro}{\@dottedtocline}
805 % \changes{LaTeX2.09}{1991/09/29}
806 % {(RmS) added \cs{reset@font} for page number}
807 % \changes{v1.0e}{1994/05/25}{Put braces around argument 4
808 % (the actual toc entry) to avoid font (and possibly other)
809 % changes leaking out to the leaders.}
810 % \changes{v1.0g}{1994/10/18}{Added \cs{normalcolor} for page number}
811 % \changes{v1.0z}{1996/12/20}{Added \cs{nobreak} for latex/2343}
813 \def\@dottedtocline#1#2#3#4#5{%
814 \ifnum #1>\c@tocdepth \else
815 \vskip \z@ \@plus.2\p@
816 {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
817 \parindent #2\relax\@afterindenttrue
822 % \changes{v1.0z}{1996/12/20}{Added \cs{nobreak} for latex/2343}
824 \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
828 % If a document uses fonts other than computer modern, the use of a
829 % dot from math can be very disturbing despite the fact that this
830 % might be the only place in a document that then uses computer
832 % Therefore we surround the dot with an |\hbox| to escape to the
833 % surrounding text font.
834 % \changes{v1.0k}{1995/04/25}{Added \cs{hbox} around dots.}
835 % \changes{v1.0l}{1995/05/02}{Don't reset to \cs{rmfamily}}
837 \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
840 \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
846 % \textbf{Note:} |\nobreak|'s added 7 Jan 86 to prevent bad line break
847 % that left the page number dangling by itself at left edge of a new
850 % Changed 25 Jan 88 to use |\leftskip| instead of |\hangindent| so
851 % leaders of multiple-line contents entries would line up properly.
852 % \begin{macro}{\numberline}
853 % |\numberline{|\meta{number}|}|: For use in a |\contentsline| command.
854 % It puts \meta{number} flushleft in a box of width |\@tempdima|
856 % Jan 88 change, it also added |\@tempdima| to the hanging
860 \def\numberline#1{\hb@xt@\@tempdima{#1\hfil}}