首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MathTextParser:将输出与图匹配

MathTextParser:将输出与图匹配
EN

Stack Overflow用户
提问于 2012-11-03 21:48:36
回答 1查看 240关注 0票数 3

我正在使用MathTextParser来描述Qt中的一些方程。因此,我从dict中获取所需的tex字符串,使用我创建的解析器的to_rgba方法解析它(交出一个通用的fontsize和dpi),最后通过figimage将它交给我的FigureCanvas of QWidget

看一下:

代码语言:javascript
运行
复制
class MathWidget(QWidget):
    def __init__(self, parent = None):
            QWidget.__init__(self, parent)
            ...
            self.canvas = MathCanvas() # The FigureCanvas to display the teximage
            ...
            self.parser = mathtext.MathTextParser("Bitmap")

    def render(self,metric):
            equation = self.equations[metric]
            rgb, d = self.parser.to_rgba(equation, color='black', fontsize=8, dpi=200)
            self.canvas.fig.figimage(rgb.astype(float)/255., 0, 0)
            self.canvas.draw()

我现在的问题是,要解析的方程具有不同的长度,而FigureCanvas有固定的大小(正如它所需要的那样),这样就会产生一个图像,它的大小超过了图形的大小,因此方程的某些部分被切断/不可见,如本例所示:

截断方程

我不想做的是为每个tex字符串的长度预先定义一个fontsize,因为即使是用户定义的方程(不可预测的长度)也需要被解析和显示。

那么,是否有可能使解析器与例如fontsize相匹配,从而使输出成为一个固定大小的网格化tex,而不依赖于等式大小/长度?

此外:与numpy/scipy相比,matplotlib的文档对我来说似乎是莫名其妙的,因此,如果有人能够评论to_rgbafigimage的确切工作方式,我也会很感激。关于to_rgba:下面的引文说明深度是什么意思?

  • 深度是基线与图像底部的偏移量(以像素为单位)。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2013-06-03 13:18:09

显示TeX代码的另一种可能的解决方案:调用latex获取dvi文件,然后调用dvisvgm --no-fonts将dvi文件转换为SVG,然后用QSvgRenderer:在python中将乳胶码转换为mathml或svg代码加载并呈现SVG文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13213832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档