首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Python字符串转换为Latex公式

将Python字符串转换为Latex公式
EN

Stack Overflow用户
提问于 2021-12-20 06:32:55
回答 1查看 359关注 0票数 0

我确实尝试使用Sympy将包含数学方程的字符串转换为Latex代码,并将这些公式显示为图像。

例如,我尝试使用Sympy on:

代码语言:javascript
复制
K(Y) = M * X + B 

这在Sympy行不通。(至少对我来说)这将在Sympy起作用。(至少对我来说)

代码语言:javascript
复制
M*X + B

也许有人已经给出了一些提示,如何将下面的内容成功地嵌入GUI中:

代码语言:javascript
复制
import random
import os
import pikepdf
import fitz  # PyMuPDF, imported as fitz for backward compatibility reasons
from kivymd.uix.label import MDLabel
import sympy as syp
from sympy import *
from sympy.abc import _clash1
from functools import partial

import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
import io
from kivy.uix.image import Image
from kivy.graphics.context_instructions import Color
from kivy.graphics.vertex_instructions import Rectangle
from kivy.properties import StringProperty, Clock
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.image import Image
from kivy.uix.widget import Widget
from PIL import Image, ImageChops
from io import BytesIO as StringIO

import matplotlib.pyplot as plt

    b = ["Lineare Beispielfunktion"]
    a = ["K ( X) =  M * X + B  ", 1, 5]
    Gleichung = a[0]
    Gleichung = latex(sympify(Gleichung))
    
        def render_latex(formula, fontsize=12, dpi=3000, format_='svg'):
            """Renders LaTeX formula into image.
            """
            fig = plt.figure(figsize=(0.01, 0.01))
            fig.text(0, 0, u'${}$'.format(formula), fontsize=fontsize)
            buffer_ = StringIO()
            fig.savefig(buffer_, dpi=dpi, transparent=True, format=format_, bbox_inches='tight', 
            pad_inches=0.0)
            plt.close(fig)
            return buffer_.getvalue()
    
    
    image_bytes = render_latex(Gleichung,fontsize=80, dpi=200, format_='jpg')
        with open('Image_toDisplay', 'wb') as image_file:
            image_file.write(image_bytes)

我获得了从Stackoverflow生成der Image的函数(现在无法在堆栈溢出上找到源代码),但是您可以在这里找到它(感谢您帮助添加源代码):论朱蒂卜的求索法我的问题是iam使用Sympy的方式。显然我用错了方法。欢迎提出任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-20 07:01:58

好的,我确实尝试了一些不太好的东西,但我确实为我工作过,我会先勾勒出这个概念,然后展示代码:

  1. 使用(import re)和:re.split('=', Gleichung)拆分'=‘a上的字符串
  2. 列表元素在“=”列表之前是部分,Element1是“=”之后的一部分。
  3. 使用Sympy为每个元素呈现乳胶码
  4. 通过'=‘连接新字符串(乳胶代码字符串)
  5. 将这个新字符串放入显示的函数中 Gleichung_split =a re.split(‘’,gleic不该) Gleichung_back = Gleichung_split 1 Gleichung_front = Gleichung_split ( Gleichung_split ( Gleichung_front )) Gleichung_back = Gleichung_split ( Gleichung_back )Gleichung_split= Gleichung_front Gleichung_split 1=Gleichung_back s=“Gleichung_print = s.join(Gleichung_split )Gleichung_split=Gleichung_split(,format_='jpg'),世界银行(‘wb)为image_file: image_file.write(image_bytes)

补充信息:格莱中是德国的方程式。如果有什么我应该改变的地方,或者用一种更吡啶化的方式来做这件事,那就自由地去贡献吧。还有一件重要的事情:我从堆栈溢出获得的呈现到乳胶的函数,如果你知道源,给我一个提示,我想把这个链接到我的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70418137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档