如何在TKinter标签文本中使用LaTeX排版

问题描述 投票:0回答:1

我在 TKinter 中有一些标签,带有标签文本,例如 Jx。然而,这应该是 $J_x$ 并根据标准 LaTeX 排版呈现。例如,考虑这个 MWE:

from tkinter import *
from tkinter import ttk
import tkinter.font as font
from tkinter import Tk
from turtle import bgcolor

import tkinter as tk

class UI:
    def __init__(self, master):
        self.master = master
        helv15 = font.Font(family="Helvetica",size=15,weight="bold")
        self.JxEntryLabel = Label(self.master, text = "Jx :", bg = 'white', fg = fontcolor, font = helv15)
        self.JxEntryLabel.place(relheight = 0.05, relwidth = 0.1, relx = 0.15, rely = 0.15) 

root=Tk()
app=UI(root)
root.title('Test_UI')
root.geometry("1200x600")
root.configure(background='white')

root.mainloop()

如何编辑/添加到此 MWE 以确保使用 LaTeX 进行

Label
按钮文本排版,使得 x 是 J 的下标并且采用数学字体?即输入 $J_x$ 只会显示 $J_x$。对于
Matplotlib
,这通常很容易实现绘图,但我不确定如何在这里使用相同的技巧。

注意:这个问题与this帖子不同,后者的目标是获取乳胶输入并实时显示它,尽管我相信答案的部分内容可以重复使用来回答这个问题。但是,我不确定如何。如有任何帮助,我们将不胜感激。

python tkinter latex tkinter-entry
1个回答
0
投票

您必须使用 Matplotlib 进行排版。我的理解是你可以这样做:

import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

fig = plt.figure()

ax = fig.add_subplot(111)

ax.text(0, 0, r"whatever latex text")
canvas = FigureCanvasTkAgg(fig, master = tkinter_window)

canvas.draw()

canvas.get_tk_widget().pack() 

这将创建一个仅包含 LaTeX 文本的 Matplotlib 图形,并将其添加到

tkinter_window

© www.soinside.com 2019 - 2024. All rights reserved.