2021年4月17日 / LaTeX による二重角括弧

LaTeX で、二重角括弧(<<a>> みたいなやつ、英語では double angle bracket という)の出力にいつも苦労する。多分デフォルトや AMS LaTeX ではサポートされてないはず。結構メジャーな記号だと思うんだけどなあ。

古いけど、ここがまとまっているかな:

この MnSymbol package がなあ。AMS latex package との相性が悪いことがあるみたいなんだよね。

上記ページには "Almost all of LaTeX and AMS mathematical symbols are provided; remaining coverage is available from the MinionPro font with the MinionPro package." と書いてあるけど、うーん。AMS package を前提としてくれないと困るんだよね。

というわけで、美しくてシンプルな解決は見つかってないです。


追記(2024年5月31日)

この note は思ったよりアクセスが多いです。皆さん、同じようなところで悩んでいるかもしれません。

なので、念のため、私の解決法をメモのため書いておきます。といっても、上記 tex.stackexchange.com の解答そのまんまですが。

\makeatletter
\newsavebox{\@brx}
\newcommand{\llangle}[1][]{\savebox{\@brx}{\(\m@th{#1\langle}\)}%
  \mathopen{\copy\@brx\mkern2mu\kern-0.9\wd\@brx\usebox{\@brx}}}
\newcommand{\rrangle}[1][]{\savebox{\@brx}{\(\m@th{#1\rangle}\)}%
  \mathclose{\copy\@brx\mkern2mu\kern-0.9\wd\@brx\usebox{\@brx}}}
\makeatother

と定義して(上記コードでは # 以降がコメントと解釈されて読みにくいですが、そのままコピーしてみてください)、使うときは

\[ \llangle x \rrangle \]

とするだけです。すると、

という出力結果を得ることができます。

また二重角括弧を大きくするのも簡単で、たとえば

\[ \llangle[\Bigg]{\iint_D dS}\rrangle[\Bigg] \]

とすると、

となります。


この記事が気に入ったらサポートをしてみませんか?