【问题标题】: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)
    

    【讨论】:

      猜你喜欢
      • 2018-07-26
      • 2015-06-19
      • 2010-11-08
      • 1970-01-01
      • 2019-05-16
      • 2013-02-18
      • 1970-01-01
      相关资源
      最近更新 更多