How can I learn the horizontal distance between the chapter number and the chapter title both in ToC and the body text where I use \documentclass[12pt,reqno]{book}. Which keys hold these values?
- 7,206
- 2,437
1 Answers
book (like report) sets the ToC entry for a chapter using \l@chapter. This is what it looks like:
\newcommand*\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\addpenalty{-\@highpenalty}%
\vskip 1.0em \@plus\p@
\setlength\@tempdima{1.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \bfseries
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\penalty\@highpenalty
\endgroup
\fi}
The specific thing to note here is the value of \@tempdima, set to 1.5em. The first argument of \l@chapter (or #1) uses \numberline, which is defined in the kernel latex.ltx as:
\def\numberline#1{\hb@xt@\@tempdima{#1\hfil}}
creating a box of width \@tempdima and left-aligning its contents. Note that this 1.5em is based on the prevailing font at the time of setting (\normalsize\bfseries by default).
The (numbered) chapter head in book (and report) is set via the macro \@makechapterhead. Here's a take on that:
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\huge\bfseries \@chapapp\space \thechapter
\par\nobreak
\vskip 20\p@
\fi
\fi
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
The space between the word Chapter (or \@chapapp in the definition above) and the number (\thechapter in the definition above) is a regular \space or \.
In both instances, if you want to change these defaults, you have at least 3 options:
Use a package that allows you to modify this content (like
titlesecortocloftor the like);Copy the entire definition and change it to your liking (making
\newcommand->\renewcommand);Use
etoolboxto patch the command. For example,\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox \makeatletter \patchcmd{\l@chapter}% <cmd> {1.5em}% <search> {5.5em}% <replace> {}{}% <success><failure> \makeatotherwould use a
5.5emwide box for setting the chapter number in the ToC, increasing the gap between the number and title. Also\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox \makeatletter \patchcmd{\@makechapterhead}% <cmd> {\space}% <search> {\hspace*{100pt}\ignorespaces}% <replace> {}{}% <success><failure> \makeatotherwould insert a
100ptgap between the wordChapter(or whatever\@chapappis) and the number.\ignorespaceswould just remove any trailing spaces left inside the original definition of\@makechapterhead.
- 603,163