入れ子構造を避けたい
$\LaTeX$で箇条書きをするとき、itemize
環境を入れ子構造にすることがありますよね。
\begin{itemize}
\item 第1階層
\begin{itemize}
\item 第2階層
\begin{itemize}
\item 第3階層
\begin{itemize}
\item 第4階層
\end{itemize}
\end{itemize}
\end{itemize}
\end{itemize}
これは次のように出力されます。
enumerate
環境でも同様です。
\begin{enumerate}
\item 第1階層
\begin{enumerate}
\item 第2階層
\begin{enumerate}
\item 第3階層
\begin{enumerate}
\item 第4階層
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{enumerate}
この入れ子構造は可読性が低いし、打ち込むのも面倒臭い1。
本記事の目的を「$\LaTeX$で深い階層まで箇条書きをする際の入れ子構造を解消すること」とします。
なお、筆者は$\LaTeX$の実行環境としてOverleafを採用しています。
解決策(1)
iitem
パッケージを導入することで、入れ子構造問題を簡単に解消できます2。
導入
プリアンブルに
\usepackage{iitem}
と記載すれば使用できます。
使い方
次のコマンドを使用することで、箇条書きの各階層を出力できます。
階層 | コマンド |
---|---|
1 | \item |
2 | \iitem |
3 | \iiitem |
4 | \ivtem |
具体例は以下の通りです。
\begin{itemize}
\item 第1階層
\iitem 第2階層
\iiitem 第3階層
\ivtem 第4階層
\end{itemize}
\begin{enumerate}
\item 第1階層
\iitem 第2階層
\iiitem 第3階層
\ivtem 第4階層
\end{enumerate}
入れ子構造を解消し、見やすくしただけですので、出力結果はすでに示したものと同じです。
解決策(2)
easylist
環境に乗り換える手もあります3。easylist
環境ではitemize
・enumerate
環境と違い、\item
では無く§
や@
などの記号によって箇条書きをします。
導入
プリアンブルに
\usepackage[<options>]{easylist}
と記載すれば使用できます。<options>
は箇条書きの際に使用する記号を選択できます。必要に応じて、以下のいずれかを記載します。
<options> |
記号 |
---|---|
(default) | § |
pilcrow | ¶ |
at | @ |
sharp | # |
ampersand | & |
著者は@
を採用しました。
\usepackage[at]{easylist}
使い方
基本的には以下のように使用します。
\begin{easylist}[<style>]
@ 第1階層
@@ 第2階層
@@@ 第3階層
@@@@ 第4階層
\end{easylist}
itemize
・enumerate
環境とは違い、\item
では無く@
を使用して箇条書きをします。
<style>
はitemize
かenumerate
を選択すると良いでしょう。
具体的には次のように出力されます。
\begin{easylist}[itemize]
@ 第1階層
@@ 第2階層
@@@ 第3階層
@@@@ 第4階層
\end{easylist}

\begin{easylist}[enumerate]
@ 第1階層
@@ 第2階層
@@@ 第3階層
@@@@ 第4階層
\end{easylist}

まとめ
解決策(1),(2) のどちらを採用しても良いと思います。一方で、出力結果のレイアウトに違いがあることに注意してください。easylist
環境の方が箇条書きの間隔が広くなっています。個人的にはitemize
環境とiitem
環境の組み合わせのほうが好みです4。
itemize 環境 |
easylist 環境 |
---|---|
![]() |
![]() |