天地有情

[LaTeX] enumitem --- リスト環境のレイアウトを制御

更新版:2017/04/15 (旧題:enumitem.sty の使い方 備忘録)

§1 はじめに

enumitem パッケージは,3つの基本的なリスト環境(enumerate、itemize、およびdescription)の
レイアウトをユーザーが制御できるようにします.

ここで紹介する enumitem を使うと,これら3つの標準的な環境を統一的に扱うことができ,
リスト番号の書式を変えたり,横に並べたり, description 環境の整列方法を変えたりできます.

また,標準では第5レベルからは ! LaTeX Error: Too deeply nested. というエラーが出ますが,
このパッケージを使うと対処することができます.

1.1 インストール

必要に応じて,CTAN( http://www.ctan.org/pkg/enumitem )から
ダウンロードしてください.

TeXLive/W32TeX などには標準でインストールされています.

1.2 マニュアル

コマンドラインから texdoc enumeitem を実行するか,
上記に同梱の enumeitem.pdf をお読み下さい.

§2 使い方

2.1プリアンブルに
  \usepackage [<options>] {enumitem}
  を記述します.

<options> は以下の通りです.

■ inline
段落内の通常のテキストとして設定された「水平」リスト.

■ ignoredisplayed,
パッケージオプションを無視して表示することができる.

■ shortlabels
A, a, I, i, 1 が \Alph*, \alph*, \Roman*, \roman*, \arabic* を表す列挙型の構文を使用できる.

■ loadonly
パッケージはロードされますが、3つのリストは再定義されない.

2.2 環境・パラメータ

本文での記述形式は,
 a) \begin{enumerate}[key1=value1,key2=value2,...]  ~ \end{enumerate}

 b) \begin{itemize}[key1=value1,key2=value2,...]   ~ \end{itemize}

 c) \begin{description}[key1=value1,key2=value2,...] ~ \end{description}


となります.[key=value] については 後述(§3 新規のパラメータ)します.

従来からの標準環境において,以下のパラメータが用意されていますが,本パッケージにおいても利用できます.

■ Vertical spacing:
  -- topsep
  -- partopsep
  -- parsep
  -- itemsep

■ Horizontal spacing:
  -- leftmargin
  -- rightmargin
  -- listparindent
  -- labelwidth
  -- labelsep
  -- itemindent

§3 新規のパラメータ

上記に加えて,本パッケージでは次のパラメータが利用できます.簡単なパラメータの使い方も示しておきます.

3.1 Label and cross references format

■ label=<commands>

enumitem01.png


現在のレベルで使用されるラベルを設定します.
引数なしの\alph, \Alph, \arabic, \roman, \Romanのスター付きバージョンのセットは、
enumerateの現在のカウンタを表します.

\begin{enumerate}[label=\emph{\alph*})] --- これは,a),b)などとprintする.


■ label*=<commands>

ラベルと同様ですが,その値は親ラベルに追加されます.

enumitem02.png



\newlist{legal}{enumerate}{5}
\setlist[legal]{label*=\arabic*.}とすると,
legal listは, (1., 1.1., 1.1.1.....)となる.


■ ref=<commands>

参照形式を指定します.

enumitem03.png


■ font=<commands>

ラベルフォントを設定します.

enumitem04.png


■ align=left , =right , =parleft
ラベルの配置方法.

enumitem05.png


3.2 Horizontal spacing of labels

■ labelindent=<length>

テキストの余白からラベルボックスの左端までの空白スペース.

■ leftmargin=! itemindent=! labelsep=! labelwidth=! labelindent=!

'!'記号は 値が default であることを示します.

enumitem06.png


パラメータなし.即ち,デフォルト状態を示した例と,
leftmargin=! を指定した例です.いずれもデフォルト状態を示します.


■ leftmargin=* itemindent=* labelsep=* labelwidth=* labelindent=*

'*'記号は 値が 0pt であることを示します.

enumitem07.png


leftmargin=* は,textwidth の左端と箇条書きラベル位置左端が同じで その差は 0pt です.
leftmargin=0pt は,textwidth の左端と箇条書き項目本文の左端と同じで ラベル位置は欄外にあります.


3.3 More on horizontal spacing

■ labelsep*=<length>
■ labelindent*=<length>


