MathJaxは、数学をレンダリングするためのオープンソースの JavaScript ライブラリであり、MathML や LaTeX を含む複数の構文をサポートしています。ページ内の数式に対して TeX 構文よりも MathML 構文を使用することを好む理由はありますか? 私には、MathML の方がはるかに冗長であるように見えます。
3 に答える
実際にコーディングをよく見ると、MathJax や jsMath、その他の同様の JavaScript プログラムがほとんど同じことを行っていることがわかります。Web ページのソース コード内の LaTeX は、サーバーによって提供されるため、クライアント側で MathML に変換されます。「LaTeX」を強調表示して、選択したソース コードが実際にブラウザーにどのように表示されるかを確認してください。MathML であることがわかります (ほとんどの場合)。
LaTeX を GIF または PNG 画像にラスタライズするスクリプトまたはホスティング サイト (これは別の実行可能なオプションです) を使用しない限り、LaTeX は MathML-Presentation としてレンダリングされます。
ただし、MathJax の場合、SVG および HTML-CSS レンダリングのオプションも提供されます。どちらも大量のクライアント側ソース コードを必要とします。SVG は実際には実用的ではありません (残念ながら、広く認知されているわけではありません) が、確かにクールです。HTML-CSS の方が見た目は良いかもしれませんが、数学パーサーや XML パーサーでは読み取れません...これは MathJax のデフォルトでもあり、クライアント側により大きな負荷をかけます。したがって、私の意見では、デフォルトで MathML レンダリングを使用する方が優れています。
したがって、私があなたの質問を正しく理解していれば、あなたの質問は実際には意味がありません。どちらの場合も、すでに MathML を扱っています。違いは、どちらが書きやすく、ページに埋め込むのが簡単かということです。個人的には、MathML ではなく LaTeX で書く方が好きです。
私は jsMath を使用しており、最近では MathJax を使用しています。しかし、私は現在も Codecogs.com を使用して、ラテックスをオンザフライで GIF に変換しています。(両方とも <script> があり、直接リンク <img src=> を使用できます)
問題は、選択肢が 2 つしかない (技術的には 4 つ) ことです。主要な 2 つとして、MathML または GIF 画像があります。これらすべてのスクリプトとホスティング サイトが行うことは、LaTeX から GIF または MathML (またはあまり望ましくない SVG または HTML-CSS) への変換を容易にすることです。ストレートな LaTeX テキストは、MathML ソース コードと同じくらい読みにくいものです。なんらかのレンダリング プロセスが必要です。
独自の MathML をコーディングすることの大きな利点の 1 つは、XML ベースの言語の文法と構造を完全に制御できることです (他の数学プログラムやサイトで利用できるようにする場合)。しかし、他の利点は次のとおりです。JavaScript を必要としないため、訪問者は JavaScript を有効にする必要はありません。
偶然にも、ASCIIMath は、LaTeX を Unicode および HTML-CSS に非常に美しく合理化された方法で変換する単純な JavaScript の良い例です。
人間が方程式を書く必要がない場合は、MathML の方が堅牢です。マークアップには明確な解釈があり (すべての MathJax 実装でデフォルトでどの表示モードが使用されるでしょうか?)、MathML のテキスト読み上げサポートの可能性が高くなります。数学要素がどこにあるかなど、XPath で簡単に検索できます。
MathJax アプローチのその他の欠点は、起動時間の負担であり、ブラウザーで Javascript を使用する必要があるという事実です。
MathML は視覚障害者にアクセシビリティを提供しますが、数式を LaTeX で作成した場合でも、数式を MathML として表示できます。
「すべての MathJax 実装でデフォルトでどの表示モードが使用されるか」に関する Elazar の質問に関しては、ページを設定するときは厳密にあなた次第です。MathJax のドキュメント<script>
で説明されているように、タグを使用して実行します。