Python 是否可以在文本框中实时显示 LaTex?

Jas*_*rar 10 python user-interface tkinter

我计划制作一个 GUI,用户可以在其中将他们的数学表达式输入到文本框中,例如 Tkinter Entry Widget,并且他们的表达式将以与​​您在symbolab 中键入表达式时看到的相同的方式显示。

这可能吗?如果是这样,那么我必须使用哪些模块才能完成此任务?

lje*_*ibo 5

这个问题太笼统了。我不太确定它是否应该因此关闭。尽管如此,这里有一个关于如何至少让乳胶与 Tk 和 matplotlib 交互工作的片段。

在 Entry 小部件中输入一些内容,然后按 Enter。

import matplotlib
import matplotlib.pyplot as plt

from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
matplotlib.use('TkAgg')

try:
    import Tkinter as tk
except ImportError:
    import tkinter as tk

def graph(event=None):
    tmptext = entry.get()
    tmptext = "$"+tmptext+"$"

    ax.clear()
    ax.text(0.2, 0.6, tmptext, fontsize=50)  
    canvas.draw()

root = tk.Tk()

mainframe = tk.Frame(root)
mainframe.pack()

entry = tk.Entry(mainframe, width=70)
entry.pack()

label = tk.Label(mainframe)
label.pack()

fig = matplotlib.figure.Figure(figsize=(5, 4), dpi=100)
ax = fig.add_subplot(111)

canvas = FigureCanvasTkAgg(fig, master=label)
canvas.get_tk_widget().pack(side="top", fill="both", expand=True)
canvas._tkcanvas.pack(side="top", fill="both", expand=True)

ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)

entry.insert(0, r"\sum_{i=0}^\infty x_i \frac{y_i}{z_i}")
graph()

root.bind("<Return>", graph)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

代码应生成一个窗口,如下所示:

在此处输入图片说明

如果您想拥有像他们这样的漂亮界面,这还不够。他们很可能有类似纯文本到 Latex 到 Unicode 转换设置的东西。或者甚至可能直接从纯文本到 Unicode,但我不知道有任何数学表达式的解析器像乳胶一样好,所以所有的规则大概都必须重新编码,这是很多工作,所以他们很可能跳过了这一步,而是让 Latex 完成繁重的工作,然后将 Latex 解析为 Unicode/Utf8 或任何可以处理所有符号的编码。

然后他们通过一些“额外”的东西(即 django 和 jinja 模板)倾倒了所有东西,这些东西根据元素的类型(二元运算符、变量、指数......)为每个元素分配了自己漂亮的 css 类,以便获得完整的数学输出看起来不错,仍然可以复制。

无论如何,这个问题有很多事情要做,所以不可能给出一个简明的、包罗万象的简单答案。