schedule2019-05-28

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

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

変換後の数式

eiπ+1=0e^{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)=f^(ξ)e2πiξxdξ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というマルチメディア品質の製品の推進協会が作られたそうです。

終わりに

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