ちょこっと MathJax: 基本的な数式表現
さて,初期設定は前回で完了したので,今回は基本的な数式の書き方を説明していこう。
- ちょこっと MathJax: 初期設定
- ちょこっと MathJax: 基本的な数式表現 ← イマココ
- ちょこっと MathJax: インライン数式と別行立て数式
- ちょこっと MathJax 番外編: mathcomp パッケージの代替え
数式表現の「お約束」
初っ端からナニだが,数式を書く際には昔からある「お約束」が存在する。
まず最初に,大原則として「数式で使う文字はイタリック体1で書く」というのがある。 たとえば,こんな感じだ。
$E$ や $m$ や $c$ の文字がイタリック体になっているのが分かるだろうか。 この大原則をベースに以下の3つの例外が存在する(『LaTeX2ε美文書作成入門』より引用)。
- 数字はローマン体にする($\mathit{3.14}$ ではなく $3.14$)
- 複数文字からなる名前はローマン体にする($sin\,x$ ではなく $\sin x$)
- 単位記号はローマン体にする($3\,m$ ではなく $3\,\mathrm{m}$)
最初の大原則と併せて,以上の4つのルールを守れば簡単な数式表現は問題ない。 $\mathrm{\TeX}$ ではこのルールを加味した組版を半自動で行い(万能ではない), MathJax についても $\mathrm{\TeX}$ と同様の処理ができる。
たとえば数字に関しては普通に 1+2=3
と書けば $1+2=3$ と表示される。
数字部分がローマン体になっているのが分かるだろう。
$\sin$ 関数のように有名な名前については \sin
のようにあらかじめコマンド2 が登録されていて, \sin x
と書けば $\sin x$ と表示される。
コマンドがないものについては \mathrm
コマンドで文字をローマン体に変更できる。
たとえば $3\,\mathrm{m}$ と表示するには 3\\,\mathrm{m}
と書けばよい。
その他の数式組版規則
実は ISO や JIS で決められている数式の組版規則はもう少し複雑である。
たとえば円周率 $\mathit{\pi}$ は1文字だけど定数の名前なので
$$ \mathrm{\pi}=3.1415\dots $$とローマン体にする(TeX フォントだと違いが分からないが)。 また以下の式について
$$ F(x)=\int\\,f(x)\\,\mathrm{d}x $$$\mathrm{d}x$ の d はイタリック体 $d$ ではなくローマン体 $\mathrm{d}$ にする,といった決まりがあるそうだ。
更に数学論文や科学論文では所属する学会や研究会などによってローカル・ルールが存在し,名前についても特定のものについては $\mathrm{Spin}(n)$ ではなく $Spin(n)$ と書きなさい,とか色々あるらしい。 数式を論文などで記述する際は,このような細かいルールにも注意する必要がある。
数式は「空き」が重要
少し遡って,先程 $3\,\mathrm{m}$ と表示するのに 3\\,\mathrm{m}
と記述したことを覚えているだろうか。
この中の \\,
は「空き」を意味するコマンドである。
明示的な「空き」は見た目を分かりやすく調整するために重要である。
たとえば $\sqrt{2} \times x$ を表現したい場合,素朴に “\sqrt{2}x
” と記述すると $\sqrt{2}x$ となり, $\sqrt{2x}$ なのか $\sqrt{2}\,x$ なのか見た目でわかり辛い。
そこで明示的に「空き」を入れて “\sqrt{2}\\,x
” と記述することで,はっきりと $\sqrt{2}\,x$ であることを示せる3。
「空き」を示すコマンドは他にもあるのだが,とりあえず簡単な数式を書く場合には \\,
コマンドだけ覚えておけばOKである。
MathJax の制限事項
残念ながら MathJax には $\mathrm{\TeX}$ にない制限が存在する。
不等号に注意
$\mathrm{\TeX}$ 記法では不等号記号はそのまま <
や >
文字を使うのだが, HTML ではこれらの文字は要素タグ(<body>
など)を指す記号として使われるため,そのまま数式に使うとブラウザによっては誤動作を起こす可能性がある。
そのため MathJax では不等号記号を示すコマンドが用意されている。
たとえば $a \lt b$ は $a \lt b$
と記述する。
同様に $a \gt b$ は $a \gt b$
と記述する。
\lt
や \gt
は標準の $\mathrm{\TeX}$ 記法には存在しないコマンドなので,数式を流用する場合には注意が必要である。
あるいは $\mathrm{\LaTeX}$ 側で
\newcommand{\lt}{<}
\newcommand{\gt}{>}
のようにコマンドを定義しておく手もある。
TeX 記法のメリットは可搬性にある
こうした細かい面倒がありつつも $\mathrm{\TeX}$ 記法を使う理由は,記述の可搬性にある。 数式を $\mathrm{\TeX}$ 記法で書けば,それはそのまま他のブログや論文に流用できるし,式の構成をちょこちょこっと変えて「翻案」するのも簡単である。 これは MathML のような見た目だけを制御する記述形式にはない利点と言える4。
というわけで, MathJax で積極的に数式を書いて読んで流用していくのがいいと思う。
ブックマーク
参考図書
- [改訂第8版]LaTeX2ε美文書作成入門
- 奥村晴彦 (著), 黒木裕介 (著)
- 技術評論社 2020-11-14
- 大型本
- 4297117126 (ASIN), 9784297117122 (EAN), 4297117126 (ISBN)
- 評価
2020年末に第8版が出てたのに気付かなかったよ。可能なら紙の本も買って常に側に置いておくのが吉。版元には PDF 版もある。
-
$\mathrm{\TeX}$ ではイタリック体(italics)と斜体(slanted)は異なる字体である。また斜体はしばしばローマン体(Roman)から合成される場合がある。 ↩︎
-
$\mathrm{\TeX}$ では
\
から始まる文字列をコマンド(『LaTeX2ε美文書作成入門』では「命令」)という。\sin
は $\sin$ 関数を表すコマンドである。主な数式コマンドについては『LaTeX2ε美文書作成入門』の第5章と第6章に解説があるので,とりあえずは参考になるだろう。 ↩︎ -
\sin
のようなコマンドは演算子と同じ扱いなので “\sin x
” と記述しても結果は $\sin x$ となる。ちなみに $x$ を括弧で囲むと $\sin (x)$ となる。 ↩︎ -
本ブログでは触れないが, MathJax は AsciiMath にも対応している。 AsciiMath にも $\mathrm{\TeX}$ 記法と同様のメリットがある。 AsciiMath と $\mathrm{\TeX}$ 記法の比較記事は時々目にするが,個人的には使いやすい方を使えばいいと思う。私が $\mathrm{\TeX}$, というか $\mathrm{\LaTeX}$ を気に入っているのは,見た目の美麗さだけを追求する(出来の悪いペイント・ツールのごとき)ことではなく,かといって届かない理想ばかりを追いかける潔癖症なシステムでもなく,賢さと泥臭さを上手く融合させている点にある。そうでなければ,ひとつのシステムが(中身が変貌しつつも)40年近くも継続して使われ続ける筈がない。 ↩︎