【发布时间】:2022-01-21 20:28:27
【问题描述】:
我确实尝试使用 Sympy 将包含数学方程式的字符串转换为 Latex 代码并将这些方程式显示为图像。
例如,我确实尝试过使用 Sympy:
K(Y) = M * X + B
这在 Sympy 中不起作用。 (至少对我来说) 这将在 Sympy 中工作。 (至少对我来说)
M*X + B
也许有人提示如何更改以下内容以成功地将我的方程式嵌入到 GUI 中:
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 的功能(现在在 stackoverflow 上找不到源), 但是您可以在这里找到它(感谢您帮助添加源代码): on Github by tonyseek 我的问题是我使用 Sympy 的方式。显然我确实以错误的方式使用它。 欢迎任何建议。
【问题讨论】: