ari23の研究ノート

メーカ勤務エンジニアの技術ブログです

Windows + Kaoriya vim + previmで数式を表示させる方法

Markdownで数式を表示する設定を調べても、ほとんどがMac環境での設定で、Windows環境での設定に手こずったので、今回はそれを整理したいと思います🐜

→間違いを見つけたので修正しました!(2020/02/28)

環境

私の環境は以下の通りです。

項目 内容
OS Windows 10 64bit
vim Kaoriya vim1

なお、dein.vimを使用し、そのディレクトリは以下に置きます。

C:\freeware\vim81-kaoriya-win64\vimfiles\bundles\repos\github.com\Shougo\dein.vim

dein.vimなどWindowsでのVimの設定は、以下の記事を参考にしてください。

Kaoriya GVimの設定方法|Git for Windowsインストール手順からおすすめプラグインやvimrcを紹介 - ari23の研究ノート

設定

以下の2つのファイルに数行追加します。

  • C:\freeware\vim81-kaoriya-win64\vimfiles\bundles\.cache\_vimrc\.dein\preview\_\index.html
    C:\freeware\vim82-kaoriya-win64\vimfiles\bundles\repos\github.com\kannokanno\previm\preview\_\index.html

このファイルのheadに、以下のMathjax StartからMathjax Endまでをコピペします

<html>
    <head>
        <meta charset="UTF-8">
        <title>Preview</title>
        <link type="text/css" href="css/previm.css" rel="stylesheet" media="all" />
        <link type="text/css" href="../_/css/lib/mermaid.min.css" rel="stylesheet" media="all" />

        <!-- Mathjax Start -->
        <script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML' async></script>
        <!-- Mathjax End -->

        <style>
          /* Fix #43 */
  • C:\freeware\vim81-kaoriya-win64\vimfiles\bundles\.cache\_vimrc\.dein\preview\_\js\previm.js
    C:\freeware\vim82-kaoriya-win64\vimfiles\bundles\repos\github.com\kannokanno\previm\preview\_\js\previm.js

このファイルのfunction loadPreview()の下の方に、以下のMathjax StartからMathjax Endまでをコピペします。

    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();

    /* Mathjax Start */
    MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]] } }); // added1
    MathJax.Hub.Queue(["Typeset",MathJax.Hub]);  //added2
    autoScroll('body');
    /* Mathjax End */
    }

以下追記内容(2020/02/28)

最後にdein.vimのキャッシュをクリアします。
GVimまたはVimで以下のコマンドを叩きます。

:call dein#recache_runtimepath()

これでわざわざキャッシュファイルを編集することはありません。

数式の書き方

markdownファイルで、$で数式を挟むとインライン表示できます。

$X[n] = \sum_{k=0}^{N-1}x[k] \exp({-j\frac{2\pi nk}{N}})$は重要な数式です。

 X[n] = \sum_{k=0}^{N-1}x[k] \exp({-j\frac{2\pi nk}{N}}) は重要な数式です。


また、$$で挟むと中央揃えで表示されます。

$$
X[n] = \sum_{k=0}^{N-1}x[k] \exp({-j\frac{2\pi nk}{N}})
$$
 \displaystyle
 X[n] = \sum_{k=0}^{N-1}x[k] \exp({-j\frac{2\pi nk}{N}})

ちょっと癖があったりしますが、基本的にはLaTexの数式と同じ記法です。

おわりに

2017年くらいに1回やってダメで、もう一回試したらできるようになりました。
編集するファイルパスが違うことに気づくのが難しかったです。

でも、これでMarkdownで数式がかけるようになったので、いよいよ研究ノートが不要になりそうです。

参考になれば幸いです(^^)

参考文献