つれづれなる備忘録

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

Texによる数式表現22~行列表示(physics パッケージ)

 今回はMathJax3.0のphysicsパッケージの機能のうち行列表示に関するコマンドについて紹介する。今回までで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. 行列表示

\mqtyを用い、行列をarray環境での行列表示と同様にa & b \\ c & dとして、さらに<div>で囲うと

<div>$\vectorbold{A}=\mqty( a & b \\ c & d )$ </div>

$\vectorbold{A}=\mqty( a & b \\ c & d )$

アスタリスクを入れると括弧の形が変わる

<div>$\mqty*( a & b \\ c & d )$ </div>

$\mqty*( a & b \\ c & d )$

括弧を(から[に変えると

<div>$\mqty[ a & b \\ c & d ]$ </div>

$\mqty[ a & b \\ c & d ]$

なお括弧を{にすると、括弧なしで表示される。

<div>$\mqty{ a & b \\ c & d }$ </div>

$\mqty{ a & b \\ c & d }$

また行列式\mqtyの括弧を|とするか

<div>$\mqty| a & b \\ c & d |$ </div>

$\mqty| a & b \\ c & d |$

\mdetを用いる方法もある。

<div>$\mdet{a & b \\ c & d} $</div>

$\mdet{a & b \\ c & d} $

2. 単位行列、ゼロ行列など

 単位行列などある程度要素が決まっている行列は、\mqty()内にそれぞれのコマンドを記述する。 例えば3x3単位行列

$\mqty(\imat{3})$→$\mqty(\imat{3})$

なお<div>タグで囲わなくても行列表示になる。

nxmのゼロ行列は\zmat{n}{m}とする。また\mqtyの括弧を変えることもできる。

$\mqty[\zmat{3}{4}]$→$\mqty[\zmat{3}{4}]$

ゼロ以外の数値の場合は\xmat{1}{n}{m}を用いる。例えば1のみの3x4行列は

$\mqty(\xmat{1}{3}{4})$→$\mqty(\xmat{1}{3}{4})$

行列要素を文字式の添え字で表現する場合はアスタリスクを入れた\xmat*を用いる。

$\mqty(\xmat*{a}{3}{4})$→$\mqty(\xmat*{a}{3}{4})$

縦ベクトルの場合:

$\mqty(\xmat*{a}{3}{1})$→$\mqty(\xmat*{a}{3}{1})$

同様に横ベクトルの場合:

$\mqty(\xmat*{a}{1}{3})$→$\mqty(\xmat*{a}{1}{3})$

パウリ行列も出力することができる。\mqty内にpmat{}と記述すればよい。

$\mqty(\pmat{0})$→$\mqty(\pmat{0})$

$\mqty(\pmat{1})$→$\mqty(\pmat{1})$

$\mqty(\pmat{2})$→$\mqty(\pmat{2})$

$\mqty(\pmat{3})$→$\mqty(\pmat{3})$

3. 対角行列、部分行列

対角項のみを表示する対角行列は\dmat{}\mqtyを用いる

$\mqty(\dmat{1,2,3})$→$\mqty(\dmat{1,2,3})$

対角項の方向を逆にするには\admat{}を用いる。

$\mqty(\admat{1,2,3})$→$\mqty(\admat{1,2,3})$

対角項と行列をミックスする場合は

<div>$\mqty(\dmat{1,2 & 3 \\ 4 & 5})$</div>

$\mqty(\dmat{1,2 & 3 \\ 4 & 5})$

少し応用してドット記号などを入れれば

<div>$\mqty(\dmat{1,&\ddots, n & 3 \\ 4 & 5})$</div>

$\mqty(\dmat{1,&\ddots, n & 3 \\ 4 & 5})$

4. まとめ

 アレイ環境\begin{array}~\end{array}などの宣言不要のため特に単位行列などは行列表示を行う上ではコマンドを大幅に簡略化できる。