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

标签 python user-interface tkinter

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

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

最佳答案

这个问题太宽泛了。我不太确定是否应该为此关闭它。尽管如此,这里有一段关于如何至少让 Latex 以交互方式与 Tk 和 matplotlib 一起工作的片段。

在条目小部件中输入内容并按回车键。

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()

代码应该产生一个如下所示的窗口:

enter image description here

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

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

无论如何,这个问题涉及的内容太多,不可能给出一个简明的、包罗万象的简单答案。

关于python - Python是否可以在文本框中实时显示LaTex?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36636185/

相关文章:

javascript - 如何将文件路径转换为树形 View ?

matlab - 错误 : 'You must call TIC without an output argument before calling TOC without an input argument.'

ios - 根据设备的高度使页面在 Xcode 中可滚动

Python Tkinter : multiple images and text on a BIG button?

python - 在 Altair (Python) 中标记分层图表

python - Python 中的网络爬虫

python - 每次关闭数据库都是正确的吗?

适用于 Windows/Gnome 的 Python GUI 库

Python Tkinter - 单选按钮值可以是 float 吗?

python - 如何自定义 tkinter/ttk 小部件和框架的边框颜色?