Android插入方程技术方案分析
上一回《 iOS Pages插入方程功能分析》中,我们分析了iOS Pages插入方程的用户交互过程。
这一回开始,开始分析Android如何实现插入方程的功能。
一、目标
分析Android插入方程的技术实现方案,为『神马笔记』插入方程功能扫除技术障碍。
二、技术问题
编写数学公式常用的2种语言是LaTeX和MathML,从手机端编辑的角度来看,LaTeX优于MathML,MathML作为XML的子集,需要编写大量的标签元素,不太适合手机编辑。
因此,选择LaTeX来实现插入数学公式。
- 使用LaTeX需要解决的技术问题
问题 | 描述 |
---|---|
解析 | 通过解析LaTeX公式,从而判断是否有效,是否为空。 |
渲染 | 渲染解析后的LaTeX。 |
- 使用MathML需要解决的技术问题
问题 | 描述 |
---|---|
解析 | 通过解析MathML,从而判断有效性。 |
转换 | 将MathML转换为LaTeX,从而进行渲染。 |
三、实现方案
1. 解析LaTeX
方案 | 描述 | 参考资料 |
---|---|---|
JMathTeX | LaTeX的Java解析渲染库,并对MathML提供了有限支持。 | http://jmathtex.sourceforge.net/ |
jlatexmath | A Java API to render LaTeX | https://github.com/opencollab/jlatexmath |
jlatexmath-android | aJLaTeXMath Library - Displays LaTeX commands in android OS. | https://github.com/mksmbrtsh/jlatexmath-android |
JLaTexMath-andriod | JLaTexMath for Android 完美支持、数学、物理、化学公式、汉字解析、图文混排 本项目借鉴自jlatexmath-android(由java Api 转化来的Android版本) 本项目针对化学、生物类的中文公式做了优化。 |
https://github.com/sixgodIT/JLaTexMath-andriod |
jlatexmath-android | This is a fork of jlatextmath project that brings rendering of LaTeX math to Android. | https://github.com/noties/jlatexmath-android |
2. 渲染LaTeX
除了解析LaTeX代码库自带的渲染功能外,还可以通过网页方式渲染LaTeX。
方案 | 描述 | 参考资料 |
---|---|---|
MathJax | Beautiful math in all browsers A JavaScript display engine for mathematics that works in all browsers. |
https://www.mathjax.org/ |
KaTeX | Fast math typesetting for the web. | https://katex.org/ https://github.com/KaTeX/KaTeX |
3. 解析MathML
MathML是XML的子集ÿ