数式の見た目を決める細部のうち、もっとも使う二つが 添字(上付き・下付き) と スペーシング です。添字は ^ と _ のたった二文字で書けますが、波括弧の付け方ひとつで結果が変わります。スペーシングは、TeX が自動で入れる空きに対して、書き手が \, などで微調整するための仕組み。このページでは両者の規則と、そのときどきの「なぜ」を、確認できた事実だけにしぼって見ていきます。
上付き・下付き文字
数式モードでは、^ が 上付き(superscript)、_ が 下付き(subscript) を作ります。たとえば x^2 は x の右肩に 2、a_n は a の右下に n が付きます。この二文字は地の文では特別な意味を持たないので、添字は必ず $ ... $ や \[ ... \] などの数式モードの中で書きます。
大切な規則が一つあります。^ と _ は 直後の「1 トークン」だけ を添字にします。トークンとは、1 文字、あるいは 1 つの命令です。だから 2 文字以上をまとめて上げ下げしたいときは、**波括弧 { } でくくって 1 つの塊にする** 必要があります。
$x^{10}$ % 10 全体が上付き:x の右肩に「10」
$x^10$ % 1 だけが上付き、0 は本行の大きさ:x¹0
$a_{ij}$ % ij をまとめて下付き
$2^{n+1}$ % n+1 全体が指数つまり x^{10} は「10」全体が指数になりますが、波括弧を落とした x^10 は 「1」だけが上付きになり、「0」は通常の大きさで本行に残ります(x¹0 のような並び)。誤りではなくコンパイルは通ってしまうので、かえって気づきにくい落とし穴です。指数や添字が 1 文字でないときは、迷わず波括弧で囲む癖をつけると安全です。
一つの記号に 上付きと下付きを同時に 付けることもできます。x_i^2 でも x^2_i でも、順序によらず LaTeX が正しく重ねて配置します。さらに添字を 入れ子(多段) にもできますが、ここでも各段で波括弧が要ります。x^{y^z} は z を y の指数とし、その y^z 全体を x の指数とします。波括弧を省いた x^y^z は 「Double superscript」エラー になり、組版が止まります。下付きの x_{i_0} も同様です。
添字を記号の 前 に付けたいとき(同位体表記の左上・左下など)は、**空の波括弧 {}** を土台に使います。{}_{Z}^{A}X のように書くと、最初の {} が「何もない要素」として添字の取り付け先になり、A・Z を X の左肩・左下へ置けます。
微分の プライム記号 ′ は、アポストロフィ ' で手軽に書けます。f'(x) は f の右肩にプライムが付き、f''(x) は二つ並びます。これは内部的に ^{\prime} の省略形で、f^{\prime} と書いても結果は同じです。プライムは自動で上付きになるので、f^' のように自分で ^ を付ける必要はありません。
\limits と \nolimits — 大型作用素の添字の位置
和 \sum、積分 \int、極限 \lim、総乗 \prod のような 大型作用素 では、^ と _ で付けた添字を 「記号の上下」に置くか「右側」に置くか という選択が生じます。たとえば和の上下に付く添字は「上端・下端の値」を表すので、これを リミット(limits) と呼びます。
既定の位置は 数式のスタイル で決まります。別行立て(display style)では、\sum_{i=1}^{n} の添字は記号の 真上・真下 に中央揃えで置かれます。一方、本文中(inline/text style)の $\sum_{i=1}^{n}$ では、同じ添字が 右側に小さく 並びます。これは行間を押し広げないための配慮です。\lim など多くの作用素も同じ挙動です。
\int だけは例外で、**定義に \nolimits が組み込まれて いるため、別行立てでも添字は 右側** に付きます(積分の上下に限界を置くと縦に間延びして見えるためです)。この既定を上書きするのが次の二つです。\limits は直前の作用素の添字を 上下 に、\nolimits は 右側 に強制します。
\[ \sum_{i=1}^{n} i % display:i=1 が下、n が上に中央配置\]
\[ \int_{0}^{1} f(x)\,dx % \int は既定で 0,1 を右側に\]
\[ \int\limits_{0}^{1} f(x)\,dx % 0,1 を上下に置く\]
$\displaystyle\sum_{i=1}^{n} i$ % 本文中でも上下配置を強制スタイルそのものを切り替える手もあります。本文中で和の添字を上下に置きたいなら $\displaystyle\sum_{i=1}^{n}$、逆に別行立てで右側に寄せたいなら \textstyle を添えます。\limits / \nolimits が「その作用素だけ」を狙い撃ちするのに対し、\displaystyle / \textstyle は 以降の数式全体の体裁 を変える、という違いがあります。
数式中のスペーシングと mu
数式モードでは、TeX が記号の種類(演算子・関係子など)に応じて空きを 自動で 入れます。たとえば a+b の + の左右や、a=b の = の左右の空きは書き手が指定したものではありません。とはいえ自動では足りない/多すぎる場面があり、そこを手で調整するのが スペーシング命令 です。
これらの幅は mu(math unit、数式単位) で定義されています。mu は 1/18 em で、em は「現在の数式記号フォントの大きさ」(おおむね大文字 M の幅)です。したがって 1 em = 18 mu。フォントサイズに比例する相対単位なので、文字を大きくすれば空きも同じ比率で広がります。代表的な命令と幅は次のとおりです。
| 命令 | 幅 | 使いどころ |
|---|---|---|
\, | 3 mu(細space、= 1/6 em) | 微分の dx の前、\sqrt{2}\,x の区切りなど最も多用 |
\: | 4 mu(中space) | やや広めに離したいとき(\medspace と同じ) |
\; | 5 mu(太space) | 広めの区切り(\thickspace と同じ) |
\! | −3 mu(負の細space) | 空きを詰める。\, のちょうど逆向き |
\quad | 18 mu(= 1 em) | 式と但し書き、場合分けの条件などを大きく離す |
\qquad | 36 mu(= 2 em) | \quad の倍。さらに大きく離す |
最もよく使うのは細い空き \, です。典型例が積分の **被積分関数と dx の間** で、\int f(x)\,dx と書くと、f(x) と dx がわずかに離れて読みやすくなります(\, を省くと f(x)dx がくっついて見えます)。\quad と \qquad は、数式とその但し書きを離す(たとえば「式 (n ≥ 1 のとき)」)といった、まとまった空きに向きます。
逆向きの \! は空きを 詰める ための負の空きです。二重積分を \int\!\!\int と書いて二つの積分記号を近づける、といった調整に使われます。なお、\ のあとに空白を一つ置く \ (制御綴り空白)は、数式中でも 地の文と同じ語間 の空きを入れます。
\phantom と \mathstrut — 見えない箱で高さ・幅をそろえる
組版では「場所だけ確保して、中身は見せない」という調整がしばしば要ります。これを担うのが \phantom の仲間です。\phantom{...} は、引数を 組んだときと同じ高さ・深さ・幅 を持つ、中身が空の見えない箱を作ります。文字は出ませんが、その分の空きはきっちり残ります。
寸法のうち一方向だけを取り出す版もあります。\hphantom{...} は 幅だけ を持ち、高さ・深さはゼロ。\vphantom{...} は逆に 高さ・深さだけ を持ち、幅はゼロです。つまり \vphantom は「縦の高さは確保したいが、横には場所を取りたくない」ときに使います。
具体例として、添字の入れ子で高さがそろわない場合を考えます。下の二項を並べると、右側は 3^{3^{3^j}} という指数の塔が高く、TeX は和の本体をその分だけ下げて配置します。すると左右の \sum の縦位置がずれます。左側に \vphantom{3^{3^{3^j}}} を仕込むと、見えないまま右と同じ高さ を確保でき、二つの和の高さがそろいます。
\[
\sum_{j \in \{0,\ldots,10\} \vphantom{3^{3^{3^j}}}}
\sum_{i \in \{0,\ldots,3^{3^{3^j}}\}} i \cdot j
\]よく似た用途の \mathstrut(マスストラット)は、\vphantom( として定義された 専用の見えない支柱(ストラット) です。すなわち **開き括弧 ( と同じ高さ・深さ** を持ち、幅はゼロ。引数を取らず、置くだけでその位置に括弧 1 文字分の縦の余白を確保します。\sqrt{a} と \sqrt{a^2} のように高さの違う要素を並べたとき、各引数の頭に \mathstrut を入れると根号の高さがそろい、列がきれいに見えます。
$\sqrt{\mathstrut a}\;\sqrt{\mathstrut a^2}\;\sqrt{\mathstrut b}$
% 各 \sqrt の中身が同じ高さになり、根号の天井がそろうまとめると、**幅をそろえたいなら \hphantom、高さをそろえたいなら \vphantom か \mathstrut、両方なら \phantom** が基本の使い分けです。いずれも「見えない箱で寸法だけを操る」という同じ発想に立っています。