その他
    ホーム 技術発信 DoRuby vimでMarkdownに数式を組込んでプレビューさせる
    vimでMarkdownに数式を組込んでプレビューさせる
     

    vimでMarkdownに数式を組込んでプレビューさせる

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    Markdownの編集中にリアルタイムにプレビューしてくれると非常に便利である。

    vimでMarkdownを編集する場合には、previmを利用すると、browser上でほぼリアルタイムにプレビューしてくれる(marked.jsを利用しているらしい)。

    さて、本記事では、Markdownで書いている文章に、数式を綺麗に表示させる方法について記載する。

    数式を綺麗に表示させるために「MathJax」を利用する。

    previmでMathJaxに対応したMarkdownを利用するためには、previmのpluginの下記を変更すればよい。

    変更点1

    「preview/index.html」に以下を挿入する。

        <script type="text/x-mathjax-config">
          MathJax.Hub.Config({
            CommonHTML: { matchFontHeight: false }
          });
        </script>
        <script async src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML">
        </script>
    

    変更点2

    「preview/js/previm.js」に1行挿入する。

        if (needReload && (typeof getContent === 'function') && (typeof getFileType === 'function')) {
          var beforePageYOffset = _win.pageYOffset;
          _doc.getElementById('preview').innerHTML = transform(getFileType(), getContent());
    
          mermaid.init();
          Array.prototype.forEach.call(_doc.querySelectorAll('pre code'), hljs.highlightBlock);
          autoScroll('body', beforePageYOffset);
          style_header();
    
          // ↓の1行を挿入する。
          MathJax.Hub.Typeset(document.getElementById("preview"));
        }
    

    数式の書き方

    MathJaxを利用しているのでMathJaxの記法(TeXの記法に準拠しているらしい)で記述できる。

    以下に記述の例を示す。

    複数行数式の例

    \\[
      E = mc^2
    \\]
    

    本記事の冒頭の画像は、この例の記述で表示される数式(のキャプチャ)である。

    インライン数式の例

    計算式「\\( \alpha \times \beta \\)」で表される。