这个问题太广泛了。我不太确定此事是否应该关闭。尽管如此,以下是至少如何使乳胶与Tk和matplotlib交互工作的代码段。
在Entry小部件中输入内容,然后按Enter。
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import figureCanvasTkAgg
matplotlib.use('TkAgg')
from Tkinter import *
from ttk import *
def graph(text):
tmptext = entry.get()
tmptext = "$"+tmptext+"$"
ax.clear()
ax.text(0.2, 0.6, tmptext, fontsize = 50)
canvas.draw()
root = Tk()
mainframe = Frame(root)
mainframe.pack()
text = StringVar()
entry = Entry(mainframe, width=70, textvariable=text)
entry.pack()
label = 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=1)
canvas._tkcanvas.pack(side=TOP, fill=BOTH, expand=1)
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)
root.bind('<Return>', graph)
root.mainloop()
如果您想要拥有一个像他们一样的漂亮界面,这还不够。它们很可能具有从明文到Latex到Unicode转换设置的功能。甚至可能直接从纯文本转换为Unicode,但我不知道有任何像乳胶一样出色的数学表达式解析器,因此所有规则都必须重新编码,这需要大量工作,因此他们很可能跳过了这一步,而是让乳胶完成繁重的工作,然后将乳胶解析为Unicode / Utf8或任何可以处理所有信号的编码。
然后他们通过“额外”(例如django和jinja模板化)转储所有内容,这些内容根据元素的类型(二进制运算符,变量,指数…)为每个元素分配自己的漂亮的CSS类,以便获得完整的数学输出看起来不错,仍然可以复制。