LaTeXからMathMLへ
KaTeX 0.19.1でLaTeXの数式をMathMLマークアップに変換します。結果は、表示モードまたはインラインモードに対応した1つのmath要素です。プレゼンテーションMathMLと、元のLaTeXを保持する注釈が含まれており、HTML、EPUB、XMLのドキュメントにそのまま貼り付けられます。現在のChrome、Edge、Firefox、SafariではMathMLがネイティブに表示され、スクリーンリーダーで読み上げることもできるため、数式のアクセシビリティを保てます。JavaScriptは不要です。
よくある質問
出力はどのような形式ですか?
出力は、MathML名前空間に属する単一のmath要素で、semanticsラッパーを備えています。内部には、mi、mn、mo、mfrac、msup、mtableなどの要素で構成されたプレゼンテーションMathMLがあり、その後に、元のLaTeXを保持するencoding="application/x-tex"の注釈が続きます。ディスプレイモードでは、math要素にdisplay="block"が追加されます。
MathMLはどこで使えますか?
HTML5ページ、EPUB 3の書籍、XHTML、またはJATSやDocBookなどのXML形式にそのまま貼り付けられます。多くの数式エディターやオフィススイートでもMathMLを読み込めるため、LaTeXを読み込めないツール間での実用的な交換形式になります。
ブラウザーでMathMLは表示されますか?
はい。Chromeとバージョン109以降のEdge、Firefox、Safariでは、スクリプトやスタイルシートなしでMathMLをネイティブに表示できます。ブラウザーは独自の数式フォントを使うため、KaTeXのHTMLによる表示とは少し見た目が異なりますが、構造と間隔のルールは同じです。
ディスプレイモードとインラインモードの違いは何ですか?
ディスプレイモードでは数式にdisplay="block"が設定され、分数が通常の大きさで表示され、大きな演算子の上下に極限が配置された独立の数式になります。インラインモードではこの属性が省略され、文章中に置くためのコンパクトなスタイルで表示されます。
元のLaTeXは保持されますか?
はい。KaTeXはsemanticsラッパー内のannotation要素にソースを保存します。ブラウザーには表示されませんが、コピー用のツールや他のコンバーターで元のLaTeXを正確に復元できます。ドキュメントにソースを含めたくない場合は、annotation要素を削除してください。
どのLaTeXコマンドに対応していますか?
KaTeX 0.19.1がサポートするすべての機能に対応しています。分数、根号、行列、aligned、cases、arrayなどの環境、アクセント、矢印、\mathbbや\mathcalなどのフォントコマンド、\text、\tagを使用できます。数式内で\defまたは\newcommandを使って定義したマクロも使えます。完全なドキュメント、\usepackage、mhchemの\ceコマンドには対応していません。
数式にエラーがあるとどうなりますか?
MathMLは出力されません。問題の内容と発生した文字位置(先頭から1としてカウント)が報告されます。たとえば、不明なコマンド、対応していない括弧、上付き文字の重複、引数が不足しているコマンドなどです。
制限はありますか?
数式の長さは最大10,000文字で、マクロの展開回数は最大1,000回です。\ruleや\kernなどのコマンドに指定できるサイズは100emまでです。\href、\url、\includegraphicsなど、外部コンテンツを読み込んだりリンクしたりするコマンドは無効化され、未対応のテキストとして出力されます。
MathMLはアクセシビリティに適していますか?
はい。VoiceOver、NVDA、JAWSなどのスクリーンリーダーはMathMLを読み上げられるため、数式を部分ごとに読み進めることができます。これは画像ではできません。数式を画像ではなくMathMLのまま保持することは、技術的なコンテンツをアクセシブルにする最も簡単な方法の一つです。
KaTeXの通常の出力とはどう違いますか?
ウェブページでは、KaTeXは通常、表示用にスタイル付きのHTMLを出力し、スクリーンリーダー向けに非表示のMathMLを生成します。このツールは、ラッパーのspan、スタイルシート、フォントを付けず、KaTeXが生成したとおりのMathML部分のみを返すため、MathMLに対応する場所ならどこでも使えます。