Wizard Notes

Python, JavaScript を使った音楽信号分析の技術録、作曲活動に関する雑記

Python:SymPyでTeX記法の数式を画像(PNG)として保存する

Pythonを使って TeX の数式を画像として保存する方法がないか調べたところ、SymPy という

Welcome to SymPy’s documentation! — SymPy 1.0.1.dev documentation

SymPyは数式による処理を行うライブラリであり,独自の記法もありますが TeX 記法を扱うこともできます。

インストール方法

Anaconda などのディストリビューションPythonをインストールした場合は、インストール済みとなっていると思います。

もしインストールされていない場合は、以下のようにpipを使って導入してください。

pip install sympy

また、今回の利用方法だとTeXのインストールが必要です。

Windowsでのインストール方法(TeX Live):

TeX Live/Windows - TeX Wiki

Ubuntu でのインストール方法:

Ubuntu 18.04 LTS に LaTeX をインストール - Qiita

数式の画像化

sympy.preview()という関数を使い,以下のように記述します.

import sympy

sympy.init_printing()

# $$TeX記法$$ という形式で数式を入力
wave_equation = r"""$$
\frac{\partial^2 u}{\partial t^2}=c^2\left(\frac{\partial^2 u}{\partial x^2}+\frac{\partial^2 u}{\partial y^2}\right)
$$"""

sympy.preview(wave_equation, viewer='file', filename='tex.png', euler=False,
    dvioptions=["-T", "tight", "-z", "0", "--truecolor", "-D 600")
#  dvioptions=["-T", "tight", "-z", "0", "--truecolor", "-D 600", "-bg", "Transparent"])

Printing — SymPy 1.8 documentation

実行結果:

f:id:Kurene:20210615214326p:plain:w400

なお,dvioptionsを変更することで,背景を透明にする等の制御が可能です.

参考ページ