11

私は、数学方程式のMathML表現を変換し、それをその数学方程式のLaTeX表現に変換する方法を理解しようとしています。たとえば...

<math>
  <mrow>
    <mfrac>
      <mrow><mi>x</mi></mrow>
      <mrow><mi>y</mi></mrow>
    </mfrac>
  </mrow>
</math>

...は単純な積み上げ分数であり、LaTeX表現は...

\frac{x}{y}

私はMathML文字列を動的に構築しており、MathML要素を挿入する方法/場所を制御しているため、MathMLには表示マークアップがないことが保証されています。MathML文字列は、数学方程式の純粋な構造です。

だから私の質問は、上記のようなMathML入力文字列を取り、対応するLaTeX文字列を生成できるJava / JavaScriptライブラリはありますか?このパーサーを自分で作成する必要はありません。Java / JavaScriptでない場合、これを実行できるライブラリはありますか?

そうでない場合は、自分のパーサーを作成するというこの問題にどのように取り組むかについての提案はありますか?どこから始めればよいか、考慮事項、リソースなど...?

アップデート

Optimal Cynicのおかげで、このJavaライブラリを使用してやりたいことができました。完璧ではありませんが、簡単に変更してうまく機能させることができます。ただし、これはJavaScriptで実行されることを望んでいます。では、JavaScriptで書かれたこのようなツールはありますか?そうでない場合は、自分で翻訳することにします。

注:MathJaxを使用してページにMathMLをレンダリングしていますが、MathJaxは現在MathMLからLaTeXに移行する方法をサポートしていません。LaTeXからMathMLにのみ移動できます。

4

3 に答える 3

5

http://www.tilman.de/programme/mathparser/anleitung_en.htmlを試してください- Java で書かれており、ソースが利用可能です。

于 2011-07-05T20:59:17.187 に答える
3

XSLT、SAX パーサー、または DOM パーサーの何が問題になっていますか?

SAX および DOM パーサーのバインディングは、主要なすべての言語 (および他のほとんどすべての言語) に存在します。関数型言語を使用した DOM 解析をお勧めしますが、好みは異なります。

XSLT は、XML を処理するために設計された関数型言語です。

于 2011-07-05T21:09:38.520 に答える
2

同様の問題があり、質問のURLで提供された数学パーサーがまったく機能しませんでした。

XSLT MathML ライブラリSaxon-HEで使用して、MathML を LaTeX に変換しましたが、XSLT MathML ライブラリは純粋な XSLT であるため、XSLT 変換ツールで処理する必要があります。出力は必ずしも完璧ではありませんが、stackexchange ネットワークのどこかに記載されているweb-xsltよりも良い結果が得られました。

saxon でのコマンド ラインの使用法:

saxon -o output.tex input.mml xsltml_2.1.2/mmltex.xsl
于 2014-01-14T15:48:00.143 に答える