テキストから数式に変換するプラグイン・アプリをまとめます。 ブラウザで実行できるもの、JavaScriptのライブラリ、VSCodeのプラグインなど関連するものをリスト化しました。
それぞれのサンプルまでは載せていません。
数式のエンジン・記法について
調べてみると思った以上に数式エンジンが多様だった。 記法もそれぞれあり一長一短がありそうです。
TeX記法など体系が曖昧なため、誤解を招く表現があるやもしれません。 あらかじめご了承ください。
どれが良いかは判断付かないため、見つけたものをここに書きだしておきます。
KaTeX
KaTeX is a fast, easy-to-use JavaScript library for TeX math rendering on the web.
ライセンス:MIT License
ドナルド・クヌースのTeXをベースにしている。 MathJaxよりもブラウザでの描画が早いことを謳っています。
記法についてはこちらにまとまっています。
MathML
Mathematical Markup Language (MathML) は、数学的表記を記述し、その構造と内容を表現するための XML マークアップ言語です。
数式を描画するマークアップ言語。
HTMLやXMLのように<>
で書くような言語です。
MathMLを対象とした数式検索エンジンの設計といった論文も見つけた。
MathJax
Beautiful math in all browsers
A JavaScript display engine for mathematics that works in all browsers.
No more setup for readers. It just works.
ライセンス:Apache License 2.0
JavaScriptを使ってブラウザ上に数式を描画するエンジン。 依存がないためこれだけで使える。
UnicodeMath
Unicodeの「数式用の書体指定付き文字」となる。 対応したフォントがあれば、数式の字体を変えられそう。
下のサイトの解説がとても詳しい。(3)まである。
MathJaxとKaTeXについて
どちらもTeX文書の変換のためのライブラリであり、記法はほぼ同じ。 パースの速度面ではKaTeXが優勢です。
比較について詳しくは下記を参照してください。
JavaScript, npm
以下はJavaScriptまたはnpmで使えるもの。
markdown-it-latex
マークダウンをHTMLに変換するmarkdown-itの数式プラグイン。 KaTeXとAsciiMathに対応している。
このブログでもmarkdown-it、processmdと合わせて利用しています。
例えば、オイラーの公式も下記のように書けます。
KaTeX記法
```math
e^{i\pi}+1= 0
```
変換後の数式
AsciiMath
ブラウザ上でテキストから数式を変換できるJavaScriptライブラリ。 サイトにサンプルがあるので実行確認できます。 変換にはMathJaxを用いている。
CDN配信されているため、以下のスクリプトで導入できます。
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/latest.js?config=AM_CHTML"></script>
VSCodeプラグイン
Visual Studio Codeで数式を書けるプラグイン。 TeXとマークダウンそれぞれに対応したものがある。
LaTeX Workshop
Visual Studio Codeのプラグインの中で一番人気のLaTeXプラグイン。 プレビューやスニペット、シンタックスなども同梱しているので、LaTeXで書くならまずはこれを入れるのが良さげです。
Markdown All in One
Markdownで文章を書くならこれだけが一押し。 数式と入力補完も同梱されており下記のように書ける。エンジンはKaTeXかな。
$$
f(x) = \int_{-\infty}^\infty \hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi
$$
あとは、Markdown PDFを入れたら十全。
mdmath
ライセンス:MIT License
Visual Studio Codeでマークダウン+数式を書くことができるプラグイン。 数式の変換にはKaTeXを使っている。
Markdown Math
記法。
Fast Unicode Math Characters
UnicodeMathに対応したプラグイン。
その他サービス
SearchOnMath
数式のための検索エンジン! 数式を使っているサイトを検索してくれる。
Googleに慣れてしまっているため精度や使い勝手はそこまでだが、試みはとても面白い。
Mathematics Stack Exchange
数式についての質問サイト。 質問タイトルが数式だらけで面白い。
恐らくMathJaxを使っています。
maths online HTML formula tool
HTMLでの特殊文字の書き方を確認できるツールサイト。 Symbolフォントが確認できる。
オーストリアのウィーン大学(Universität Wien)のドメイン上にあって驚いた。 Future Mediaというマルチメディア品質の製品の推進協会が作られたそうです。
終わりに
今後も、良さそうなアプリ・プラグインを見つけたら追記する予定です。