文字寄せ(中央・左右・両端揃え)

LaTeX の本文は、左右の余白にぴったりそろう 両端揃え が初期状態です。これを中央寄せ・左寄せ・右寄せに変えるには、\centering などの 宣言 と、center などの 環境 という二つの道があります。両者は見た目こそ似ていますが、前後の空きやハイフネーションの扱いが違い、その差を知らないと図表の周りに余計な空白が生まれます。このページではその使い分けを整理します。

初期状態は両端揃え

ことわっておくと、LaTeX は何も指定しなければ各段落を 両端揃え(justified) に組みます。行の右端をそろえるために、LaTeX は単語と単語の間(インターワードスペース)を少しずつ伸縮させ、必要なら単語の途中で ハイフネーション して行を折ります。新聞や書籍の本文と同じ、もっとも目立たない組み方です。

タイトル・見出し・図表のキャプション・短い引用などでは、両端揃えをやめて別の寄せ方にしたくなります。寄せ方を変える手段は、本質的には次の二系統だけです。宣言\centering / \raggedright / \raggedleft)と 環境center / flushleft / flushright)。以降ではまずこの二つを順に見て、最後に両者の決定的な違いをまとめます。

宣言で変える(\centering ほか)

宣言(declaration) は、書いた地点から効力が始まり、その グループ{ ... } の中、または環境の \begin\end)が終わるまで持続する命令です。寄せ方の宣言は三つあります。中央寄せの **\centering、左寄せ(右側がぎざぎざ)の \raggedright、右寄せ(左側がぎざぎざ)の \raggedleft**。

大事な注意があります。これらの宣言は 新しい段落を始めず、段落の組み方だけを変えます。そして寄せ方が確定するのは 段落が終わる場所、つまり空行か \end を宣言のグループの中に含めたときです。次のように \centering のグループが段落の途中で閉じてしまうと、最初の行 ww xx だけが中央寄せになり、yy zz を含む二行目は寄せが効きません。

latex
ww {\centering xx \\ yy} zz

だから宣言を使うときは、寄せたい段落全体をグループに含め、グループの中で段落を終える(空行を置くか、figure などの環境の \end まで含める)のが定石です。図やキャプションを中央に置く典型例はこうなります。\\ は行内の任意の位置で改行する命令です。

document.tex
\begin{figure}
  \centering
  \includegraphics[width=0.6\textwidth]{plot}
  \caption{実測値と理論値の比較\\(2026 年データ)}
\end{figure}

ここで center 環境ではなく \centering を使っているのには理由があります。figure の中で \begin{center} を使うと、後述のとおり画像の上下に余計な空きが入ってしまうためです。これが宣言を使う最大の動機です。

環境で変える(center ほか)

もう一方の道が 環境 です。中央寄せの **center、左寄せの flushleft、右寄せの flushright** の三つがあり、\begin{center} ... \end{center} のように囲んだ範囲を、独立した段落としてその寄せ方で組みます。各行を任意の位置で折るには \\ を使います(最終行のあとの \\ は省略でき、付けても余分な空きは生みません)。

document.tex
\begin{center}
  最初の行は中央に\\
  次の行も中央にそろう
\end{center}

\begin{flushright}
  右に寄せた署名\\
  2026 年 5 月
\end{flushright}

環境版は宣言版より書きやすく、\begin\end で範囲が一目でわかります。実装上、これらの環境は内部で対応する宣言を呼び出しており(center\centering を、flushleft\raggedright を、flushright\raggedleft を使う)、寄せ方そのものは宣言と同じです。違うのは前後の空きの有無です。

決定的な違い — 前後の空き

ここがこのページの核心です。centerflushleftflushright の各環境は、内部が リスト類(trivlist) として実装されているため、本文との間に 上下の縦方向の空き を自動で入れます。一方で \centering\raggedright\raggedleft の宣言は その空きを入れません

本文の途中で文章を中央寄せし、前後に少し空きが欲しいとき(独立した一文の標語など)は center 環境が便利です。逆に、figuretable、あるいは \parboxtabular のセルの中身を寄せたいときは、すでにその空きが確保されているか、空きがあるとかえって崩れるので、**宣言(\centering など)を使う** のが正解です。図の中で \begin{center} を使うと、画像とキャプションの上下に二重の空白が入って間延びします。

寄せ方宣言環境前後の縦の空き
中央寄せ\centeringcenter宣言は入れない/環境は入れる
左寄せ\raggedrightflushleft同上。右端はぎざぎざ
右寄せ\raggedleftflushright同上。左端はぎざぎざ

なお、これらの寄せでそろわない側(中央寄せなら左右、左寄せなら右)の端は、行ごとに長さがまちまちな ぎざぎざ(ragged) になります。これは仕様どおりですが、次に述べるとおり標準の左寄せ・右寄せにはもう一つ落とし穴があります。

ハイフネーションの落とし穴と ragged2e

標準の \raggedright(および flushleft 環境)には見落としやすい欠点があります。ハイフネーションをほぼ完全に無効にしてしまう のです。LaTeX はこのとき行末の伸縮(\rightskip)を無限大に設定するため、TeX は「どんなに右端が短くても悪い行と見なさない」状態になり、結果として右端が極端にぎざぎざになります。長い欧文の単語が並ぶと、行ごとの長さの差がとても大きくなって読みにくくなります。

これを解決するのが **ragged2e パッケージです。同じ働きをしつつ ハイフネーションを許す 新しい命令と環境を提供します。命令は \RaggedRight(左寄せ)・\RaggedLeft(右寄せ)・\Centering(中央寄せ)、環境は FlushLeftFlushRightCenter**(いずれも頭文字が大文字)。仕組みは、\rightskip を無限大ではなく 有限の伸び(既定で 0pt plus 2em)にすることで、TeX が適切にハイフネーションと行分割を行えるようにしています。

一度 \RaggedRight などで寄せたあと、両端揃えに戻したい部分には **\justifying を使います。文書全体を(ハイフネーション付きで)左寄せにしたいなら、読み込み時に [document] オプション** を付けます。これは \begin{document}\RaggedRight を実行し、\parbox や p 列なども左寄せにする raggedrightboxes オプションなどをまとめて有効にします。

document.tex
\usepackage[document]{ragged2e}  % 文書全体を左寄せ(ハイフネーションあり)
% あるいは局所的に:
\begin{FlushLeft}
  ハイフネーションを保ったまま左寄せに組まれる段落。
  右端は穏やかにぎざぎざになる。
\end{FlushLeft}

欧文中心の文書で左寄せ・右寄せを使うなら、標準命令ではなく ragged2e を選ぶのが無難です。なお日本語の本文は単語間の空きをそもそも持たないため両端揃えとの差が小さく、この問題は欧文ほど深刻ではありませんが、欧文混じりの段落では効いてきます。