我正在使用QML(带有C++后端)制作一个类似于这个的演示系统。
我想要能够包含一些Latex代码来显示一些数学公式(只需要最小的Latex功能,如求和、分数、上下标和数学字体)。
我看到以下几种可能性:
我看到以下问题与数学公式的基线有关:我想能够包含内联公式(在段落内)。目前,文本段落使用QML Text元素呈现。是否有可能在Text元素中包含图像(使用HTML img元素),并带有指定的基线?另外,如何确定渲染的Latex文档的基线?
注意:预渲染Latex代码的时间不是问题。我将缓存已经呈现的公式,因此在演示文档中包含的每个公式上调用
还要注意,我使用预处理器(不手动编写QML代码,而是生成它)。因此,我不需要一个Latex代码的QML元素,但我可以生成一个具有Image元素的QML代码片段(对于第一种解决方案)。这应该简化嵌入呈现的图像。
我也不需要支持使用内联Latex时换行。(当编写内联公式时,Latex会这样做,但我只使用小型公式,我不希望被换行。)
我想要能够包含一些Latex代码来显示一些数学公式(只需要最小的Latex功能,如求和、分数、上下标和数学字体)。
我看到以下几种可能性:
- 使用latex2e:
- 将Latex代码编译为DVI文档(使用
latex
) - 将DVI转换为SVG(使用
dvisvgm
) - 使用QML中的
Image
显示它(也支持SVG)
- 将Latex代码编译为DVI文档(使用
- 使用MathJax:
- 将Latex代码包装在一个小的HTML文件中+包含MathJax JS库
- 使用QML的
WebKit
显示它
- 自定义解决方案(C++):
- 编写或包含现有的最小Latex数学解析器
- 编写带有自定义绘图的
QDeclarativeItem
我看到以下问题与数学公式的基线有关:我想能够包含内联公式(在段落内)。目前,文本段落使用QML Text元素呈现。是否有可能在Text元素中包含图像(使用HTML img元素),并带有指定的基线?另外,如何确定渲染的Latex文档的基线?
注意:预渲染Latex代码的时间不是问题。我将缓存已经呈现的公式,因此在演示文档中包含的每个公式上调用
latex
+dvisvgm
应该没有问题。还要注意,我使用预处理器(不手动编写QML代码,而是生成它)。因此,我不需要一个Latex代码的QML元素,但我可以生成一个具有Image元素的QML代码片段(对于第一种解决方案)。这应该简化嵌入呈现的图像。
我也不需要支持使用内联Latex时换行。(当编写内联公式时,Latex会这样做,但我只使用小型公式,我不希望被换行。)