MathJax 数式内のフォントを変更する

MathJax で書いた数式内の日本語のフォントが数式外の文章と異なる場合がある。

Figure 1: 数式内でフォントが異なる例

Figure 1: 数式内でフォントが異なる例

日本語(正確には「デフォルトのフォントに含まれていない文字」)に使うフォントを指定するコードを入れれば解決できる。

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
  "HTML-CSS": {
    undefinedFamily: "'Raleway', Helvetica, Arial, sans-serif"
  }
  });
</script>

以下は使用例。

数式外の文章

\begin{align*} y = x 数式内の文章 \end{align*}

追記

上の設定でうまく行ったと思ったのだが、しばらくして確認したら数式内のひらがなのフォントだけおかしくなった。

MathJax がデフォルトで使おうする STIX フォントにひらがな用のフォントが存在するのが原因なので、以下のようにして STIX フォントを使わないように設定すれば回避できる。

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
  "HTML-CSS": {
    // デフォルトが ["STIX","TeX"] なのを変更
    // [] にしても良い
    availableFonts: ["TeX"],
    undefinedFamily: "'Raleway', Helvetica, Arial, sans-serif"
  }
  });
</script>

参考資料

The HTML-CSS output processor — MathJax 2.7 documentation