2026年5月31日日曜日

RaTeX

MathJaxで数式表示(2)からの続き



図:RaTeXデモ(Githubのdemoページから引用)


Twitter(x.com)で,他言語の記事が自動翻訳されて流通するようになった結果,自分のエコーチェンバーには数学や情報や物理系の記事が増えてきて,それはそれで結構な話だ。そのなかで,Rustでかかれ,モバイル端末でも使える軽量な数式レンダリングエンジンRaTeX話題があった。JavaScriptやブラウザ(WebView)を介さず、ネイティブ環境で数式をPNGやSVG,PDFとして出力できる。

さっそくChatGPTに頼んで試したところ,イマイチでつまづいたので,Geminiでやりなおした。

前回のどさくさ(アレコレたいへん)で消えてしまったRustを,ChatGPTが,homebrewでインストールしてしまったので,それやらRaTeXディレクトリを削除するところからやり直しになった。homebrew版ではなく,オリジナルからインストールの方がいろいろメリットがあるそうだ。

brew uninstall rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
1) Proceed with installation (default)
source $HOME/.cargo/env
rustc --version
rustc 1.95.0 (59807616e 2026-04-14)
cargo --version
cargo 1.95.0 (f2d3ce0bd 2026-03-21)
git clone https://github.com/erweixin/RaTeX.git
cd RaTeX
cargo build --release
echo 'y = ax^2 + bx + c' | cargo run --release -p ratex-render
echo 'E = mc^2' | cargo run --release -p ratex-svg --features "cli standalone" -- --output energy.svg
cargo run --release -p ratex-svg --features "cli standalone" << 'EOF'
\begin{pmatrix} a & b \\ c & d \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} ax+by \\ cx+dy \end{pmatrix}
EOF

ということで,pngもsvgもなんとか生成された。こんな感じで短いLaTeX断片をレンダリングすることは容易にできるようだ。さっそく,このsvgファイルをblogspotに埋め込めないかを聞いたところ。svgファイル(テキスト)を<svg></svg>タグで挟めばいいだけだと。

ところが,生成された行列のsvgファイルをみると分けの分からない数字が大量にならんでいる。もちろん,描画は成功している。どうやら文字コードではなくて,それを線画として描画するときの情報がsvg化されているようだ。それはあまりうれしくないので,blogspotへの適用はやめになった。


0 件のコメント: