読了にかかる時間:計算中

Loading...

LaTeXは数式を多用する文章を作成する際にとりわけ便利です。しかしながら、込み入った数式を書こうとすると、その分どうしても記述が複雑になりがちです。本記事では、数式を書く際に強力な手助けとなるLaTeXパッケージphysics(CTAN: Package physics)を取り上げます。

physicsを知ったきっかけ

最近私は、数式を多用するLaTeX文書を個人的に作成しています。そんなときに、複素数の実部・虚部の表記が問題となりました。次の画像のように、標準では実部・虚部を表す記号が(おそらく)フラクトゥール体で出力されます。もちろんこのままでも意味は分かるのですが、私はどちらかというと慣れている立体のReとImによる表現を用いたいと考えました。そのためには自ら定義を行ってもよいのですが、念のため立体のReとImを利用可能にする方法を検索することにしました。すると、この問題とほぼ同様の趣旨の投稿(tex history - Why does amsmath use fraktur for real and imaginary parts? - TeX - LaTeX Stack Exchange)が見つかり、physicsパッケージの存在を知りました。

latex_re_im_default

physicsパッケージの概要

ドキュメント(PDFファイル)によれば、physicsパッケージは「物理学の数式のタイプセットをより簡単に、より速く、そしてより人間にとって読みやすいものにする」ということを目標にしているようです。確かにブラ-ケット記法などの物理学で用いられる表現が含まれています。とはいえ、以下に挙げる例からも分かるように、それにとどまらず様々な分野において、数式を含む文書の作成にphysicsを活用できるでしょう。

physicsパッケージのインストール

TeX Live 2015の場合には、標準でphysicsパッケージがインストールされているようでした。万一導入されていなければ、パッケージマネージャを利用すればよいでしょう。また、W32TeXには標準で含まれていない可能性があります。その場合には、physicsをダウンロードしそれを自ら配置する必要があります。

physicsパッケージの利用例

以下では、パッケージ付属のドキュメントを踏まえて、例とともにphysicsの提供するコマンドを簡単に紹介します。

括弧の自動調整

通常、括弧内に分数、積分記号や総和記号などの大きい表現を入れる場合には、括弧の大きさを調整するために適宜\leftおよび\rightを用いる必要があります。また絶対値記号でも同様の問題が生じます。physicsパッケージは、大きさが自動調整される括弧、絶対値記号、ノルム記号、オーダー記号などを定めています。以下は大きさが自動調整される丸かっこ\pqtyを使用した例です。

\pqty{\sum_{i=1}^{n} x_i y_i}^2 \le
\pqty{\sum_{i=1}^{n} x_i ^2}
\pqty{\sum_{i=1}^{n} y_i ^2}
latex_cauchy_schwarz_f

ベクトルの表記

physicsパッケージでは、ベクトルやそのクロス積・ドット積を表記するためのコマンドが定義されています。また、ナブラ(デル)記号や、それを用いた勾配・発散・回転の表現や、Laplace作用素も定められています。以下はベクトルをボールドかつイタリックで表す\vb*と、勾配\grad・発散\div・回転\curl、およびLaplace演算子\laplacianを用いた例です。

\curl(\grad{f}) = 0 \\
\div(\curl{\vb*{f}}) = 0 \\
\div\grad = \laplacian
latex_div_rot_grad_f

演算子

基本的な三角関数や指数関数などはphysicsパッケージで再定義され、括弧の自動調整が有効になっています。なお、自動調整を行わないものも別名で残されています。また、行列のトレースと階数、誤差関数、留数、Cauchyの主値積分といった記号が新しく定められています。

\sin[2](x) + \cos[2](x) = 1 \\
A^2 - \tr A + \det I = O
latex_operator_f

さらに、立体のRe, Imによる実部・虚部の表現も可能になります。

x = \Re z,\,y = \Im z
latex_new_re_im_f

空白とそれに続くテキスト

「~のとき」のように、場合分けなどで数式の後に空白をあけてテキストを書く場合があります。physicsパッケージには、これを容易に行うためのコマンドが含まれます。

\begin{align*}
|x| &= x \qif x>0 \\
\delta _{ij} &=
\begin{cases}
1 & \qq*{$i = j$のとき} \\
0 & \qq*{$i \ne j$のとき}
\end{cases}
\end{align*}
latex_quad

微分記号と導関数

前後に適切な空白を開け、微分記号や導関数、偏導関数を表記するためのコマンドがphysicsには含まれます。なお、既定ではdxなどのdはローマン体となりますが、italicdiffオプションによりこれをイタリック体にできます。

\int y \dd{x} = \int y \dv{x}{t} \dd{t} \\
\pdv{u}{x} = \pdv{v}{y},\, \pdv{u}{y} = -\pdv{v}{x}
latex_deriv

ブラ-ケット記法

physicsは量子力学で用いられるブラ-ケット記法のためのコマンドを提供します。

行列

physicsには行列を簡単に書くためのコマンドが含まれます。

\mqty(\xmat*{a}{3}{3})\mqty(\xmat*{x}{3}{1})=\mqty(\xmat*{b}{3}{1}) \\
E_3 = \mqty(\imat{3})
latex_matrix

感想とまとめ

まだまだ使い始めたばかりですが、physicsは痒い所に手が届く優れたパッケージであると感じました。数式を多用するLaTeX文章を書く際には、このパッケージの利用を検討すべきでしょう。