在 Python 编程中将 Mathml 转换为 LaTeX

在 Python 编程中将 Mathml 转换为 LaTeX

我现在正在编写一个教育软件。这是一种针对学校学生的在线测试。我使用我的编辑器来汇总问题,我需要数学功能,因此我需要使用这个编辑器,其他编辑器非常简单,没有这个编辑器那么智能和强大。

但是,编辑器将输出结果输出到 Mathml,现在这个 Mathml 还包含样式标签和正文。因此,我发现将其存储到数据库中不可行。因此,我尝试将 Mathml 转换为 LaTeX。

由于我正在使用 Python Django 开发项目,因此我需要一个可以为我进行转换的 Python 库。我搜索了许多库,但它们只是将文本转换为 Mathml 或将文本转换为 LaTeX。如果有人知道这一点,请告诉我。

如果有人有将 Mathml 转换为 LaTeX 的其他解决方案,请帮帮我。

答案1

xslt 位于https://github.com/davidcarlisle/web-xslt/tree/master/pmml2tex合理地完成了从 mathml 制作 tex 的工作用于打印它用于生成 MathML 规范中的许多示例图像,以及通过 latex 生成的规范的 PDF 版本。

然而,它实际上并不是为生成档案或可编辑乳胶而设计的,因此它生成的 tex 标记很混乱。

尽管它仍然可能会给你一个开始,但说实话需要 latex 而不是 mathml 的原因并不那么清楚。

答案2

你可以尝试这样做数学转换器做:

import os
from lxml import etree

def mathml2latex_yarosh(equation):
    """ MathML to LaTeX conversion with XSLT from Vasil Yaroshevich """
    xslt_file = os.path.join('mathconverter', 'xsl_yarosh', 'mmltex.xsl')
    dom = etree.fromstring(equation)
    xslt = etree.parse(xslt_file)
    transform = etree.XSLT(xslt)
    newdom = transform(dom)
    return unicode(newdom)

mathml = """<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mfrac>
      <mrow><mi>x</mi></mrow>
      <mrow><mi>y</mi></mrow>
    </mfrac>
  </mrow>
</math>"""
tex = mathml2latex_yarosh(mathml)
print tex

結果是$\frac{x}{y}$

答案3

我有点迟了,但您可能需要考虑使用 ConTeXt 进行 MathML 输入,因为它是开箱即用的。

\usemodule[mathml]

\starttext

\xmlprocessdata{}{
<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mfrac>
      <mrow><mi>x</mi></mrow>
      <mrow><mi>y</mi></mrow>
    </mfrac>
  </mrow>
</math>
}{}

\stoptext

在此处输入图片描述

相关内容