是否有更好、更高效的方式在 Kivy 中显示 LaTeX 格式的数学文本?

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

这基本上是我使用的(减去进口):

fig = figure.Figure(figsize=(4, 2))
FigureCanvas(fig)

# for quick testing, I just use the defaults and set the txt
def make_img(txt: str, fileName: str = 'output', format: str = 'png', customDpi: int = 300, color: str = 'White'):
    then = default_timer()

    fig.text(0.5, 0.5, txt, color=color, fontsize=texFont.get_size_in_points(), fontproperties=texFont, verticalalignment='center', horizontalalignment='center')
    fileName += f'.{format}'
    
    fig.savefig(fileName, dpi=customDpi, transparent=True, bbox_inches='tight', pad_inches=0.1) # adjust padding here
    fig.clear()
    if default_timer() - then > 0.5:
        print('test', '%.4f' % (default_timer() - then))
    return fileName

我使用计时器来跟踪保存图像通常需要多长时间。我只覆盖现有的图像文件,所以我实际上并没有在每次为我的 Kivy 应用程序使用此功能时尝试创建新文件。

我有一个 Kivy 应用程序,它使用图像作为 LaTeX 数学文本,需要经常实时更改它并在调用 make_img 后刷新图像。但是,我注意到,因为我需要更长的琴弦,它开始变得迟钝。我一次在主要的 Kivy 脚本上处理 5 张图像,即使只有一张图像也可能需要 2.2 秒。即使我降低我的 DPI,它仍然是 2 秒。如果我尝试按顺序加载每个图像,这太慢了(但我当然不必这样做)。

我坚持在 Kivy 中显示数学文本的原因是我正在做一个有时间限制的项目,但我们没有时间切换框架。我也最熟悉 LaTeX 格式,但仍想保持以可读的方式编写数学表达式和方程式的能力。

我想知道我是否可以在没有图像的情况下做到这一点,但我还没有找到办法。

我尝试以多种方式使用 matplotlib,将无花果作为我最高效的解决方案。我试图将图像转换为数组,因为我会使用长字符串,但 Kivy 不接受它,除非它被保存到当前目录。 Kivy 不会直接拍摄图像,只会从图像文件中读取。

我想到了数学文本字体的想法,但我现在找不到任何好的 LaTeX 数学字体来测试。我查看了另一篇评论它的 StackOverflow 帖子,但他们提供的链接只是一个 404 错误。

我知道其他框架可以原生和直接支持 LaTeX,但现在这对我来说不是一个选择,即使我想切换。

我就是不知道怎么办,就没有别的办法了吗?

python math text kivy latex
© www.soinside.com 2019 - 2024. All rights reserved.