java javascript latex xml-parsing mathml

java - Conversión de MathML a LaTeX



javascript xml-parsing (3)

Estoy intentando descubrir cómo convertir una representación MathML de una ecuación matemática y convertirla a la representación LaTeX de esa ecuación matemática. Así por ejemplo...

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

... es una fracción simple apilada y su representación LaTeX sería ...

/frac{x}{y}

Tengo garantizado que MathML no tiene marcado de presentación porque estoy construyendo la cadena MathML de forma dinámica y controlo cómo / dónde se insertan los elementos de MathML; la cadena MathML es solo una estructura pura de la ecuación matemática.

Entonces mi pregunta es, ¿hay alguna biblioteca Java / JavaScript que pueda tomar una cadena de entrada MathML, como la anterior, y generar la cadena LaTeX correspondiente? Preferiría no tener que escribir este analizador yo mismo. Si no es Java / JavaScript, ¿hay bibliotecas que puedan hacer esto?

Si no, ¿alguna sugerencia sobre cómo abordar este problema de escribir mi propio analizador? ¿Por dónde empezar, cosas que considerar, recursos, etc.?

ACTUALIZAR

Gracias a Optimal Cynic , pude utilizar esta biblioteca de Java para hacer lo que quiero. Sin embargo, no es perfecto, pero puedo modificarlo fácilmente y hacerlo funcionar bien. Sin embargo, me gustaría ver esto hecho en JavaScript. Entonces, ¿hay alguna herramienta como esta escrita en JavaScript? Si no, recurriré a traducirlo yo mismo.

Nota: Estoy usando MathJax para representar el MathML en la página, pero MathJax no admite una manera de pasar de MathML a LaTeX. Solo puede ir desde LaTeX a MathML.


¿Qué pasa con los analizadores XSLT, SAX o los analizadores DOM?

Los enlaces para los analizadores SAX y DOM existen para todos los idiomas principales (y casi todos los demás idiomas también). Recomendaría DOM analizar usando un lenguaje funcional, pero los gustos son diferentes.

XSLT es un lenguaje funcional diseñado para procesar XML.



Tuve un problema similar y el mathparser proporcionado en la url de la pregunta no funcionaba para nada.

Convertí MathML en LaTeX utilizando XSLT MathML Library con Saxon-HE, pero como la biblioteca XSLT MathML es XSLT pura, cualquier herramienta de transformación XSLT debería manejarla. La salida no siempre es perfecta, pero me dio mejores resultados que los de web-xslt mencionados en alguna parte de la red stackexchange.

Uso de línea de comando con saxon:

saxon -o output.tex input.mml xsltml_2.1.2/mmltex.xsl