[Tex/LaTex] How does \footnotesize map to \fontsize{size}{baselineskip}

fontsize

We can change font size using {\fontsize{size}{baselineskip} \selectfont .....} with the anyfontsize package. I want to know what size and baselineskip values the following commands result in:

  1. \scriptsize

  2. \footnotesize

Best Answer

This depends on the default (or normal) font size. For example, specifying

\documentclass[10pt]{article}

leaves \normalsize at 10pt, yielding

  • \scriptsize as 7pt (actually \@viipt) with a \baselineskip of 8pt (actually \@viiipt); and
  • \footnotesize as 8pt (actually \@viiipt) with a \baselineskip of 9.5pt.

From size10.clo:

\newcommand\footnotesize{%
   \@setfontsize\footnotesize\@viiipt{9.5}%
   \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus\p@
   \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 3\p@ \@plus\p@ \@minus\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
\newcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}

The setting

\documentclass[11pt]{article}

leaves \normalsize at 11pt, yielding

  • \scriptsize as 8pt (actually \@viiipt) with a \baselineskip of 9.5pt; and
  • \footnotesize as 9pt (actually \@ixpt) with a \baselineskip of 11pt.

From size11.clo:

\newcommand\footnotesize{%
   \@setfontsize\footnotesize\@ixpt{11}%
   \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus\p@
   \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 4\p@ \@plus2\p@ \@minus2\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
\newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}

The setting

\documentclass[12pt]{article}

leaves \normalsize at 12pt, yielding

  • \scriptsize as 8pt (actually \@viiipt) with a \baselineskip of 9.5pt; and
  • \footnotesize as 10pt (actually \@xpt) with a \baselineskip of 12pt.

From size12.clo:

\newcommand\footnotesize{%
   \@setfontsize\footnotesize\@xpt\@xiipt
   \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 6\p@ \@plus2\p@ \@minus2\p@
               \parsep 3\p@ \@plus2\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
\newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}

Here's a summary table, capturing the <size> and <baselineskip> for the standard document classes across all the basic font settings, expanding that of What point (pt) font size are \Large, etc.?:

Command                  10pt           11pt           12pt
                    <size> <bskip> <size> <bskip> <size> <bskip>
\tiny                5        6      6       7      6       7
\scriptsize          7        8      8       9.5    8       9.5
\footnotesize        8        9.5    9      11     10      12
\small               9       11     10      12     10.95   13.6
\normalsize          10      12     10.95   13.6   12      14.5
\large               12      14     12      14     14.4    18
\Large               14.4    18     14.4    18     17.28   22
\LARGE               17.28   22     17.28   22     20.74   25
\huge                20.74   25     20.74   25     24.88   30
\Huge                24.88   30     24.88   30     24.88   30

Other classes (especially the major document classes such as KOMA and Memoir) may have different values.

Related Question