SymPyのtex→png出力ではまった件
こんなマニアックな記事誰が読むのかわからないが、備忘として残しておくことにする。SymPy無いからねー(うぉうぉう)。
結論
SymPyの以下の箇所(ver. 1.13.2ではsympy/printing/preview.py 349行目)の"dvipng"をkeyとするリストに、"-d"なる要素を追加する。(これで問題ないか不明だし不具合もあるかもしれませんが、自己責任でオナシャス)
defaultoptions = {
"dvipng": ["-d", "-T", "tight", "-z", "9", "--truecolor"],
"dvisvgm": ["--no-fonts"],
}
調べたこと
訳あって、texを入力したら画像を出力するpythonのライブラリがないかなと探していたところ、SymPyにたどり着いた。
シンボリックな計算をサポートした、なかなかにイケてるライブラリっぽい。こちらには、texを入力するとその数式を画像にしてくれる機能があり、
from sympy import symbols, preview
preview(r"$$\frac{\rm d}{{\rm d}t}\mathbf p = \mathbf F$$", output='png', filename="out.png", euler=False)
と書くと以下の画像が生成される(はずなのである)。

しかしどうにも動かない。これは手元のtex環境の問題か?と考え最新のtex liveを再インストールしたのだが、それでも動かない。しょうがないので、SymPyのコードを読むことにした。
SymPyは、内部でdvipngを呼び出している。dviやpdfだと出力可能なのだが、png形式だけ動かないという状況だったことが判明したため、dvipngにあたりをつける。dviファイルをコマンドラインからdvipngで変換しようとすると、
PS> dvipng out.dvi
This is C:\texlive\2024\bin\windows\dvipng.exe 1.17 Copyright 2002-2015, 2019 Jan-Ake Larsson
[1 <raw PostScript
と、謎の状態で止まってしまう。
こういう時は、エラーメッセージで検索が鉄板。すると、githubの質問に行き当たった。
こちら、回答はついていないものの質問者の方がご自分で「デバッグオプション(-d)つけたら動きます」と記載されている。
とりあえず動けばOKの精神で、SymPyのコードを読んでdvipngにオプション渡しているところを見つけ、-dを追記したら晴れて動きましたよ、ということでした。