Why is the linespread factor as it is?

With the LaTeX standard classes (article, book, and report) and no class options added, \normalsize results in a font size (size of the largest glyphs in a font -- typically, braces) of 10pt and a \baselineskip (vertical skip between the base lines of two successive lines of type) of 12pt. The ratio between font size and \baselineskip is 1.2.

The linespread command (which must be issued in the document preamble) may be used to change the \baselineskip without changing the font size.

A possible definition of \onehalfspacing and \doublespacing is that the ratio between font size and \baselineskip should be 1.5 resp. 2. Because the "basic" ratio for 10pt is 1.2, a multiplier of 1.25 and (approximately) 1.667 has to be applied -- and this is basically what the setspace package does. ("Basically" because it retains the ratio of 1.2 for footnotes and the like.)

The statement "For double-spacing you have to use 1.6 and for one-and-a-half spacing 1.3" amounts to either a rounding error, or being confused, or both.


Extending lockstep's answer to other document class options (like 11pt and 12pt) gives rise to the seemingly strange scaling factors used by the setspace package:

  • 10pt (already discussed)

    setspace defines the scaling factor to be 1.25 for \onehalfspacing and 1.667 for \doublespacing, since the "basic" ratio is 1.2 (\normalfont has a \baselineskip of 12pt; see size10.clo)

  • 11pt

    setspace defines the scaling factor to be 1.213 for \onehalfspacing and 1.618 for \doublespacing, since the "basic" ratio is 1.236 (\normalfont has a \baselineskip of 13.6pt; see size11.clo)

  • 12pt

    setspace defines the scaling factor to be 1.241 for \onehalfspacing and 1.655 for \doublespacing, since the "basic" ratio is 1.208 (\normalfont has a \baselineskip of 14.5pt; see size12.clo)

As such, in the following hypothetical situation, a scaling factor of 2.4 (that is, \setstretch{2.4}) would provide "triple spacing" in a document with normal font size of 16pt and \baselineskip of 20pt.

All scaling factors are rounded to 3 digits after the decimal.


I recently tried to customize the line spacing in a ctex document and this post served as one of my references. During my research, however, I found a mistake made by the setspace package.

To further extend Werner’s answer, I want to point out that setspace has set both factors for an 11pt article wrong, unfortunately.

We find in size11.clo that \normalsize is defined by

\@setfontsize\normalsize\@xipt{13.6}%

The problem is that the “basic” ratio in 11pt article is not 13.6/11 but rather 13.6/10.95 for historical reasons. This implies that for \onehalfspacing, the factor should be around 1.2077205882, not 1.213; and for \doublespacing, the factor should be around 1.6102941176, not 1.618.

I have no idea why article inconsistently sets the body text leading/fontsize basic ratio to be 1.2, 1.242 (not 1.236) and 1.208 for 10pt, 11pt and 12pt, respectively.

Tags:

Line Spacing