ちょこっと MathJax 番外編: mathcomp パッケージの代替え

no extension

今回は横道に外れて小ネタでいきます。

  1. ちょこっと MathJax: 初期設定
  2. ちょこっと MathJax: 基本的な数式表現
  3. ちょこっと MathJax: インライン数式と別行立て数式
  4. ちょこっと MathJax 番外編: mathcomp パッケージの代替え ← イマココ

たとえば

直角は ±90°。

をインライン数式で書くことを考える。

昔の $\mathrm{\LaTeX}$ は「°」に相当する記号がなく, 90^{\circ} などと表記していた。 すなわち

直角は $\pm90^{\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}']
    }
  }
};

という感じでマクロを組んでみた。 これで,以下のように表示可能になる。

直角は $\pm90\tcdegree$。

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$)

ブックマーク

参考図書

photo
[改訂第7版]LaTeX2ε美文書作成入門
奥村 晴彦 (著), 黒木 裕介 (著)
技術評論社 2017-01-24
大型本
4774187054 (ASIN), 9784774187051 (EAN), 4774187054 (ISBN)
評価     

ついに第7版が登場。紙の本で買って常に側に置いておくのが吉。

reviewed by Spiegel on 2017-09-27 (powered by PA-APIv5)


  1. 他の方法としては siunitx パッケージを使って \ang{90} のように記述する手がある。 ↩︎