本文を読み飛ばす

NikolaでMathJax

NikolaでMathJaxを使った記録。

やったこと

  • MathJax v4 の導入

  • プラグイン "units" の導入

結論

  1. math_helper.tmpl/templates/ にコピーする。

  2. math_helper.tmpl

    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML" integrity="sha512-yxTB34XQUKlyuz73upeDrZ91/tbZW/YAURVWL3s+09bEWdmORQzUZwSKyBIRxSeHuSwh1aOKEffn2/D65kwyYg==" crossorigin="anonymous"></script>
    % if mathjax_config:
    ${mathjax_config}
    % else:
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({tex2jax: {inlineMath: [['$latex ','$'], ['\\(','\\)']]}});
    </script>
    % endif
    

    % if mathjax_config:
        ${mathjax_config}
    % else:
    <script>
    window.MathJax = {
      options: { processHtmlClass: 'math' },
      loader: {
        paths: {
          tex: 'https://cdn.jsdelivr.net/npm/mathjax@4.0.0/input/tex/extensions'
        },
        load: ['[tex]/units']
      },
      tex: {
        packages: { '[+]': ['units'] },
        inlineMath: [['$', '$'], ['\\(', '\\)']],
        displayMath: [['\\[', '\\]'], ['$$', '$$']],
        units: { loose: false, ugly: false }
      },
    # startup: {
    #   ready: () => {
    #     MathJax.startup.defaultReady();
    #     MathJax.typesetPromise();
    #   }
    # }
    };
    </script>
    % endif
    <script defer src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/4.0.0/tex-mml-chtml.min.js"
            integrity="sha512-yxTB34XQUKlyuz73upeDrZ91/tbZW/YAURVWL3s+09bEWdmORQzUZwSKyBIRxSeHuSwh1aOKEffn2/D65kwyYg=="
            crossorigin="anonymous"></script>
    

    に置換

メモ

  • units は MathJax v4 以降対応 (らしい。未検証)

  • cdnjsではMathJaxの /extensions が提供されていない模様。

    よって、 tex: 'https://cdn.jsdelivr.net/npm/mathjax@4.0.0/input/tex/extensions' を指定し、jsdelivrから読む。

  • startupはおそらく不要、コメントアウトしている。

  • require は読み込む必要があるか不明(標準で使えるかをドキュメントで確認すれば良いが、していない。


これにたどり着くのに4時間くらいかかってしまった。

ChatGPTに聞きつつやってみたが、ChatGPTはまだまだ完全ではない。 今回はChatGPTに聞かなければ解決しなかっただろうが、 ChatGPTの回答が生成されるのを待つためにかなり時間を溶かした。 自分の技術力を上げることが必要。


それと、PCのスペックが低すぎて作業が滞った。

まず、CPU (i5-8250U) が弱い。 ベンチマークスコアはN100と同等。 AtomやCeleronで開発をするようなもので、無理があろう。

(補足)

PassMark では、 N100/150/200, 8250U: 5372/5464/4723, 5806 となっている。 かろうじて8250Uがトップ。

N100はi5-8xxx相当の性能があるため、軽い事務作業は快適に行えるだろう。 良い時代になった。)

(余談)

Celeronが強かった時代もあったね。

メモリも足りない。 タスクマネージャーでメモリのタブを確認すると、 "コミット済み" が だいたい 30-40/60-70 GB になっている。

研究で使うソフトウェアがまともに動かなくて困る。 (これはハードウェア以外にも原因がありそうだが) MATLABでSDRを実行すると、このPCで実行した時のみ捕捉が正常に行われない。 PocketSDRは10信号くらいを超えるとまともに操作を受け付けなくなる。

新しいマシンがほしい。切実に。