MathJax v3 がリリースされていた

no extension

いや,確かに8月末にはリリースするって予告されてたけどさ。 その後のアナウンスがないから気づかなかったよ。

ちうわけで MathJax v3.0.0 がリリースされていた。 よーやくベータが取れたよ(笑)

ドキュメントも v3 に対応しているようだ。

Web ページで MathJax を使えるようにするには以下のコードを記述する。

<script>
MathJax = {
  ...
};
</script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

MathJax v3 の特定のバージョンを指定するには

<script>
MathJax = {
  ...
};
</script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3.0.0/es5/tex-mml-chtml.js"></script>

などとする。

ちなみに IE (Internet Explorer) はサポートから外れるようだ。 まぁ IE は Web ではもう「要らない子」だからね。

MathJax v3 の設定

MathJax = { ... }; の部分には MathJax の設定を記述する。 v2.7.x までとはフォーマットが異なるので注意。

主な設定項目は以下の通り。

TeX Input Processor Options

設定項目と既定値は以下の通り。

MathJax = {
  tex: {
    packages: ['base'],        // extensions to use
    inlineMath: [              // start/end delimiter pairs for in-line math
      ['\\(', '\\)']
    ],
    displayMath: [             // start/end delimiter pairs for display math
      ['$$', '$$'],
      ['\\[', '\\]']
    ],
    processEscapes: true,      // use \$ to produce a literal dollar sign
    processEnvironments: true, // process \begin{xxx}...\end{xxx} outside math mode
    processRefs: true,         // process \ref{...} outside of math mode
    digits: /^(?:[0-9]+(?:\{,\}[0-9]{3})*(?:\.[0-9]*)?|\.[0-9]+)/,
                               // pattern for recognizing numbers
    tags: 'none',              // or 'ams' or 'all'
    tagSide: 'right',          // side for \tag macros
    tagIndent: '0.8em',        // amount to indent tags
    useLabelIds: true,         // use label name rather than tag for ids
    multlineWidth: '85%',      // width of multline environment
    maxMacros: 1000,           // maximum number of macro substitutions per expression
    maxBuffer: 5 * 1024,       // maximum size for the internal TeX string (5K)
    baseURL:                   // URL for use with links to tags (when there is a <base> tag in effect)
       (document.getElementsByTagName('base').length === 0) ?
        '' : String(document.location).replace(/#.*$/, ''))
  }
};

インライン数式を囲む記号として $ .. $ を有効にするには inlineMath 項目を以下のように変更する。

inlineMath: [['$', '$'], ['\\(', '\\)']]

別行立て数式に対して自動採番を行うには tags 項目に ams または all をセットする。

自作のマクロを組み込む際には macro 項目をセットする。

macros: {
  ssqrt: ['\\sqrt{\\smash[b]{\\mathstrut #1}}', 1]
}

CommonHTML Output Processor Options

設定項目と既定値は以下の通り。

MathJax = {
  chtml: {
    scale: 1,                      // global scaling factor for all expressions
    minScale: .5,                  // smallest scaling factor to use
    matchFontHeight: true,         // true to match ex-height of surrounding font
    mtextInheritFont: false,       // true to make mtext elements use surrounding font
    merrorInheritFont: true,       // true to make merror text use surrounding font
    mathmlSpacing: false,          // true for MathML spacing rules, false for TeX rules
    skipAttributes: {},            // RFDa and other attributes NOT to copy to the output
    exFactor: .5,                  // default size of ex in em units
    displayAlign: 'center',        // default for indentalign when set to 'auto'
    displayIndent: '0'             // default for indentshift when set to 'auto'
  }
};

日本語の文章に数式を埋め込む場合,文字サイズのバランスがよくないので matchFontHeight 項目を false にする。

別行立て数式を左寄せで表示するには displayAlign 項目を left にする。 併せて displayIndent 項目でインデント幅もセットするとよい。

拡張パッケージを組み込む

たとえば color という拡張パッケージを組み込むには以下のように記述する。

MathJax = {
  loader: {
    load: ['[tex]/color']
  },
  tex: {
    packages: {'[+]': ['color']}
  }
};

ただし現時点で使えそうなパッケージはなさそう。 mathcomp があるといいのに。

v2.7.x で外部パッケージだったものの一部は標準で組み込まれているようだ。 たとえば mhchem.js は明示的に組み込まなくても

経済成長と $\ce{CO2}$ 排出量は比例しなくなっている。

経済成長と $\ce{CO2}$ 排出量は比例しなくなっている1

てな感じに書くことができる。

このサイトの設定内容

このサイトの設定内容は今のところ以下の通り。

MathJax = {
  tex: {
    inlineMath: [['$', '$'], ['\\(', '\\)']],
	processEscapes: true,
    tags: 'ams',
    macros: {
      ssqrt: ['\\sqrt{\\smash[b]{\\mathstrut #1}}', 1],
      tcdegree: ['\\unicode{xb0}'],
      tccelsius: ['\\unicode{x2103}'],
      tcperthousand: ['\\unicode{x2030}'],
      tcmu: ['\\unicode{x3bc}'],
      tcohm: ['\\unicode{x3a9}']
    }
  },
  chtml: {
    matchFontHeight: false,
    displayAlign: "left",
    displayIndent: "2em"
  }
};

MathJax v3 では利用できる Web フォントは1種類のみで他のフォントを選択することができない。 これは将来バージョンで改善するらしい。 Web フォントのサポートが組み込まればまた紹介することもあるだろう。

ブックマーク

参考図書

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

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

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


  1. 経済成長とCO2排出量は「比例しなくなっている」:IEA報告書」より。