This page covers how to widen or tighten the line spacing (the *leading*) of your body text. The short version: when you need something like “double spacing” for a paper or thesis, reach for the **setspace package** and its \onehalfspacing / \doublespacing rather than fiddling with lengths yourself — it is easier and safer. We work up to it through the underlying machinery (\baselineskip and \baselinestretch), the low-level \linespread, and finally setspace’s clean interface.
The model: baselineskip and baselinestretch
Line spacing is really the distance from one line’s baseline (the invisible line the letters sit on) to the next line’s baseline. That distance is held in a length called \baselineskip, which LaTeX sets automatically for the current font size. By default **\baselineskip is about 1.2 times the font size** (so 12pt for a 10pt font). In other words, there is already a comfortable gap built in — the lines are not jammed together.
The multiplier applied to \baselineskip is \baselinestretch. It is not a length but a command (a numeric macro), and its default value is 1.0. The effective leading is \baselineskip × \baselinestretch. There is one catch, though: **changing \baselinestretch only takes effect at the next font change.** Setting it in the preamble is fine — font selection happens at the start of the document — but changing it partway through the body needs care (see below).
The low-level \linespread and its pitfall
The kernel’s low-level command is **\linespread{factor}**. Internally it is literally \renewcommand{\baselinestretch}{factor} — it just rewrites \baselinestretch. So it inherits the same property: it does nothing until the next font change. Placed in the preamble it affects the whole document, but written in the body it needs a following \selectfont (the command that re-selects the current font) to take hold.
% プリアンブルに置けば文書全体に効く
\linespread{1.3} % 約 1.5 倍相当の行間
% 本文の途中で変えるなら \selectfont が要る
{\linespread{1.6}\selectfont
この段落だけ行間を広げる。\par}There is a second pitfall: **\linespread{1.5} does not give “1.5× line spacing.”** The factor multiplies \baselineskip (which is already about 1.2× the font size), so the apparent leading becomes font-size × 1.2 × factor. The commonly cited rule of thumb is that so-called double spacing (leading about 2× the font size) needs a factor near 1.6, and one-and-a-half spacing needs about 1.3 (since 1.2 × 1.6 ≈ 1.9 and 1.2 × 1.3 ≈ 1.56). This gap between “the factor” and “the visible spacing” is the main reason \linespread is confusing to use directly.
The recommended way: the setspace package
The standard solution is the **setspace** package (by Geoffrey Tobin and Robin Fairbairns; now maintained by David Carlisle and others). Once you \usepackage{setspace}, you get declarations that switch the line spacing. Single spacing is the default, and these three commands cover most needs:
\singlespacing** — single spacing (the normal leading).\onehalfspacing** — one-and-a-half spacing.\doublespacing** — double spacing.
One line in the preamble applies to the whole document. For an arbitrary factor, use **\setstretch{1.6}**, which sets the equivalent of \baselinestretch directly (\setstretch{1} is single, \setstretch{1.5} is roughly one-and-a-half, \setstretch{2} is roughly double).
\documentclass[12pt]{article}
\usepackage{setspace}
\doublespacing % 文書全体をダブルスペースに
% \onehalfspacing % 1.5 行送りにするならこちら
% \setstretch{1.6} % 任意の倍率
\begin{document}
本文がダブルスペースで組まれます。
\end{document}The factor setspace applies is not hard-coded like \linespread — it is adjusted to the base font size (10pt / 11pt / 12pt). The table below shows the \baselinestretch value that \onehalfspacing and \doublespacing set internally (these values were tuned for the Computer Modern fonts, and follow the size you give as a class option):
| Base size | \onehalfspacing | \doublespacing |
|---|---|---|
10pt | 1.25 | 1.667 |
11pt | 1.213 | 1.618 |
12pt | 1.241 | 1.655 |
The takeaway: **\doublespacing does not literally double \baselineskip.** The factor is roughly 1.6–1.7, which makes the *visible* leading about twice the font size. When a thesis rule says “double-spaced,” it normally means exactly this \doublespacing (leading about 2× the character size), not a literal doubling of \baselineskip.
Why setspace: footnotes, captions and floats stay single
The main reason to prefer setspace over \linespread is that it does not stretch the parts that should not be stretched. A raw \linespread (i.e. \baselinestretch) inflates the body, the footnotes, and figure/table captions all together — but by convention, footnotes, captions, and the space around displayed equations should stay single-spaced.
setspace handles this for you: its documentation states plainly that “double spacing is turned off within footnotes and floats (figures and tables).” Internally it resets \baselinestretch to single inside footnote text (\@footnotetext) and floats (\@xfloat), and provides a single-spaced quote environment. So the body is widened while footnotes and captions automatically stay tight.
Changing spacing for one region
To change the spacing for only part of a document, either use a declaration inside a { ... } group, or use one of setspace’s environments. Matching the declarations, there are **singlespace, onehalfspace, and doublespace environments for a local region, plus a spacing environment** (\begin{spacing}{2.5}) for an arbitrary factor. Note that onehalfspace and doublespace are meant to *increase* spacing, so using onehalfspace inside an already double-spaced document is not intended.
Here is a worked example: the body is double-spaced, while a long quotation is brought back to single spacing.
\documentclass[12pt]{article}
\usepackage{setspace}
\doublespacing % 本文はダブルスペース
\begin{document}
本文はダブルスペースで組まれる。続いて引用を置く。
\begin{singlespace} % この引用だけ単独スペースに
ここは長めの引用なので、行間を詰めて単独スペースで組む。
引用ブロックは本文より行間を狭くするのが一般的。
\end{singlespace}
引用のあとは、また本文のダブルスペースに戻る。
\end{document}A caution: avoid setting \baselineskip itself directly to tighten lines. Any font-size change re-establishes \baselineskip, wiping out your setting. Driving the spacing through \baselinestretch / setspace as a multiplier is safer, because it follows along when the size changes.