📐

MathJaxでLaTeXをsvgに変換する

2022/11/01に公開

ちょっと詰まったので備忘録を残します.

MathJaxの導入

<script async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"</script>

サンプルに従ってスクリプトを読み込みます.

MathJaxのロード時のレンダリングを防ぐ

MathJax = {
    startup: {
        typeset: false
    }
};

設定はMathJaxオブジェクトにコンフィグを代入するみたい.MathJaxのドキュメント

テキストからsvgに変換する

function render() {
  const container = MathJax.tex2svg(input.value);
  const [svg] = container.children;
  output.replaceChildren(svg);
}

MathJaxはsvgをdivで包んだ形で返してくるので, svgを取り出してやる必要があります.
ここではinputから入力を取り出し,レンダリングしたsvgをoutputの子に入れ替えています.

まとめ

ここで作成したプログラムを公開しておきます.

  • 実行例

https://maemon4095.github.io/web_samples/articles/use_mathjax_to_render_tex_to_svg/

  • リポジトリ

https://github.com/maemon4095/web_samples/tree/main/articles/use_mathjax_to_render_tex_to_svg

Discussion