enumerate(番号付き)

enumerate は、項目に番号を振る 順序付きリスト を作る環境です。\begin{enumerate}\end{enumerate} で囲み、項目ごとに \item を置くだけ。番号は自動で振られ、入れ子にすると階層に応じて 1.(a)i.A. と書式が切り替わります。このページでは自動採番のしくみ、階層ごとの既定の書式とそれを司るカウンタ・命令、項目への相互参照、開始番号の変更、そして enumitem による手軽な書式指定までを扱います。

基本の使い方

enumerate 環境の中では、各項目を \item で始めます。番号は LaTeX が自動で振るので、自分で「1.」「2.」と書く必要はありません。\item の後ろから次の \item(または \end{enumerate})までが 1 項目の本文で、途中の改行や字下げは自由 — 番号と左インデントは LaTeX が揃えます。番号は環境を使うたびに 1 から振り直されます。

document.tex
\begin{enumerate}
  \item 材料を量る
  \item 生地を混ぜる
  \item 型に流して焼く
\end{enumerate}

これで 3 つの項目が、行頭に「1.」「2.」「3.」と番号を付けて並びます。enumerate は LaTeX 標準の環境で、追加パッケージは要りません。番号ではなく記号を付けたいときは itemize、見出し付きの定義リストには description を使います。少なくとも 1 つは \item が必要で、本文だけを \item なしに並べることはできません。

既定の番号書式と階層

enumerate4 段階まで入れ子 にでき、番号の書式は階層(ネストの深さ)ごとに自動で変わります。標準クラス(article など)での既定は、第 1 階層がアラビア数字にピリオド 1.、第 2 階層が小文字を丸括弧で囲んだ (a)、第 3 階層が小文字のローマ数字にピリオド i.、第 4 階層が大文字にピリオド A. です。

各階層には カウンタ と、それを表示する 2 つの命令が結び付いています。値を数える整数カウンタが enumienumiienumiiienumiv(語尾の i・ii・iii・iv がローマ数字で階層を表します)。カウンタを 番号の文字列に整形 する命令が \theenumi\theenumiv で、それを 行頭ラベルとして組む 命令が \labelenumi\labelenumiv です。既定では、たとえば \theenumi\arabic{enumi}(=アラビア数字)と定義され、\labelenumi がそれにピリオドを付けて 1. を作ります。

階層カウンタ既定の書式整形命令
enumi第 1enumi1. アラビア数字+ピリオド\arabic{enumi}
enumii第 2enumii(a) 小文字+丸括弧\alph{enumii}
enumiii第 3enumiiii. 小文字ローマ数字+ピリオド\roman{enumiii}
enumiv第 4enumivA. 大文字+ピリオド\Alph{enumiv}

番号の 見た目だけ を変えたいなら、整形命令を \renewcommand で再定義します。カウンタを別の体裁で表示する命令には \arabic(1, 2, 3)、\alph(a, b, c)、\Alph(A, B, C)、\roman(i, ii, iii)、\Roman(I, II, III)があります。たとえば第 1 階層を I, II, III の大文字ローマ数字にするには次のようにします。

latex
\renewcommand{\theenumi}{\Roman{enumi}}
\begin{enumerate}
  \item 第一の論点
  \item 第二の論点
\end{enumerate}

これで第 1 階層が「I.」「II.」… になります。\labelenumi は既定で \theenumi に基づくため、\theenumi を変えると行頭ラベルも、後述の相互参照 \ref が返す番号も同じ書式に揃います。番号の前後に付く記号(ピリオドや括弧)まで含めて作り込みたいときは \labelenumi 側を再定義します。こうしたラベルの設計は「ラベルのカスタム」で詳しく扱います。

項目を参照する

番号付きリストの項目には、\item の本文に \label{キー} を置いておけば、本文の別の場所から \ref{キー} でその 項目の番号 を呼び出せます。番号は LaTeX が管理しているので、途中に項目を足したり並べ替えたりしても参照は自動で正しい番号に追従します。\ref が返す書式は、その階層の \theenumi 系の定義に従います。ページ番号がほしいときは \pageref{キー} を使います。

