【问题标题】:Reading LaTeX with python eval()使用 python eval() 读取 LaTeX
【发布时间】:2021-12-17 08:31:49
【问题描述】:
我有一些文件,其中包含用 LaTeX 编写的幂和公式。我正在寻找一种简单的方法将其转换为 eval() 可以使用的东西(我知道这是一个糟糕的解决方案,但它只会在本地运行并从这些特定文件中读取)。是否有某种可以使用的 LaTeX 到数学翻译器?也许其他一些解决方案?
示例文件:
\[\sum_{k=1}^xk^0=x\]
\[\sum_{k=1}^x k^{1}= \frac{x^{1}}{2} + \frac{x^{2}}{2}\]
\[\sum_{k=1}^x k^{2}= \frac{x^{1}}{6} + \frac{x^{2}}{2} + \frac{x^{3}}{3}\]
\[\sum_{k=1}^x k^{3}= \frac{x^{2}}{4} + \frac{x^{3}}{2} + \frac{x^{4}}{4}\]
\[\sum_{k=1}^x k^{4}= \frac{x^{1}}{30} + \frac{x^{3}}{3} + \frac{x^{4}}{2} + \frac{x^{5}}{5}\]
\[\sum_{k=1}^x k^{5}= \frac{x^{2}}{12} + \frac{5x^{4}}{12} + \frac{x^{5}}{2} + \frac{x^{6}}{6}\]
【问题讨论】:
标签:
python
file
latex
eval
fractions
【解决方案1】:
使用sympy 库进行符号操作。要使代码正常工作,您还需要额外的包。 parse_latex 会将 Latex 代码转换为 sympy 对象,docs。
import sympy
from sympy.parsing.latex import parse_latex
latex = """\[\sum_{k=1}^xk^0=x\]
\[\sum_{k=1}^x k^{1}= \frac{x^{1}}{2} + \frac{x^{2}}{2}\]
\[\sum_{k=1}^x k^{2}= \frac{x^{1}}{6} + \frac{x^{2}}{2} + \frac{x^{3}}{3}\]
\[\sum_{k=1}^x k^{3}= \frac{x^{2}}{4} + \frac{x^{3}}{2} + \frac{x^{4}}{4}\]
\[\sum_{k=1}^x k^{4}= \frac{x^{1}}{30} + \frac{x^{3}}{3} + \frac{x^{4}}{2} + \frac{x^{5}}{5}\]
\[\sum_{k=1}^x k^{5}= \frac{x^{2}}{12} + \frac{5x^{4}}{12} + \frac{x^{5}}{2} + \frac{x^{6}}{6}\]"""
eqs = map(parse_latex, latex.split('\n'))
for eq in eqs:
print(eq)