\log や \lim のようなコマンドは,\log, \lim
のように既に演算子が定義されていますが,新しい演算子を定義したいときがあるでしょう。
今回は,新しい演算子を定義するために使う \DeclareMathOperator
の使い方を紹介します。最後には,\operatorname
コマンドというのも紹介します。
DeclareMathOperatorコマンドの使い方
このコマンドは,\DeclareMathOperator{新しいコマンド}{出力される演算子}
または \DeclareMathOperator*{新しいコマンド}{出力される演算子}
の形で使います。*がつくかどうかは,添え字の付き方の違いです。
\DeclareMathOperator{\ope}{ope}
とすると,本文数式中で \ope_a f
のようにすることで, \log_a b と同様に添え字が斜めにつく“log型”の作用素
が定義できます(強調のため色は変えています)。また,\ope_a^b f
とすると,
とできます。一方,
\DeclareMathOperator*{\ope}{ope}
のように,*をつけると,本文数式中に \ope_a f
とすることで, \displaystyle \lim_{n\to\infty} a_n と同様に添え字が下につく“lim型”の作用素
が定義できます。また,\ope_a^b f
のようにすれば,
のように上下に装飾を付けることも可能です。
ただし,インラインモードで出力するときは, \lim_{n\to\infty} a_n や \max_x f(x) のように,斜め下につきます。実際,インラインでは, \color{red} \operatorname*{ope}_a f のようになります。
コマンドの例
いくつかコマンドの定義の例を挙げておきましょう。コピペして使ってもらって構いません。
% log type
\DeclareMathOperator{\sgn}{sgn}
\DeclareMathOperator{\sign}{sign}
\DeclareMathOperator{\Supp}{Supp}
\DeclareMathOperator{\tr}{tr}
\DeclareMathOperator{\Tr}{Tr}
\DeclareMathOperator{\Det}{Det}
\DeclareMathOperator{\Log}{Log}
\DeclareMathOperator{\rank}{rank}
\DeclareMathOperator{\rk}{rk}
\DeclareMathOperator{\diag}{diag}
\DeclareMathOperator{\corank}{corank}
\DeclareMathOperator{\Res}{Res}
\DeclareMathOperator{\Ker}{Ker}
\DeclareMathOperator{\coker}{coker}
\DeclareMathOperator{\Coker}{Coker}
\DeclareMathOperator{\Var}{Var}
\DeclareMathOperator{\Cov}{Cov}
\DeclareMathOperator{\sech}{sech}
\DeclareMathOperator{\csch}{csch}
\DeclareMathOperator{\arcsec}{arcsec}
\DeclareMathOperator{\arccot}{arccot}
\DeclareMathOperator{\arccsc}{arccsc}
\DeclareMathOperator{\arccosh}{arccosh}
\DeclareMathOperator{\arcsinh}{arcsinh}
\DeclareMathOperator{\arctanh}{arctanh}
\DeclareMathOperator{\arcsech}{arcsech}
\DeclareMathOperator{\arccsch}{arccsch}
\DeclareMathOperator{\arccoth}{arccoth}
\DeclareMathOperator{\grad}{grad}
\DeclareMathOperator{\div}{div}
\DeclareMathOperator{\rot}{rot}
% limit type
\DeclareMathOperator*{\argmin}{arg~min}
\DeclareMathOperator*{\argmax}{arg~max}
ここで arg~min
などの ~
は,「改行禁止のスペース」を表します。
operatornameコマンド
amsmath
パッケージには,\DeclareMathOperator
コマンドと類似のものに,\operatorname, \operatorname*
コマンドがあります。これは数式モードにおいて,たとえば
\operatorname{ope}_a f, \operatorname*{ope}_b g
とかくと,
\operatorname{ope}_a f, \operatorname*{ope}_b gのようになります。
これは,「一度しか使わないため,わざわざ別途のコマンドとして定義する必要がない」場合や,複雑なことをしたい場合に役に立ちます。
定義済みの数学関数
\sin や \log などは,わざわざ自分で定義しなくとも,すでに定義されています。このような関数は,以下の記事を参照してください。