将LaTex公式转换为可在SymPy中使用的类型

时间:2013-04-04 08:16:08

标签: python latex sympy

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

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中做所有事情。

任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:7)

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

https://github.com/augustt198/latex2sympy

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

您可以使用latex2sympy2

from latex2sympy2 import latex2sympy
f = r"\frac{x}{1+x}"
latex2sympy(f)