R MarkdownやPandocでMarkdown出力する時に数式をPNG画像化する

by
カテゴリ:

R MarkdownやPandocは数式をレンダリングする方法をいくつか提供しています1。 代表的な方法にMathJaxやKaTeXがありますが、これらはJavaScriptで実装されているため、 出力形式がマークダウンで、ビューアーがGitHubのような場合、利用できません。

そこでWebTexです。 これなら数式を画像として挿入するため、マークダウン形式であろうと数式をレンダリングできます。

たとえば1から10までの総和の式をLaTeX記法で記述しておくと、続く画像のようにレンダリングされます。 レンダリングされた数式を右クリックすると、画像として保存できるので確かめてみてください。

$$
\sum_{i=1}^{10}{i}
$$



\sum_{i=1}^{10}{i}

使い方は簡単です。 Pandocを直接実行する場合はコマンドオプションに--webtexを足します。

pandoc -t markdown --webtex <<< "$\sum_{i=1}^{10}{i}$"

R Markdownも内部ではPandocを呼んでいるので、Pandocに--webtexオプションが渡るようにします。 たとえばgithub_document関数を用いてマークダウンを出力する際は、 pandoc_args引数に"--webtex"を指定します。 md_document関数などを用いる場合も同様です。

output:
  github_document:
    pandoc_args: "--webtex"

この機能、PandocのドキュメントではHTMLにおける数式レンダリング方法として紹介されています。 マークダウン形式でも利用可能と補足されているものの、ミスリーディングな感が否めません。

Enjoy!!