PR

【LaTeX】括弧類を定義するDeclarePairedDelimiterなど3つ

LaTeX
記事内に広告が含まれています。

絶対値をその大きさを変えながら出力する際,\left| \right| のように書くことがよくあるでしょう。しかし,\abs{} のようにかくと,絶対値を出力してくれ,括弧の大きさを自動で調整してくれたり,もっと言えば括弧の大きさをカスタマイズできると嬉しいですね。

今回はそれができる,mathtools パッケージに定義されている \DeclarePairedDelimiter とその発展である \DeclarePairedDelimiterX, \DeclarePairedDelimiterXPP について,その使い方を紹介します。

mathtools パッケージが必要です。すなわち,\usepackage{mathtools} と書かないと動きません。

DeclarePairedDelimiterコマンドの基本的な使い方と具体例

DeclarePairedDelimiterコマンドの使い方

このコマンドは,プリアンブルに

\DeclarePairedDelimiter{\cmd}{<left_delim>}{<right_delim>}

の形で,括弧を定義できます。\cmd は実際に数式内で使いたいコマンド,<left_delim>, <right_delim> はそれぞれ左・右の括弧を表します。

これにより,数式中で以下のように使えます。

コマンド出力の種類備考
\cmd{}普通サイズの括弧を出力する
\cmd*{}自動調整サイズの括弧を出力する
\cmd[<size>]{}<size>に指定したサイズの括弧を出力するサイズには
\big, \Big,\bigg,\Bigg
等を指定する

具体例を挙げましょう。

DeclarePairedDelimiterコマンドの具体例

以下のようにプリアンブルに書くことで,絶対値を定義しましょう。\lvert, \rvert は絶対値を表すタテの棒を指します。

\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}

すると,以下のように使えます。

コマンド出力
\abs{\frac{a}{b}} \displaystyle|\frac{a}{b}|
\abs*{\frac{a}{b}} \displaystyle\left| \frac{a}{b} \right|
\abs[\big]{\frac{a}{b}} \displaystyle\bigl| \frac{a}{b} \bigr|
\abs[\Big]{\frac{a}{b}}\displaystyle \Bigl| \frac{a}{b} \Bigr|
\abs[\bigg]{\frac{a}{b}}  \displaystyle\biggl| \frac{a}{b} \biggr|
\abs[\Bigg]{\frac{a}{b}} \displaystyle\Biggl| \frac{a}{b} \Biggr|

便利ですね。

DeclarePairedDelimiterコマンドの注意

注意ですが,このコマンドで定義した括弧は,\bm{\rbra{...}} のように,bm パッケージと一緒に使うとエラーになります。これに関しては,少々厄介です。

DeclarePairedDelimiterコマンドの定義の具体例

実際のコマンドの定義の例を挙げておきましょう。

\DeclarePairedDelimiter{\abs}{\lvert}{\rvert} % | | absolute value
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert} % || || norm
\DeclarePairedDelimiter{\rbra}{\lparen}{\rparen} % () round brackets
\DeclarePairedDelimiter{\cbra}{\lbrace}{\rbrace} % {} curly brackets
\DeclarePairedDelimiter{\sbra}{\lbrack}{\rbrack} % [] square brackets
\DeclarePairedDelimiter{\abra}{\langle}{\rangle} % < > angle brackets
\DeclarePairedDelimiter{\floor}{\lfloor}{\rfloor} % floor function
\DeclarePairedDelimiter{\ceil}{\lceil}{\rceil} % ceil function

DeclarePairedDelimiterXコマンド

さらに発展的なコマンドとして \DeclarePairedDelimiterX というものがあります。これは,さらに細かなコマンド指定ができます。

基本的な使い方と具体例

これは,

\DeclarePairedDelimiterX{\cmd}[<num args>]{<left_delim>}{<right_delim>}{<body>}

の形で使います。<num_args> はこのコマンドがとる引数の個数,<body> は括弧の中身の形式を指定します。たとえば,

\DeclarePairedDelimiterX{\rpair}[2]{\lparen}{\rparen}{#1, #2}

とすると,数式中で \rpair{a}{b} と書くことで (a, b) を得ることができます。

他に,\rpair*{a}{b}, \rpair[<size>]{a}{b} として括弧の大きさを変えられることは,\DeclarePairedDelimiter のときと同様です。他に,たとえば

\DeclarePairedDelimiterX{\mybracket}[3]{\lparen}{\rparen}{#1, #2 \to #3}

とすると,\mybracket{a}{b}{x} (a, b \to x) となります。

delimsizeコマンドで<body>を括弧に連携

さらに <body> の部分に,\delimsize というコマンドを用いて,外の括弧の大きさに対応するシンボルを追加することができます。この際,たとえば

\DeclarePairedDelimiterX{\Set}[2]{\lbrace}{\rbrace}{#1\,\delimsize\vert\,#2}

(\, は小さなスペースを指します) とすれば,数式中で \Set{\frac{p}{q}}{p, q \in \mathbb{Z}} とすることで,

\Set{\frac{p}{q}}{p, q \in \mathbb{Z}} の出力例

となり,\Set*{\frac{p}{q}}{p, q \in \mathbb{Z}} とすることで,

\Set*{\frac{p}{q}}{p, q \in \mathbb{Z}} の出力例

と出力されます。集合の内包的表記を書くのに使えそうですね。

DeclarePairedDelimiterXPPコマンド

さらに進んだコマンドとして,\DeclarePairedDelimiterXPP コマンドというのもあります。これは,括弧の前後に出力追加できるもので

\DeclarePairedDelimiterXPP{\cmd}[<num args>]{<pre code>}{<left_delim>}
{<right_delim>}{<post code>}{<body>}

とすることで,

{<pre code>}{<left_delim>}{<body>}{<right_delim>}{<post code>}

の形の出力を得ることができます。たとえば,

\DeclarePairedDelimiterXPP\lnorm[1]{}{\lVert}{\rVert}{_2}{#1}

と定義すると \lnorm{f} と書くことで, L^2 ノルムを表す括弧 \| f\|_2 を得ることができます。

括弧の大きさを変えれること等は,先ほどと同じです。

その他の特殊コマンド記事一覧

参考

  1. mathtools – Mathematical tools to use with amsmath