MathJax

MathJax はMathML、LaTeX、で記述された数式をウェブブラウザ上で表示するのJavaScriptライブラリである。MathJaxはApache Licenseのもとでオープンソースソフトウェアとしてリリースされている。
先行のJavaScript数式フォーマットライブラリのの後継としてMathJaxプロジェクトは2009年に開始し、アメリカ数学会によって管理されている。プロジェクトはアメリカ数学会、、応用数理学会によって設立され、米国物理学協会やStack Exchange Networkのような多数のスポンサーによってサポートされている。
MathJaxはarXiv、エルゼビアのScienceDirect、MathSciNet、、MathOverflow、ウィキペディア（バックエンドで）、スカラーペディア、Project Euclid journals、、、コーセラ、を含むウェブサイトで利用されている。
特徴.
MathJaxをウェブページコンテンツと一緒にダウンロードし、ページ中の数式マークアップを走査し、数式を組版する。したがって、MathJaxは読者のシステム上にソフトウェアや追加フォントをインストールする必要はない。これはモバイルデバイスを含むJavaScriptに対応したあらゆるブラウザでの動作を可能にする。
MathJaxはHTMLとCSSの組み合わせを使用するか、対応していればブラウザのネイティブMathMLサポートを使用することで数式を表示することができる。MathJaxが数式を組版するために使う厳密法はユーザのブラウザ、ユーザのシステム上で利用可能なフォント、コンフィグレーション設定によって決定される。MathJax v2.0-betaはSVGレンダリングを導入した。
HTMLとCSSによる組版の場合、利用可能ならば数式フォントを使用し、古いブラウザでは画像に頼ることで、MathJaxは数式表示品質を最大限にする。Webフォントをサポートする新しいブラウザでは、MathJaxは必要に応じてダウンロードするWebフォントの包括的なセットを提供する。ブラウザがWebフォントをサポートしない場合、MathJaxは有効なフォントがユーザのシステム上で利用可能かチェックする。これが機能しない場合、MathJaxは必要な記号の画像を提供する。MathJaxはWebフォント、ローカルフォント、イメージフォントを有効・無効に設定することができる。
MathJaxはウェブページで数式を含むためにSTIXフォントを使用する。ローカルコンピュータ上にそのフォントをインストールすることでMathJaxの組版速度が向上する。
MathJaxはLaTeXまたはMathMLのマークアップで記述された数学的表記を表示することができる。MathJaxは数式表示のためのものであり、LaTeXは文書レイアウト言語なので、MathJaxは数学的表記を記述するために使用されるLaTeXのサブセットだけをサポートする。
基本的なWAI-ARIAの“role”と古い“altext”属性と同様に、支援技術ソフトウェアに自身のAPIを通してMathMLを公開することによって、MathJaxは数式のアクセシビリティもサポートする。
MathJaxアーキテクチャはダイナミックにロードしたモジュールによって将来的に入力言語や表示方法の追加をサポートするように設計されている。MathJaxはページの数式インスタンスと一緒に列挙と対話のためのJavaScript APIも含む。
ブラウザの互換性.
MathJaxはInternet Explorer 6、Firefox 3、Google Chrome 0.3、Safari 2.0、Opera 9.5、iPhone/iPad Safari、Androidブラウザを含む代表的なブラウザで数式をレンダリングする。いくつかの古いバージョンのブラウザはWebフォント（@font-face CSS構文）をサポートしないので、それらはMathJaxイメージフォントモードを使う必要がある。ブラウザ互換性リストは公式サイトで入手できる。
プラグインサポート.
MathJaxはMediaWiki、Drupal、WordPress、Joomla!を含む多くのポピュラーなウェブプラットフォームに容易に追加することができる。
Node.js.
MathJax は、バージョン3からNodeJSで使用することができます。バージョン2では、MathJax-nodeライブラリがNodeJSとの互換性を提供しています。
数式エディタの互換性.
ブラウザに表示されているMathJax数式は、右クリックまたはControl-クリックした場合、サブメニュー「Show Math As」でMathMLやLaTeX形式でコピーすることができる。コピーした数式はMathematica、MathType、、のようなMathMLやLaTeXをサポートする数式エディタにペーストできる。
MathMLやLaTeX形式で生成されたサードパーティの数式エディタによる数式はMathJax対応のウェブページで利用できる。
TeXサポート.
MathJaxはLaTeXの数学環境コマンドを再現する。エクステンションを介してAMS-LaTeX数学コマンドがサポートされる。MathJaxはTeXマクロや、codice_1 や codice_2 のような種々の書式設定をサポートする。
MathMLサポート.
MathJaxはbeta 2リリースでMathML 2.0と、MathML 3.0のいくつかのコンストラクトの部分的なサポートを追加した。MathJaxはPresentation MathMLをサポートし、さらにバージョン2.2以降、content MathMLの実験的サポートを提供する。
CDN Servers.
The MathJax site has been providing a content delivery network (CDN) where the JavaScript needed for MathJax to work can be loaded by the browser at run time from the CDN. This simplifies the installation and ensures the latest version of the library is always used. Over time usage of the server has grown from 1.3TB per month traffic in 2011 to 70TB per month in 2017. Due to increasing cost of hosting the server, the main CDN server shut down at the end of April 2017. Alternative third party CDN servers are available.