21

我想解析 LaTeX 公式并直接将它们用作 SymPy 表达式。换句话说,我需要的是类似于 sympify 的东西:

from sympy import sympify
f = sympify('x^2 + sin(y) + 1/2')
print f

但这可以将 LaTeX 表达式(字符串)作为输入,例如:

f = latex_sympify('\frac{x}{1+x}')

鉴于 sympify 能够将带有正则数学表达式的字符串转换为 SymPy 对象,如果有任何东西可以将 LaTeX 转换为正则数学表达式,我想这可以解决问题——但我更愿意做所有事情在 Python 中。

任何建议将不胜感激。

4

3 回答 3

10

看看这个 Latex -> Sympy 转换器,它适用于大部分 Latex 子集:

https://github.com/august198/latex2sympy

于 2016-01-18T16:14:18.093 回答
3

我会看看将乳胶转换为 mathml 的工具,例如(通过谷歌搜索): http: //www.mathtowebonline.com/

然后您可以处理由此产生的 XML。但是,您应该小心地将结果解释为数学表达式。此类工具可以保证文本表示是相等的,但是操作数与其运算符的括号(分组)可能不是您所期望的。一般来说,你会看到更少的嵌套。我们按照惯例将它们解释为嵌套的彼此相邻的运算符将简单地转换为 XML 格式的兄弟元素。如果您尝试将其解释为公式,则仍有一些工作要做(以正确的方式恢复嵌套结构)。

于 2013-05-19T04:30:03.763 回答
2

你可以使用latex2sympy2

from latex2sympy2 import latex2sympy
f = r"\frac{x}{1+x}"
latex2sympy(f)
于 2021-05-25T09:58:27.823 回答