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)
などが不要になり、すっきりと表記できる。