\LaTeX における,enumerate, itemize, description
といった箇条書きの環境について,その使い方を徹底的に解説しましょう。後半は enumitem
パッケージを用いた拡張的な方法について解説します。
番号付き箇条書き
番号付き箇条書きを行うためには,enumerate
環境を用います。各項目には,\item
を用います。
enumerate環境の基本
\begin{enumerate}
\item 一つ目
\item 二つ目
\item 三つ目
\end{enumerate}
入れ子にすることも可能です。デフォルトでは,4階層まで可能で,以下のようになります。
\begin{enumerate}
\item 一つ目
\begin{enumerate}
\item 入れ子一つ目
\begin{enumerate}
\item 入れ子の入れ子一つ目
\begin{enumerate}
\item 入れ子の入れ子の入れ子一つ目
\item 入れ子の入れ子の入れ子二つ目
\end{enumerate}
\item 入れ子の入れ子二つ目
\end{enumerate}
\item 入れ子二つ目
\end{enumerate}
\item 二つ目
\end{enumerate}
見出しを変えたいとき
\item[見出し]
とすると,ある特定の項目だけ見出しを変えることができます。この際,そこでは番号は増えません。
\begin{enumerate}
\item 一つ目
\item[1a.] 二つ目
\item 三つ目
\end{enumerate}
また,全体の番号のつけ方を変えたい場合は,たとえば
\renewcommand{\theenumi}{\roman{enumi}}
\renewcommand{\labelenumi}{(\theenumi)}
\renewcommand{\theenumii}{\theenumi-\alph{enumii}}
\renewcommand{\labelenumii}{(\theenumii)}
みたいな感じにすると,第一階層は \text{(i), (ii),}\ldots となり,第二階層(入れ子階層)は \text{ (i-a), (i-b),}\ldots のようになります。
第一・第二・第三・第四階層を出力する命令はそれぞれ \theenumi, \theenumii, \theenumiii, \theenumiv
や \labelenumi, \labelenumii, \labelenumiii, \labelenumiv
です。\the~
のほうは \ref{}
などで参照する際の実際の番号を指し,\label~
の方は,番号をカッコつきで出力することを指します。
\roman{}
や \alph{}
などは番号付けの種類を指します。以下の中から選択します。
コマンド | 番号 |
---|---|
\arabic | 1,2,3,… |
\roman | i,ii,iii,… |
\Roman | I,II,III,… |
\alph | a,b,c,… |
\Alph | A,B,C,… |
番号を途中から始めたいとき
enumerate
環境内で,
\setcounter{enumi}{3}
のようにすることで,番号を途中から始めることが可能です。上の場合,番号は「4」から始まります。
あるいは,後に解説する enumitem
パッケージを用いれば,
\begin{enumerate}[start=4]
のようにすることもできます。
単に番号を途中から始めたいのではなく,前の enumerate
環境の番号の続きから始めたい場合は,別の方法がありますから,下の方で解説しましょう。
記号付き箇条書き
記号付き箇条書きを行うには,itemize
環境を用います。各項目には,\item
を用います。
itemize環境の基本
\begin{itemize}
\item 一つ目
\item 二つ目
\item 三つ目
\end{itemize}
以下のように入れ子にすることも可能です。デフォルトでは,4階層まで可能で,以下のようになります。
\begin{itemize}
\item 一つ目
\begin{itemize}
\item 入れ子一つ目
\begin{itemize}
\item 入れ子の入れ子一つ目
\begin{itemize}
\item 入れ子の入れ子の入れ子一つ目
\item 入れ子の入れ子の入れ子二つ目
\end{itemize}
\item 入れ子の入れ子二つ目
\end{itemize}
\item 入れ子二つ目
\end{itemize}
\item 二つ目
\end{itemize}
enumerate
と itemize
を入れ子にすることも可能です。
見出しを変えたいとき
\item[見出し]
とすると,ある特定の項目だけ見出しを変えることができます。
\begin{itemize}
\item 一つ目
\item[$\heartsuit$] 二つ目
\item 三つ目
\end{itemize}
また,全体の記号のつけ方を変えたい場合は,
\renewcommand{\labelitemi}{・}
のようにします。第一・第二・第三・第四階層のラベルはそれぞれ \labelitemi, \labelitemii, \labelitemiii, \labelitemiv
です。
見出し付き箇条書き
左寄せの太字を見出しとして,箇条書きを行うには,description
環境を用います。各項目には,\item[見出し]
を用います。
description環境の基本
\begin{description}
\item[日時] 一つ目
\item[場所] 二つ目
\item[注意事項] 三つ目
\end{description}
見出しの直後で改行したい場合は,単に強制改行 \\
を入れてもうまくいかないため,\item[日時]\mbox{}\\
のようにします。
入れ子にすることも可能です。
enumitemパッケージによる拡張
enumitem
パッケージを用いれば,箇条書きのバリエーションをさらに広げることができます。これは,旧来の enumerate
パッケージを置き換えるものです。プリアンブルに \usepackage{enumitem}
とすれば使えます。ぜひ導入しましょう。
ここからは,enumitem
パッケージで出来ることを,いくつか簡単に紹介します。
各環境ごとにラベルの付き方を指定する
enumerate
環境において,\begin{enumerate}[label=...]
のようにすることで,その環境のラベルの付き方を指定することが可能です。
\begin{enumerate}[label=\textbf{その\arabic*.}]
\item 一つ目
\item 二つ目
\item 三つ目
\end{enumerate}
\arabic*
は,以下の5つから選べます。
コマンド | 番号 |
---|---|
\arabic* | 1,2,3,… |
\roman* | i,ii,iii,… |
\Roman* | I,II,III,… |
\alph* | a,b,c,… |
\Alph* | A,B,C,… |
スペースの調整
各環境のスペースを調整したい場合,たとえば
\begin{itemize}[itemsep=1ex, leftmargin=1cm]
のようにします。文書中全ての箇条書き環境のスペースを調整したい場合は,
\setlist{itemsep=1ex, leftmargin=1cm}
のようにします。\setlist[itemize]{...}
とすれば,itemize
環境全てを変更することも可能ですし,\setlist[enumerate,2]{...}
とすれば,enumerate
環境の第二階層のみ変更することも可能です。
各スペースのパラメータを表しているのが,以下の図です。
また,各環境の全ての縦方向のスペースを除きたい場合は,\begin{itemize}[nosep]
とし,全ての箇条書き環境の縦方向のスペースを除きたい場合は,\setlist{nosep}
とします。
前のenumerate環境の番号の続きから始める
resume
オプションをつけることで,番号付けに関して,前の番号を引き継ぐことが可能です。以下を見てください。
\begin{enumerate}
\item 一つ目
\item 二つ目
\end{enumerate}
さらに,
\begin{enumerate}[resume]
\item 三つ目
\end{enumerate}
resume
の代わりに,resume*
とすると,前の環境で使われた,その他のオプションも引き継ぐことが可能です。
もっとグローバルに番号付けを継続したい場合は,まず一つ目の enumerate
環境で,series=hoge
のように,オプションでシリーズ名を定義し,それ以降の enumerate
環境のうち,番号を引き継ぎたいところで resume=hoge
のようにオプションを記述してください。
改行しない箇条書き
インライン形式の箇条書きも可能です。これを使えるようにするには,\usepackage[inline]{enumitem}
とする必要があります。こうすることで,インライン形式の箇条書き環境 enumerate*, itemize*, description*
を使うことが可能です。以下に例を挙げましょう。
大事なことは三つある。それは,
\begin{enumerate*}
\item 一つ目
\item 二つ目
\item 三つ目
\end{enumerate*}
である。
それぞれの項目のスペースを空けたい場合は,\begin{enumerate*}[itemjoin={\hspace{20pt}}]
などと書いておけばよいです。ほかにも,この書き方で項目間にセミコロンを入れたりすることもできます。
他にもさまざまな機能があるため,公式ページを見てみてください。