我输入了大量的数学表达式和方程式,我想为每个表达式和方程式打印出 latex 表示形式。到目前为止,我已经尝试过 Sage 和 sympy,但棘手的部分是不对表达式中的术语重新排序。
所以,如果我的输入是这样的,那么可以在 python 中进行 eval
运算:
(C - A*x) / B
我想要这样的输出:
\frac{C - A x}{B}
我不想要的是这样的:
\frac{-(A x - C)}{B}
\frac{1}{B}(C - A x)
etc...
这能实现吗?我正在慢慢失去希望...
编辑:
输入表达式多种多样,有些包含平方根、嵌套括号、指数等。寻找通用解决方案。
到目前为止,这是不起作用的:
1)圣人:
sage: var('A B C x y')
(A, B, C, x, y)
sage: latex(y == (C - A*x) / B)
y = -\frac{A x - C}{B}
2)同情:
>>> from sympy import *
>>> x = Symbol('x')
>>> A = Symbol('A')
>>> B = Symbol('B')
>>> C = Symbol('C')
>>> latex((C - A*x) / B)
'\\frac{1}{B} \\left(- A x + C\\right)'
最佳答案
如果不编写自己的解析器,我相信唯一真正的方法是使用 python's built-in compile()
function并对返回的抽象语法树进行处理。
关于python 数学表达式到 latex ,逐字(无重新排序,因式分解等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19693689/