つれづれなる備忘録

日々の発見をあるがままに綴る

Texによる数式表現18~ベクトル機能(physics パッケージ)

 今回はMathJax3.0のphysicsパッケージの機能のうちベクトル表示に関するコマンドについて紹介する。

physicsパッケージのマニュアルはhttp://ftp.jaist.ac.jp/pub/CTAN/macros/latex/contrib/physics/physics.pdf

MathJax3.0とphysicsパッケージのロードについては以下に示す。

+MathJax3.0をロードするscript

<script>
MathJax = {
  loader: {load: ['[tex]/physics']},
  tex: {
    inlineMath: [['$', '$'], ['\\(', '\\)']],
    packages: {'[+]': ['physics']}
  },
  chtml: {
    matchFontHeight: false
  }
};
</script>
<script id="MathJax-script" async
  src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js">
</script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> //IE用スクリプト

注:HOMEやTOPページで複数ページ表示された状態では、script同士が干渉してうまく認識できないコマンドがある模様。1記事のみ個別のページとしてロードすれば正しく表示される

(追記2020.09.21): CDNサイトへのプライバシーエラーによりChromeなどで数式表示できない。対策は下記参照

Texによる数式表現37~MathJax, KaTeX表示トラブルの要因・解決 - つれづれなる備忘録

Texによる数式表現38~MathJaxの表示トラブル解決法 - つれづれなる備忘録

1. ベクトル表記コマンド

ベクトル表記コマンドを用いることで、太字とローマン体を同時に行う。

通常: $\bf{a}$→$\bf{a}$

physics: $\vectorbold{a}$ →$\vectorbold{a}$

短縮の\vb{}は認識できなかった。

アスタリスクを入れることで、イタリック体のままで太字にすることができる。例えば

$\vectorbold*{a}$ →$\vectorbold*{a}$

ギリシャ文字を太字ベクトルとして扱う場合も同様にアスタリスクを入れる。

$\vectorbold*{\theta}$ →$\vectorbold*{\theta}$

以下は太字(+ローマン体)と文字修飾(矢印やハット)の変換を同時に行う。

通常:$\bf{\hat{a}}$ → $\bf{\hat{a}}$

physics:$\vu{a}$→ $\vu{a}$

通常:$\bf{\vec{a}}$→$\bf{\vec{a}}$

physics:$\va{a}$→ $\va{a}$

\vectorboldと同様にアスタリスクを入れることで、イタリック体のままで太字にすることができる。

$\va*{a}$→ $\va*{a}$

$\vu*{a}$→ $\vu*{a}$

\vectorboldと同様にギリシャ文字を太字ベクトルとして装飾する場合も同様にアスタリスクを入れる。

$\va*{\theta}$→ $\va*{\theta}$

$\vu*{\theta}$→ $\vu*{\theta}$

2. ベクトル演算記号

内積$\vdotを用いる

通常:${\bf{\vec{a}}}\cdot{\bf{\vec{b}}}=|a||b|\cos (\theta)$ → ${\bf{\vec{a}}}\cdot{\bf{\vec{b}}}=|a||b|\cos (\theta)$

physics: $\va{a}\vdot \va{b}=\abs{a}\abs{b}\cos(\theta)$ → $\va{a}\vdot \va{b}=\abs{a}\abs{b}\cos(\theta)$

外積$\cross$: $ \cross$ または$\cp$を用いることができる。

勾配記号は\gradを用いるとナブラが太字になる。

通常:$\nabla \Psi$ → $ \nabla \Psi$

physics: $\grad{\Psi}$ → $\grad{\Psi}$

さらに括弧を付け加えると、括弧のサイズも自動調整される。例えば

$\grad[\Psi + \dfrac{\va{a}}{2}]$ → $\grad[\Psi + \dfrac{\va{a}}{2}]$

\divを用いると勾配記号と内積記号を同時に出力する。$\div$→$\div$

もともと\divは÷を出力していたが、physicsパッケージによりコマンドの内容が書き換えられていることに注意が必要である。

\gradと同様に括弧を入れるとサイズが自動調整される。

$\div(\va{f} + \dfrac{\va{a}}{2})$ → $\div(\va{f} + \dfrac{\va{a}}{2})$

勾配記号と外積記号を同時に出力する\curlは認識されない。

ラプラシアン$\laplacian$→$\laplacian$

括弧を入れるとサイズが自動調整される。

$\laplacian[\Psi + \dfrac{\va{a}}{2}]$ → $\laplacian[\Psi + \dfrac{\va{a}}{2}]$

3. まとめ

 従来の\bfはブレスで囲って適用範囲を限定しないと全体を太字にするため{\bf{}}などとする必要があり、その結果ベクトル太字表記はコマンドが煩雑になっていたが、physicsパッケージの\va{}\vu{}を用いるとコマンドが簡単になる。また括弧の自動サイズも有用で\left( \right)などが不要になり、すっきりと表記できる。