[Tex/LaTex] Set line spacing to point size

line-spacing

These are the recommendations of the setspace package:

If a different spacing is required [than \singlespacing,
\onehalfspacing, or \doublespacing] then the
\setstretch{baselinestretch} command can be used in the preamble to
set the baselinestretch appropriately.

\baselinestretch scales the value of \baselineskip, and it is generally recommended not to change the value of \baselineskip itself.

So say that I need to set my document with an 11pt font with 12pt line spacing. Rather than just telling LaTeX to use 12pt spacing, the "recommended" way is to perform some math to figure out the appropriate factor of \baselineskip, like this:

\documentclass[11pt]{article}
\usepackage{setspace}
    \setstretch{.88235}
\begin{document}
\the\baselineskip % gives 12.00002pt
\end{document}

Clearly there must be a better way? I'm reminded of the \fontsize{size}{skip} command, where you could just say \fontsize{11}{12}, but as far as I know, this is intended for temporary changes to the font size and line spacing, and not to be used as a preamble setting for the entire document.

Best Answer

Look what the standard classes do here, in size11.clo you see

\renewcommand\normalsize{%
   \@setfontsize\normalsize\@xipt{13.6}%
   \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI}

which sets up \normalsize to be 10.95pt on 13.6pt, if you want 11bp on 12bp just redefine it to be

\renewcommand\normalsize{%
   \@setfontsize\normalsize{11bp}{12bp}%
   \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI}

and any other adjustments you need.