将 MathML 转换为 LaTeX

将 MathML 转换为 LaTeX

以下是一个例子:

输入:

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mi mathcolor="#FF0000">y</mi>
  <mo mathcolor="#00FF00">&#x2212;</mo>
  <msub>
    <mi mathcolor="#0000FF">y</mi>
    <mn mathcolor="#FFFF00">0</mn>
  </msub>
  <mo mathcolor="#FF00FF">=</mo>
  <mo mathcolor="#00FFFF">&#xB1;</mo>
  <mfrac mathcolor="#800000">
    <mi mathcolor="#008000">a</mi>
    <mi mathcolor="#000080">b</mi>
  </mfrac>
  <mo mathcolor="#808000">(</mo>
  <mi mathcolor="#800080">x</mi>
  <mo mathcolor="#008080">&#x2212;</mo>
  <msub>
    <mi mathcolor="#808080">x</mi>
    <mn mathcolor="#400000">0</mn>
  </msub>
  <mo mathcolor="#004000">)</mo>
</math>

输出:

{\color[rgb]{1.0, 0.0, 0.0}y}
{\color[rgb]{0.0, 1.0, 0.0}-}
{\color[rgb]{0.0, 0.0, 1.0}y}_{\color[rgb]{1.0, 1.0, 0.0}0}
{\color[rgb]{1.0, 0.0, 1.0}=}
{\color[rgb]{0.0, 1.0, 1.0}\pm}
{\color[rgb]{0.5, 0.0, 0.0}\frac{\color[rgb]{0.0, 0.5, 0.0}a}{\color[rgb]{0.0, 0.0, 0.5}b}}
{\color[rgb]{0.5, 0.5, 0.0}(}
{\color[rgb]{0.5, 0.0, 0.5}x}
{\color[rgb]{0.0, 0.5, 0.5}-}
{\color[rgb]{0.5, 0.5, 0.5}x}_{\color[rgb]{0.25, 0.0, 0.0}0}
{\color[rgb]{0.0, 0.25, 0.0})}

如您所见,我mathcolor还需要翻译属性。我找到了可以做到这一点的在线演示(http://www.wiris.com/editor/demo/en/developers),但我需要在很多很多示例上运行它。有什么建议我可以怎么做吗?我需要它在 Windows 上运行。谢谢。

答案1

最后,这解决了我的问题:https://stackoverflow.com/questions/27196826/convert-mathml-to-latex

我发现大多数样式表都会忽略该mathcolor属性。这个帮我解决了这个问题https://sourceforge.net/projects/xsltml/

由于我以前从未使用过样式表,因此我写下这篇文章以防有人需要使用方面的帮助。大多数语言都支持 xsl。例如,在 C# 中,用法如下:

XslCompiledTransform myXslTrans = new XslCompiledTransform();
myXslTrans.Load("mmltex.xsl"); //this is the stylesheet
myXslTrans.Transform("myMMLfile.mml", "outputTeXfile.tex");

就是这样。效果很好。

相关内容