行間(setspace)

本文の行間(行送り=leading)を広げたり狭めたりする方法をまとめます。結論から言えば、論文や学位論文で「ダブルスペース」にしたいといった用途には、自分で長さをいじるより **setspace パッケージ** の \onehalfspacing\doublespacing を使うのが簡単で安全です。ここでは、その裏にある \baselineskip\baselinestretch という仕組み、低レベルの \linespread、そして setspace のきれいな指定方法までを順に見ていきます。

行間のしくみ:baselineskip と baselinestretch

行間の正体は、連続する行の ベースライン(文字の下端がそろう基準線)から次のベースラインまでの距離 です。これを保持しているのが \baselineskip という長さで、フォントサイズに応じて自動的に設定されます。標準では **\baselineskip はフォントサイズの約 1.2 倍**(10pt なら 12pt 相当)です。つまり「行間ゼロ」ではなく、最初からほどよい余裕が入っています。

この \baselineskip に掛ける 倍率\baselinestretch です。これは長さではなく 命令(数値マクロ) で、既定値は 1.0。実際の行送りは「\baselineskip × \baselinestretch」で決まります。ただし厄介な点が一つあり、**\baselinestretch を変えても、その値はフォントが切り替わった瞬間に初めて反映されます**。プリアンブルで設定すれば文書の先頭でフォント選択が起こるので問題ありませんが、本文の途中で変えるときは注意が要ります(後述)。

低レベルの \linespread とその落とし穴

カーネルが用意している低レベルの命令が **\linespread{倍率}** です。これは中身としては \renewcommand{\baselinestretch}{倍率} そのもので、\baselinestretch を書き換えているだけです。したがって 同じく「フォントが切り替わるまで効かない」 という性質を引き継ぎます。プリアンブルに置けば文書全体に効きますが、本文の途中に書いた場合は、効かせたい範囲のあとで \selectfont(フォントを選び直す命令)を呼ぶ必要があります。

latex
% プリアンブルに置けば文書全体に効く
\linespread{1.3}   % 約 1.5 倍相当の行間

% 本文の途中で変えるなら \selectfont が要る
{\linespread{1.6}\selectfont
  この段落だけ行間を広げる。\par}

もう一つ落とし穴があります。**\linespread{1.5} は「1.5 倍の行間」ではありません。** 倍率は \baselineskip(フォントサイズの約 1.2 倍)に掛かるので、見かけ上の行送りは「フォントサイズ × 1.2 × 倍率」になります。広く言われる目安では、いわゆる ダブルスペース(行送りがフォントサイズの約 2 倍)には倍率 1.6 前後、1.5 行送りには 1.3 前後が必要です(1.2 × 1.6 ≈ 1.9、1.2 × 1.3 ≈ 1.56)。この「倍率と実際の行間がずれる」ことが、\linespread を直接使うときに混乱しやすい最大の理由です。

おすすめは setspace パッケージ

そこで定番が **setspace** パッケージです(Geoffrey Tobin・Robin Fairbairns 作、現在は David Carlisle ほかが保守)。\usepackage{setspace} を読み込むと、行間を 宣言 で切り替える命令が使えます。単独スペースが既定 で、次の三つを覚えれば十分です。

  • \singlespacing** — 単独スペース(標準の行間)。
  • \onehalfspacing** — 1.5 行送り。
  • \doublespacing** — ダブルスペース(2 行送り相当)。

プリアンブルに一つ書けば文書全体に効きます。任意の倍率がほしいときは **\setstretch{1.6}** を使い、\baselinestretch に相当する値を直接指定します(\setstretch{1} が単独、\setstretch{1.5} が約 1.5 行、\setstretch{2} が約 2 行)。

document.tex
\documentclass[12pt]{article}
\usepackage{setspace}
\doublespacing            % 文書全体をダブルスペースに
% \onehalfspacing         % 1.5 行送りにするならこちら
% \setstretch{1.6}        % 任意の倍率
\begin{document}
本文がダブルスペースで組まれます。
\end{document}

setspace が行間に掛ける倍率は、\linespread のような決め打ちではなく、本文のフォントサイズ(10pt / 11pt / 12pt)に応じて調整 されます。下表は \onehalfspacing\doublespacing が内部で設定する \baselinestretch の値です(Computer Modern 系フォントに合わせて調整された値で、book などのクラスオプションで指定したサイズに連動します)。

本文サイズ\onehalfspacing\doublespacing
10pt1.251.667
11pt1.2131.618
12pt1.2411.655

ここで分かるのは、**\doublespacing は「\baselineskip をきっちり 2 倍にする」ものではない** ということです。倍率はおおよそ 1.6〜1.7 で、これで見かけの行送りがフォントサイズの約 2 倍になります。学位論文の規定でいう「ダブルスペース」は、ふつうこの \doublespacing(行送りが文字サイズの約 2 倍)の意味で、文字どおり \baselineskip を 2 倍にしたものではありません。

setspace の利点:脚注・キャプション・図表はそのまま

setspace を \linespread より勧める最大の理由は、広げてはいけない部分まで広げてしまわない ことです。生の \linespread(=\baselinestretch)は本文も脚注も図表のキャプションもいっしょに引き伸ばしてしまいますが、組版の慣習では、脚注・キャプション・別行立て数式まわりなどは 単独スペースのまま にすべきです。

setspace はそこに手を入れていて、ドキュメントには「ダブルスペースは脚注とフロート(図・表)の中では無効になる」と明記されています。内部的には脚注テキスト(\@footnotetext)やフロート(\@xfloat)の中で \baselinestretch を単独スペースに戻し、単独スペースの引用(quote)環境も用意しています。だから本文だけを広げ、脚注やキャプションは自動的に詰まったまま保てます。

一部分だけ行間を変える

文書の一部だけ行間を変えたいときは、宣言を { ... } で囲んでローカルに使うか、setspace が用意する 環境 を使います。\singlespacing などの宣言に対応して、局所領域用の **singlespaceonehalfspacedoublespace 環境 があり、任意の倍率には spacing 環境**(\begin{spacing}{2.5})が使えます。onehalfspacedoublespace は「行間を広げる」用途なので、すでにダブルスペースの文書の中で onehalfspace を使うのは想定外です。

次は、本文をダブルスペースにしつつ、長めの引用だけを単独スペースに戻す例です。

document.tex
\documentclass[12pt]{article}
\usepackage{setspace}
\doublespacing                 % 本文はダブルスペース
\begin{document}
本文はダブルスペースで組まれる。続いて引用を置く。

\begin{singlespace}            % この引用だけ単独スペースに
  ここは長めの引用なので、行間を詰めて単独スペースで組む。
  引用ブロックは本文より行間を狭くするのが一般的。
\end{singlespace}

引用のあとは、また本文のダブルスペースに戻る。
\end{document}

なお、行間を「狭める」目的で \baselineskip 自体を直接いじるのは避けたほうが無難です。フォントサイズを変えると \baselineskip は再設定されてしまい、せっかくの指定が失われます。行間は \baselinestretch/setspace を通して 倍率で 操作するのが、サイズ変更にも追従して安全です。