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


*この記事はbeamerの場合の方法です.文書の場合はこちら

要点

$\mathrm\LaTeX$で見出し付き箇条書きにするとき,

\begin{description}[一番長い見出し]
 \item[長い見出し] 文
 \item[短] 文
 ...
 \item[一番長い見出し] 文
\end{description}

のように,description環境のオプションに一番長い見出しを渡すと,下図のように見出しの右端(文の左端)が揃って見やすくなる.

環境

筆者はoverleaf上で,compilerに"LaTeX"を使っている(この記事とほぼ同じように設定している).ここに書いてある方法はbeamerでのみ有効なので注意.

困りごと

$\mathrm\LaTeX$の箇条書き環境としてはitemize(記号付き),enumerate(番号付き),description(見出し付き)がある.ただ,実際にdescription環境を使って見出し付き箇条書きを作ると,見出しと文の境が揃わないので少しモヤモヤする.

どういう挙動なのかはよくわかっていないが、体感的には一定の長さに収まるものだけ見出しの右端を揃えてくれるのだと思われる.文書の場合と違う.
というわけで,見出しの右端を揃えたい!というのが困りごと.

失敗した方法

調べてみると,description環境では見出しの左端が揃い,itemize環境では見出しの右端が揃うとのこと(参考).なるほど,itemize環境も記号を自分で設定できるので,実質見出し付き箇条書き的に使えそうである.例えば次のような感じになる.

解決!と思ってやってみたが,うまくいかない.

右端を揃えてくれるのはよいのだが,左がはみ出してしまう.これも想像だが,記号(いまは見出し)部分の幅が固定されているのかもしれない.この幅を\setlengthなどで変更すればどうにかなるかもしれないが,調べるのも面倒だし,(さほど$\mathrm\LaTeX$慣れしていないから)むやみに設定をいじるのはなんとなく怖く,やりたくない.itemize環境を使う作戦は失敗した.

解決策

どうしたものかと思ってさらに調べると,StackExchangeに答えが載っていた.description環境にオプションとして文字列を渡すと,見出し部分の幅が渡した文字列の長さに固定されるらしい.

\begin{description}[とても長い見出し]
 \item[見出し] 説明の文
 \item[とても長い見出し] 説明の文
 \item[短] 説明の文
\end{description}

とすると,

このように,見出しの右端を揃えてくれた.解決!

注意

初めに書いた通り,この方法はbeamerのときにしか使えない.文書の場合はenumitemパッケージを使い,オプションに[labelwidth=長さ]を渡すとだいたい同じことができる(詳細は別の記事).

参考

文中でも引用しましたが,この回答の通りの方法です:
https://tex.stackexchange.com/questions/248940/itemize-dislocated-to-the-left