Here is some information regarding \linespread, taken verbatim from Why doesn’t \linespread work?:
The command \linespread{<factor>} is supposed to multiply the current \baselineskip by <factor>; but, to all appearances, it doesn’t.
In fact, the command is equivalent to \renewcommand{\baselinestretch}{<factor>}: written that way, it somehow feels less surprising that the effect isn’t immediate. The \baselinestretch factor is only used when a font is selected; a mere change of \baselinestretch doesn’t change the font, any more than does the command \fontsize{<size>}{<baselineskip>} — you have to follow either command with \selectfont. So:
\fontsize{10}{12}%
\selectfont
or:
\linespread{1.2}%
\selectfont
Of course, a package such as setspace, whose job is to manage the baseline, will deal with all this stuff — see “managing double-spaced documents”. If you want to avoid setspace, beware the behaviour of \linespread changes within a paragraph: read “\baselineskip is a paragraph parameter”.
The last comment refers to the fact that TeX actually sets lines/sentences by first assembling all the text of a paragraph and then breaking it into lines. So, sometimes, changing things like \baselineskip or \linespread only has effect for a paragraph an not a line.
In specific "answer" to your bullets:
- No,
\linespread takes any factor, not just 1.6 or 1.3 or 1. I'm not sure what the benefit would be in using very small or negative values for \linespread.
- True.
- Or you can use grouping via braces
{ ... } or \begingroup ... \endgroup.
Regarding packages in general: It is actually a good idea to use them (if allowed), since they provide interfaces to changing things without having to worry about the nitty-gritty. Moreover, it leaves your code clean and readable.
Finally, I would suggest reading through setspace.sty and see how much is done in the background to maintain consistency in the document. Also see Why is the \linespread factor as it is? for more on the intricacies associated with \linespread in different document font sizes.
setspacethat does much more than simply modifying the interline skip. But please, don't enlarge your interline skip. – egreg Jun 25 '12 at 17:20:)– Will Robertson Jun 27 '12 at 02:04