Set line spacing to point size

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.

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.

• This is the simplest way? It baffles my why there is such a simple \fontsize{size}{skip} command for a temporary font size change, but nothing like that for a permanent change. Aug 28 '15 at 12:57
• @Sverre \fontsize is permanent if you do not enclose it in a group, but setting \normalsize is, as you see, more than just setting the default font and baselineskip, it makes sense to specify other dependent lengths at the same time. Of course you do not have to do that but then when some figure or whatever issues \normalsize to get into a standard state, less things are reset. Aug 28 '15 at 13:00
• Gotcha! So all those other settings in size11.clo (those with displayshortskip etc.) should not be affected by changing the linespacing? Aug 28 '15 at 13:06
• @Sverre they would not be affected if you just set baselineskip, so if you were in a \large area and then do \fontsize{11pt}{12pt}\selectfont... the text would go back to 11pt but any equations would have lots of space, \normalsize tries to ensure everything put back to normal. Aug 28 '15 at 13:10
• @Sverre even if they don't care, you have the option of giving them what they asked for:-) Aug 28 '15 at 13:31