LoginSignup
4
5

More than 3 years have passed since last update.

【LaTeX】description環境(見出し付き箇条書き)で見出しと文の境界を揃える

Last updated at Posted at 2020-10-16

*beamerの場合はもっと楽な方法があります(beamerの場合).

要点

$\mathrm\LaTeX$文書で見出し付き箇条書きを使うとき,

\usepackage{enumitem}
...
\begin{description}[labelwidth=(一番長い見出しの文字数)em]
 \item[長い見出し] 文
 \item[短] 文
 ...
 \item[一番長い見出し] 文
\end{description}

のように,enumitemパッケージを読み込んだ上でdescription環境のオプション引数labelwidthに長さを渡す.こうすると見出し部分の幅がその長さに固定されて,下図のように見出しの右端(文の左端)が揃って見やすくなる.
description2.PNG

環境

筆者はoverleaf上で,compilerに"LaTeX"を使っている(この記事とほぼ同じように設定している).

困りごと

$\mathrm\LaTeX$の箇条書き環境としてはitemize(記号付き),enumerate(番号付き),description(見出し付き)がある.ただ,実際にdescription環境を使って見出し付き箇条書きを作ると,見出しと文の境が揃わないので少しモヤモヤする.
description1.PNG
とにかく左端を合わせてくれるっぽい.beamerとは少し挙動が違う.
というわけで,見出しの右端を揃えたい!というのが困りごと.

失敗した方法

調べてみると,description環境では見出しの左端が揃い,itemize環境では見出しの右端が揃うとのこと(参照先).なるほど,itemize環境も記号を自分で設定できるので,実質見出し付き箇条書き的に使えそうである.例えば次のような感じになる.
itemize1.PNG
解決!と思ってやってみたが,うまくいかない.
itemize2.PNG
上下の本文と見比べると,右端は揃っているが,左側が本文領域からはみ出ている.画像ではわかりやすいように余白を調整しているが,実際には紙面から出て見切れたり,2段組みの場合は左の段の文と重なったりしてしまう.
これも想像だが,記号(いまは見出し)部分の幅が固定されているのかもしれない.この幅を\setlengthなどで変更すればどうにかなるかもしれないが,調べるのも面倒だし,(さほど$\mathrm\LaTeX$に慣れていないから)むやみに設定をいじるのはなんとなく怖く,やりたくない.itemize環境を使う作戦は失敗.

解決策

このページに答えが載っていた("Customizing lists"の部分).enuitemパッケージを読み込むと,description環境にオプション引数として"labelwidth"を渡せるようになる.これを渡せば,見出し部分の幅が渡した長さに固定されるらしい.

\usepackage{enumitem}
...
\begin{description}[labelwidth=8rem]
 \item[見出し] 説明の文
 \item[とても長い見出し] 説明の文
 \item[短] 説明の文
\end{description}

とすると,
description2.PNG
このように,本文領域からはみ出すことなく,見出しの右端を揃えてくれる!
beamerの場合は一番長い見出しをそのままオプションに入れられたが,この方法では長さを渡さないといけない.cm単位とかだと調整がややこしそうである.根拠はないが,

\begin{description}[labelwidth=(一番長い見出しの文字数)em]

のように長さを決めるのが楽そうだと思う.ちなみに,"em"はいま有効な書体における文字"M"の幅を表すらしい(参考).筆者は見たことがないが,"zw"でもいいのかもしれない.

注意

初めに書いた通り,beamerのときはもっと楽で,単純にオプションとして[一番長い見出し]を渡すだけで見出しの右端が揃う(詳細は別の記事).

参考

下のページの"Customizing lists"の部分を参照した.
https://en.wikibooks.org/wiki/LaTeX/List_Structures

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5