文字サイズを変える命令

LaTeX には、文字の大きさを段階的に変える 10 個の宣言型命令 \tiny から \Huge までが用意されています。これらは「宣言」なので引数を取らず、効果は現在のグループや環境の終わりまで続きます。実際の級数(ポイント数)は文書クラスの基準サイズ(10pt / 11pt / 12pt)に応じて変わります。任意のサイズには \fontsize を使います。

10 個のサイズ命令

標準のサイズ命令は、小さいものから大きいものへ次の 10 個です。\tiny\scriptsize\footnotesize\small\normalsize\large\Large\LARGE\huge\HugeLH の大文字・小文字、LARGE の全部大文字が段階を表すので、見た目より綴りに注意してください。\normalsize が本文の標準サイズで、\documentclass のサイズオプション(既定では 10pt)と一致します。

これらは 宣言(declaration) です。\textbf{...} のように引数を取る命令とは違い、命令を書いた地点から その先の文字サイズを切り替える だけで、どこまで効くかは自分でグループや環境を使って区切ります。だから多くの場合、波括弧で囲んで {\Large ここだけ大きい} のように スコープ(有効範囲)を限定 します。閉じ波括弧の地点で元のサイズに戻ります。

latex
通常の大きさの文。{\Large ここだけ大きく}、また通常へ戻ります。

{\small この段落全体が小さい級数になります。閉じ波括弧まで効果が続きます。}

実際のポイント数は基準サイズ次第

重要なのは、各命令が出す 実際のポイント数が、文書クラスの基準サイズによって変わる ことです。たとえば article10pt11pt12pt のどれで読み込んだかで、同じ \large でも結果の級数が異なります。これは命令が「絶対の大きさ」ではなく「本文に対する相対的な段階」を表しているためです。次の表は標準クラス(article / report / book など)での値です。

命令10pt のとき11pt のとき12pt のとき
\tiny5pt6pt6pt
\scriptsize7pt8pt8pt
\footnotesize8pt9pt10pt
\small9pt10pt10.95pt
\normalsize10pt10.95pt12pt
\large12pt12pt14.4pt
\Large14.4pt14.4pt17.28pt
\LARGE17.28pt17.28pt20.74pt
\huge20.74pt20.74pt24.88pt
\Huge24.88pt24.88pt24.88pt

表から分かるように、\normalsize は 10pt クラスで 10pt、11pt クラスで 10.95pt、12pt クラスで 12pt になります。級数の刻みはおおむね 1.2 倍ずつで、\Huge は上限に張り付くため、たとえば 11pt クラスでは \huge\Huge が同じ 24.88pt になります。なお、これらの値は標準クラスのもので、jsarticle などの和文クラスや extsizes・KOMA-Script では刻みや上限が異なります。

任意のサイズ: \fontsize と \selectfont

10 段階に欲しい大きさがないときは、\fontsize{サイズ}{行送り} で任意のポイント数を直接指定できます。第 1 引数が文字サイズ、第 2 引数が 行送り(baselineskip、行の基準線どうしの間隔) です。\fontsize は値を設定するだけで、実際に反映するには続けて \selectfont を呼ぶ必要があります。

latex
{\fontsize{20}{24}\selectfont 20pt・行送り 24pt の文字。}

行送りは慣習として文字サイズの約 1.2 倍に取ります(20pt なら 24pt 程度)。これを省いて極端に小さくすると、行が重なって読めなくなります。\tiny などの宣言型命令は行送りも自動で調整しますが、\fontsize では 自分で行送りを指定しなければならない のが大きな違いです。これも宣言なので、上の例のように波括弧でスコープを区切ります。

段落に効かせるときの注意

よくある落とし穴があります。サイズの変更を 段落全体 に効かせたいときは、段落の終わりを示す 空行または \par を、グループ(波括弧)を閉じる前に入れる 必要があります。LaTeX は段落を組み終える瞬間の行送りを使うため、空行をグループの外に出すと、本文の行送りで段落が組まれ、行間だけが元のサイズに戻ってしまいます。

latex
% 正しい — \par がグループの内側にある
{\Large
この段落は大きな文字で、行送りも大きさに合います。
\par}

% 誤り — 段落の区切りがグループの外
{\Large この段落は文字こそ大きいが、行送りが本文のまま}

次の段落。

もうひとつ。サイズ命令は数式モードの中では使えず、警告が出ます。数式の一部を大きくしたいときは \displaystyle などの数式用のサイズ調整を使い、本文の級数を変える命令とは区別してください。

直接大きくする前に考えること

本文を書いている途中で \Large\small を打ちたくなったら、まず「その大きさは文書構造の一部か、一回きりの調整か」を分けます。見出し、脚注、キャプション、定理環境、表の注記のように繰り返し現れるものなら、本文中で毎回サイズを指定せず、対応する環境やスタイルの定義を変えます。一回だけのポスター見出しや表中の補助説明なら、グループで範囲をきちんと閉じて局所的に使います。

  • 章見出しは本文で大きくしない。 \section の見た目はクラスや titlesec などの設定で変えます。
  • 表の中では読みやすさを優先する。 表全体を \scriptsize にして詰め込む前に、列を減らす、横向きにする、別表に分ける判断をします。
  • 行送りも同時に見る。 \fontsize を使うなら、文字サイズだけでなく第2引数の baselineskip を必ず指定します。
  • 提出 PDF で確認する。 画面上で読めても、印刷・査読 PDF では小さすぎることがあります。最終ページサイズで確認します。

サイズを決める順序

文字サイズは、本文を書きながら局所的に直すものではなく、上から順に決めると破綻しません。まず \documentclass[11pt]{...} のように文書全体の基準サイズを決めます。次に、見出し・キャプション・脚注・表注など、構造に属するサイズをクラスやパッケージ設定で決めます。最後に、本文中の一回きりの注記だけを {\small ...} のように局所指定します。ポスターやスライドのように本文級数そのものが違う文書では、局所命令ではなく、最初からその用途のクラスを選びます。

  • 基準サイズはクラスオプションで決める。 本文全体を \small で包むのは、行送り・脚注・見出しとの整合を壊しやすい方法です。
  • 繰り返す要素は定義側で変える。 すべての表注を小さくするなら、表注用のマクロや環境を作り、本文中の手作業をなくします。
  • 局所指定は段落単位で閉じる。 長い段落を小さくするなら、\par をグループの内側に置き、行送りまで同じサイズで確定させます。