document.tex
\begin{enumerate}
  \item 仮説を立てる
  \item 実験で検証する\label{step:test}
  \item 結果をまとめる
\end{enumerate}
手順~\ref{step:test} で測定したデータを使う。

この例では 2 番目の項目に \label{step:test} を付け、あとの文で \ref{step:test} が「2」に置き換わります。hyperref パッケージを読み込んでおくと、この参照がクリックでその項目へ飛べるリンクになります。なお、参照を正しく解決するにはふつう 2 回コンパイルが必要です。相互参照の全般は「相互参照(\label と \ref)」のページで扱います。

開始番号を変える

番号を 1 以外から始めたいときは、リストの中でカウンタを \setcounter で設定します。\item は本文を組む前にカウンタを 1 増やすので、始めたい番号より 1 小さい値 を与えるのがコツです。たとえば 5 から始めたいなら \setcounter{enumi}{4} と書きます。

latex
\begin{enumerate}
  \setcounter{enumi}{4}
  \item この項目は 5 番になる
  \item 6 番
\end{enumerate}

\setcounter{enumi}{4} の直後の \item が「5.」になり、続く項目が「6.」になります。第 2 階層以下を操作するときは enumiienumiiienumiv を同様に指定します。リストをいったん閉じて別のリストとして再開しつつ番号を続けたい、という用途には、次に述べる enumitemresume の方が手軽で確実です。

enumitem で書式と継続を手軽に

番号の書式を細かく整えたいときは、\renewcommand を手で書くよりも enumitem パッケージを使う方が見通しがよくなります。\usepackage{enumitem} を読み込むと、環境のオプションとして label= で書式を直接指定できます。label= の中では、カウンタを表示する命令にアスタリスクを付けた \arabic*\alph*\Alph*\roman*\Roman* が「現在の項目番号」を表します。たとえば label=(\alph*)(a)(b) … という書式になります。

document.tex
\usepackage{enumitem}
% ...
\begin{enumerate}[label=(\alph*)]
  \item 小文字を括弧で囲んだラベル
  \item 二つめの項目
\end{enumerate}

enumitem は開始番号や継続も簡単にします。start= で最初の番号をそのまま指定でき(\setcounter のような「1 引く」操作は不要)、resume を付けると 前のリストの続きから番号を振り直さずに再開 します。間に説明の段落や別の図を挟んでリストが途切れても、番号の流れを保てます。

document.tex
\begin{enumerate}
  \item 最初のリストの一つめ
  \item 二つめ
\end{enumerate}
間にはさむ説明の段落。
\begin{enumerate}[resume]
  \item 番号は 3 から続く
  \item 4 番
\end{enumerate}

resume を付けた 2 つめのリストは「3.」「4.」と前のリストの続きになります。start=10 のように開始番号だけ指定することも、label= と組み合わせて書式ごと整えることもできます。enumitem が提供する間隔調整・行内リスト・参照用ラベルなどは「enumitem」のページでまとめて扱います。

まとめの例

最後に、これまでの要素を組み合わせた例を見ます。手順のリストを作り、ある手順に \label を付けて、リストの外からその番号を \ref で参照します。番号は LaTeX 任せなので、手順を入れ替えても参照は自動で追従します。

document.tex
実験は次の手順で進める。
\begin{enumerate}
  \item サンプルを室温に戻す
  \item 重量を記録する\label{step:weigh}
  \item 溶媒を加えて撹拌する
  \item 一晩静置する
\end{enumerate}
手順~\ref{step:weigh} の値を、最終的な収率の計算に用いる。

出力では、4 つの手順が「1.」から「4.」まで番号付きで並びます。2 番目の「重量を記録する」には \label{step:weigh} が付いているので、リストの後の文中の \ref{step:weigh} が「2」に置き換わり、「手順 2 の値を…」と読めるようになります。もし最初に「装置を点検する」という手順を加えれば、目的の手順は 3 番目に下がりますが、\ref は自動で「3」に更新されます — これが番号を手で書かず LaTeX に任せる最大の利点です。