杜宁
摘 要:开源ASCIIMathML.js遵循W3C互联网数学信息交换标准,实现了网页公式从Content(表义)到Presentation(表现)的转换,进而支持MathPlayer引擎对网页公式的显示。它与广泛使用的MS Word公式编辑器MathType表现语法基本相同,可实现MS Word和网页公式的互用、复用。探讨ASCIIMathML从Content到Presentation的解析机理,对于在WWW上数学公式的交流和处理,对于数学符号的机器识别和应用,甚至Pretentation到Content的逆向工程,都具有实际意义。
关键词:公式 ASCIIMathML MathML MathPlayer
中图分类号:TP391 文献标识码:A 文章编号:1672-3791(2015)09(a)-0002-02
通过网络传播、学习数学知识,在线交流,已成为便捷、潮流、重要的手段,都涉及数学公式在Web中输入、处理、显示的问题。MathML是W3C制定的基于XML的WWW数学信息交换标准,从表义(Content)和表现(Presentation)两方面完整地表达了数学公式。
Peter Jipsen编写的ASCIIMathML.js[1]脚本,兼容LaTex语法,实现表义到表现的转化。Design Science公司的网页公式引擎MathPlayer[2],实现了网页上MathML的显示。两者结合,完美地实现了从字符串到公式的网页显示。
1 ASCIIMathML语义符号
ASCIIMathML的公式语义,是一种基于ASCII码的线性字符串格式,与Design Science公司的另一软件MathType的公式表义语法基本一致。在安装了MathType的MS Word中,公式有焦点时,按键Alt+\即可在公式和语义串之间切换。
1.1 ASCIIMAthML基本语义符号
(1)定界符:同时也是与普通文本区分的标识符。公式内容界定在一对$…$或`...`中。
(2)保留字:函数名如sin,表达式如lim,希腊字母如Pi,特殊符号如infty。
(3)括号:{},表示其中内容为一整体。如\lim_{x->0}中x->0作为整体置于lim底部。
(4)语义符:/表分式,_表上标,^表下标,&表矩阵元素之间隔,\\表矩阵元素换行。
(5)转义符:\,表示其后字符(串)为保留字或特定含义,如\$表美元符,\frac表分式。
(6)其他数学符号:如+-表示±,!=表≠,oo表示∞,\in表示等等。
1.2 ASCIIMAthML的表形语义符号
见表1。
2 ASCIIMathML的基本解析结果
2.1 ASCIIMathML的辅助标签
ASCIIMathML的辅助标签界定math对象中的单个字符,或界定行、块内容。其结构标签见表1之语义。
(1)单个ascii字母字符或保留字串(a-z,A-Z及保留字):
(2)單个ascii数字字符(0-9):
(3)单个ascii其他字符(+,-,=,<,>,#,%,.,:,,”等等):
(4)空格:
(5)行.内容块定界符:
2.2 ASCIIMathML主要解析结果示例
ASCIIMathML完成了ascii文本串的解析到MathML之DOM对象树的创建,它是表现(Pretentatin)所代表的公式二维结构在页面上的体现。表2列举了常见公式的解析结果。
在ASCIIMathML的转换中,首先引用自定义元素的名空间,创建
3 ASCIIMathML的运行过程
在HTML文件的任意位置(推荐在