以下是一个例子:
输入:
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi mathcolor="#FF0000">y</mi>
<mo mathcolor="#00FF00">−</mo>
<msub>
<mi mathcolor="#0000FF">y</mi>
<mn mathcolor="#FFFF00">0</mn>
</msub>
<mo mathcolor="#FF00FF">=</mo>
<mo mathcolor="#00FFFF">±</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">−</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");
就是这样。效果很好。