数式を書くためのエンジン・プラグイン・アプリのまとめ

テキストから数式に変換するプラグイン・アプリをまとめます。 ブラウザで実行できるもの、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の数式プラグイン。 KaTeXAsciiMathに対応している。

このブログでもmarkdown-it、processmdと合わせて利用しています。

例えば、オイラーの公式も下記のように書けます。

KaTeX記法

```math
e^{i\pi}+1= 0
```

変換後の数式

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
$$
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

\href\href{https://katex.org/}{\KaTeX}記法。

Fast Unicode Math Characters

UnicodeMathに対応したプラグイン。

その他サービス

SearchOnMath

数式のための検索エンジン! 数式を使っているサイトを検索してくれる。

Googleに慣れてしまっているため精度や使い勝手はそこまでだが、試みはとても面白い。

Mathematics Stack Exchange

数式についての質問サイト。 質問タイトルが数式だらけで面白い。

恐らくMathJaxを使っています。

maths online HTML formula tool

HTMLでの特殊文字の書き方を確認できるツールサイト。 Symbolフォントが確認できる。

オーストリアのウィーン大学(Universität Wien)のドメイン上にあって驚いた。 Future Mediaというマルチメディア品質の製品の推進協会が作られたそうです。

終わりに

今後も、良さそうなアプリ・プラグインを見つけたら追記する予定です。

 関連記事

 新着 or 更新記事