I have read that line spacing in a LaTeX document is controlled by the \baselinestretch macro, for example here. Setting \baselinestretch in the preamble does in fact change line spacing. When I redefine \baselinestretch inside the document however, the line spacing is unaffected.
It is clearly possible to change the line spacing mid-document, as demonstrated by the setspace package, but why does simply redefining \baselinestretch not do this?
As an example, I would expect the following code to have one paragraph of lorem ipsum at 1.5 spacing, followed by the same paragraph at 1.0 spacing, but both come out as 1.5 spaced.
\documentclass{article}
\usepackage{lipsum}
\def\baselinestretch{1.5}
\begin{document}
\lipsum[1]
\hrule
\def\baselinestretch{1}
\lipsum[1]
\end{document}
\linespread{1.5}\selectfont– egreg Apr 28 '15 at 22:45\linespreaddo which makes it better to use? – Brian Apr 28 '15 at 22:46\renewcommand(or especially looks better than dropping down to the primitive\def:-) – David Carlisle Apr 28 '15 at 23:03