💡

Sphinxでphysicsパッケージしたい

2021/05/22に公開

はじめに

physics パッケージは物理学関連の数式の入力をサポートするコマンド群。
数式を多用する Sphinx ドキュメントで使いたいと思っていたのだけど、Sphinx v3 が使っていた MathJax v2 での設定方法がよく分からなくて断念してた。

先日、Sphinx v4 がリリースされ、デフォルトが MathJax v3 に変更されたので、再び設定を試してみたらあっさりと使うことができちゃった。

Sphinx の設定ファイルに追記する内容

  • 設定ファイル(conf.py)に、HTML 出力と PDF 出力のそれぞれに関係する設定を追記する

HTML 出力(make html

  • mathjax3_config を追記し、次の値に設定する
conf.py
mathjax3_config = {
    "loader": {"load": ["[tex]/physics"]},
    "tex": {"packages": {"[+]": ["physics"]}},
}
  • 数式が使われているページの HTML のソースは以下のようになる
数式を使っているページのソース
...
<script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<script>window.MathJax = {"loader": {"load": ["[tex]/physics"]}, "tex": {"packages": {"[+]": ["physics"]}}}</script>
...

PDF 出力(make latexpdf

  • LaTeX のプリアンブルの設定を追加する
  • \ はエスケープして \\ にする必要がある
conf.py
latex_elements = {
    "extrapackages": "\\usepackage{physics}"
}
  • 出力した LaTeX ドキュメントは以下のようになる
プリアンブル
...
\usepackage{physics}
...

関連ドキュメント

physics パッケージとは

https://www.ctan.org/pkg/physics

  • どんなコマンドがあるかは PDF を確認する
  • PDF は $ texdoc physics で開くことができる
  • 個人的にものすごい便利と思ってるパッケージのひとつ。できれば学生の時に知っておきたかった・・・

Sphinx で MathJax を設定するには

https://www.sphinx-doc.org/en/master/usage/extensions/math.html#module-sphinx.ext.mathjax

  • Sphinx v4 から MathJax v3 がデフォルトになったことが書いてある
  • mathjax3_config に辞書型で設定した値が、MathJaxの`window.MathJax``に渡される

MathJax で physics パッケージを設定するには

https://docs.mathjax.org/en/latest/input/tex/extensions/physics.html

まとめ

physics パッケージが使えて幸せ 🥰

Discussion