3.4 Numbering, stopping, and resuming

■ start=<integer> 最初の item number を設定します.

■ resume    enumerate において,カウンタは前段から再開し継続します.初期値(1)へのリセットはありません.
■ resume*   カウンタは前段から start= で設定された番号で再開します.

resume の サンプルを示します.

enumitem08.png


resume* , start の サンプルを示します.

enumitem09.png


3.5 Series

上記と同様に番号付けを再開させる方法として,series パラメータがあります.

■ series=<series-name> , resume*=<series-name> , resume=<series-name>

series の サンプルを示します.

enumitem10.png


3.6 Compact lists

■ noitemsep  item と paragraph の間のスペースを狭くします。(すなわち、itemsep=0pt)

■ nosep    すべての行間を狭くします。 (itemsep=0pt , parsep=0pt)

enumitem11.png


3.7 Description styles

次のパラメータは description環境で使えます.

■ style=<name> name は以下の通りです.

★ style=standard
LaTeX2e 標準の Description環境 ライクです.(label is boxed.itemindent=!)

★ style=unboxed
standard と同じ.ただし,(label is not boxed.itemindent=!)

enumitem12.png


★ style=nextline
the text continues in the next line(set:labelwidth=!)

★ style=sameline
same as style=unboxed,labelwidth=!

★ style=multiline
same as style=standard,align=parleft,labelwidth=!.

enumitem13.png


labelwidth=3zw を設定しているため,ラベル部分が2行で表示されている.

§4 Inline lists

横並びのリストを生成します.

■ inline (package option)
■ enumerate* itemize* description* (environments)
■ itemjoin=<string> itemjoin*=<string> afterlabel=<string>

★ enumerate + itemjoin=\quad
★ itemize + itemjoin={ ;~ }
★ description + itemjoin={ ) }

enumitem14.png


§5 Global settings

次の \setlist コマンドは,リストの全てに適用されます.

■ \setlist[enumerate,<levels>]{<format>}
■ \setlist[itemize,<levels>]{<format>}
■ \setlist[description,<levels>]{<format>}
■ \setlist[<levels>]{<format>}

いくつかの書式例を示します.

\setlist{noitemsep}
\setlist[1]{\labelindent=\parindent} % < Usually a good idea
\setlist[itemize]{leftmargin=*}
\setlist[itemize,1]{label=$\triangleleft$}
\setlist[enumerate]{labelsep=*, leftmargin=1.5pc}
\setlist[enumerate,1]{label=\arabic*., ref=\arabic*}
\setlist[enumerate,2]{label=\emph{\alph*}),ref=\theenumi.\emph{\alph*}}
\setlist[enumerate,3]{label=\roman*), ref=\theenumii.\roman*}
\setlist[description]{font=\sffamily\bfseries}


enumitem15.png


§6 enumerate-like labels

従来より使われていた enumerate.sty の互換としても,本パッケージは利用できます.
パッケージオプション [shortlabels] を指定します.

第1引数が 本パッケージのオプションでなければ,enumerate.sty のオプションと見なして処理されます.

パッケージオプションの短いラベルでは,A,a,I,i,1が \Alph* ,\alph*, \Roman*, \roman*, \arabic*
を表す列挙型の構文を使用できます。

■ shortlabels (package option)

enumitem16.png


§7 第5レベル以降の処置

標準では第5レベルからは ! LaTeX Error: Too deeply nested. というエラーが出ますが,このパッケージを使うと
対処することができます.[深さ20]の例を示します.

----------------------------------------
\documentclass{jsarticle}
\usepackage{enumitem}
\setlistdepth{20}
\renewlist{itemize}{itemize}{20}
\setlist[itemize]{label=\textbullet}

\begin{document}
..............

\end{document}
----------------------------------------

(EOF)
スポンサーサイト
  1. 2013/12/06(金) 13:53:16|
  2. LaTeX Tools
  3. | トラックバック:0
  4. | コメント:0
<<bclogo.sty の使い方 備忘録 | ホーム | [LaTeX] eledmac --- 学術的に重要なエディションの組版>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://konoyonohana.blog.fc2.com/tb.php/58-41a28d7a
この記事にトラックバックする(FC2ブログユーザー)