Line spacing (setspace)

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.

latex
% プリアンブルに置けば文書全体に効く
\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).

document.tex
\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
10pt1.251.667
11pt1.2131.618
12pt1.2411.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.

document.tex
\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.