ちょこっと MathJax 番外編: mathcomp パッケージの代替え
今回は横道に外れて小ネタでいきます。
- ちょこっと MathJax: 初期設定
- ちょこっと MathJax: 基本的な数式表現
- ちょこっと MathJax: インライン数式と別行立て数式
- ちょこっと MathJax 番外編: mathcomp パッケージの代替え ← イマココ
- ちょこっと MathJax 番外編: V4 へのアップグレード
たとえば
をインライン数式で書くことを考える。
昔の $\mathrm{\LaTeX}$ は「°」に相当する記号がなく, 90^{\circ} などと表記していた。
すなわち
直角は $\pm90^{\circ}$。
と書いて
と表示させていたわけだ。
しかし \circ ($\circ$) は角度を表す記号ではなく $+$ や $-$ と同じ2項演算子の記号である。
そこで今は mathcomp パッケージの \tcdegree コマンドを使って
直角は $\pm90\tcdegree$。
とするのが正しいそうだ1。
ところが MathJax では \tcdegree コマンドを持っていないようで,上の記述ではエラーになる。
MathJax の機能拡張でもそれらしいものは見当たらず,誰かが公開してるってわけでもないっぽい。
みんなどうやってるんだ?
ググってみたら「Unicode の「°」文字を使うか \unicode{xb0} で指定しろ」という身も蓋もない回答が見つかった。
どうもそれしかないらしい… sigh
そこで $\mathrm{\LaTeX}$ との互換性を保つため
MathJax = {
tex: {
macros: {
tcdegree: ['\\unicode{xb0}']
}
}
};
という感じでマクロを組んでみた。 これで,以下のように表示可能になる。
mathcomp パッケージで使える記号はかなりあるのだが,私がよく使いそうなもののみ以下に挙げる。
| Macros | $\mathrm{\LaTeX}$ Format | Output |
|---|---|---|
tcdegree: ['\\unicode{xb0}'] |
$35\tcdegree$ |
$35\tcdegree$ |
tccelsius: ['\\unicode{x2103}'] |
$35\,\tccelsius$ |
$35\,\tccelsius$ |
tcperthousand: ['\\unicode{x2030}'] |
$35\,\tcperthousand$ |
$35\,\tcperthousand$ |
tcmu: ['\\unicode{x3bc}'] |
$35\,\tcmu\mathrm{s}$ |
$35\,\tcmu\mathrm{s}$ |
tcohm: ['\\unicode{x3a9}'] |
$35\,\tcohm$ |
$35\,\tcohm$ |
\tccelsiusは\tcdegree\mathrm{C}でもいける($35\,\tcdegree\mathrm{C}$→ $35\,\tcdegree\mathrm{C}$)。これなら華氏にも応用できる($35\,\tcdegree\mathrm{F}$→ $35\,\tcdegree\mathrm{F}$)\tcmuは\symup{\mu}みたいにしたいのだが\symupコマンドに相当するものが MathJax にないっぽい\tcohmは\Omegaと等価,というかフォントのバランスを考えると\Omegaを使ったほうがいいと思う($35\,\Omega$→ $35\,\Omega$)
【2025-09-01 追記】 textcomp パッケージを使う
MathJax では mathcomp の代わりに textcomp パッケージが使えるらしい。
コマンド名は mathcomp とは異なるので注意。
| $\mathrm{\LaTeX}$ Format | Output |
|---|---|
$35\textdegree$ |
$35\textdegree$ |
$35\,\textcelsius$ |
$35\,\textcelsius$ |
$35\,\textperthousand$ |
$35\,\textperthousand$ |
$35\,\textmu\mathrm{s}$ |
$35\,\textmu\mathrm{s}$ |
$35\,\textohm$ |
$35\,\textohm$ |
MathJax で textcomp を有効にするには,以下のように設定する。
<script>
MathJax = {
loader: {load: ['[tex]/textcomp']},
tex: {packages: {'[+]': ['textcomp']}},
...
};
</script>
textcomp は MathJax の数式モードで使える。
テキストモード(\text{ ... })で使う場合は textmacros と組み合わせて使う。
<script>
MathJax = {
loader: {load: ['[tex]/textcomp', '[tex]/textmacros']},
tex: {packages: {'[+]': ['textcomp', 'textmacros']}},
...
};
</script>
textcomp で使えるシンボルは以下が参考になるだろう。
ブックマーク
参考図書
- [改訂第9版]LaTeX美文書作成入門
- 奥村 晴彦 (著), 黒木 裕介 (著)
- 技術評論社 2023-12-09 (Release 2023-12-09)
- 単行本(ソフトカバー)
- 4297138891 (ASIN), 9784297138899 (EAN), 4297138891 (ISBN)
- 評価
2023年末に出てるのに気が付かなかった orz 今回は版元で PDF 版を買った。

