【SDU Chart Team - Editor】LaTeX公式解析到MathML

本文讲述了在前端项目中,为了解决在SVG中显示数学公式的需要,选择了使用MathML而不是KaTeX。由于大部分浏览器不支持MathML,文章详细介绍了如何通过MathML.css库解决兼容性问题,并探讨了将LaTeX转换为MathML的方法,包括LaTeX命令的分类、MathML标签的使用,以及利用深度优先搜索解析LaTeX公式到MathML的树形结构。
摘要由CSDN通过智能技术生成

前期工作

问题提出

经过第六周的讨论,决定在前端通过HTML表示文本,为了保证接口的统一,需要寻求在HTML中表示数学公式的解决方案。

问题解决

对于网页公式显示问题,网上的首选解决方案是使用KaTeX对公式进行渲染,但是考虑到我们所需要的使用场景是在SVG中的<foreignObject>,使用KaTeX并非最优解;同时过于依赖现成框架,缺少创新性。
通过查询资料,得知了MathML可以用于解决上述问题

Mathematical Markup Language (MathML) is a mathematical markup language, an application of XML for describing mathematical notations and capturing both its structure and content. It aims at integrating mathematical formulae into World Wide Web pages and other documents. It is part of HTML5 and an ISO standard ISO/IEC 40314 since 2015.

然而,除了Firefox,包括chrome在内的浏览器并不支持MathML;而本项目构建所使用的electron框架正是chrome内核,因此MathML的显示适配问题亟待解决。
首先考虑替换electron所使用的内核,但是可行性较低;然后考虑通过CSS样式强行显示,在研究过程中发现了MathML.css库,为其他浏览器显示MathML提供了支持。

  • 对于某些标签的适配还是存在一些问题的,需要手动调整修改

至此,前期工作基本完成,数学公式的显示问题已解决。

LaTeX解析

考虑到用户插入数学公式使用LaTeX语法显然是最合适的解决方案,因此接下来考虑如何将LaTeX转化到MathML。

调研准备工作

第一步依然是查找网络上现有的解决方案,这时得知了MathJax的存在

MathJax is a modular javascript framewo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值