杜寧
摘 要:開源ASCIIMathML.js遵循W3C互聯(lián)網(wǎng)數(shù)學信息交換標準,實現(xiàn)了網(wǎng)頁公式從Content(表義)到Presentation(表現(xiàn))的轉(zhuǎn)換,進而支持MathPlayer引擎對網(wǎng)頁公式的顯示。它與廣泛使用的MS Word公式編輯器MathType表現(xiàn)語法基本相同,可實現(xiàn)MS Word和網(wǎng)頁公式的互用、復用。探討ASCIIMathML從Content到Presentation的解析機理,對于在WWW上數(shù)學公式的交流和處理,對于數(shù)學符號的機器識別和應(yīng)用,甚至Pretentation到Content的逆向工程,都具有實際意義。
關(guān)鍵詞:公式 ASCIIMathML MathML MathPlayer
中圖分類號:TP391 文獻標識碼:A 文章編號:1672-3791(2015)09(a)-0002-02
通過網(wǎng)絡(luò)傳播、學習數(shù)學知識,在線交流,已成為便捷、潮流、重要的手段,都涉及數(shù)學公式在Web中輸入、處理、顯示的問題。MathML是W3C制定的基于XML的WWW數(shù)學信息交換標準,從表義(Content)和表現(xiàn)(Presentation)兩方面完整地表達了數(shù)學公式。
Peter Jipsen編寫的ASCIIMathML.js[1]腳本,兼容LaTex語法,實現(xiàn)表義到表現(xiàn)的轉(zhuǎn)化。Design Science公司的網(wǎng)頁公式引擎MathPlayer[2],實現(xiàn)了網(wǎng)頁上MathML的顯示。兩者結(jié)合,完美地實現(xiàn)了從字符串到公式的網(wǎng)頁顯示。
1 ASCIIMathML語義符號
ASCIIMathML的公式語義,是一種基于ASCII碼的線性字符串格式,與Design Science公司的另一軟件MathType的公式表義語法基本一致。在安裝了MathType的MS Word中,公式有焦點時,按鍵Alt+\即可在公式和語義串之間切換。
1.1 ASCIIMAthML基本語義符號
(1)定界符:同時也是與普通文本區(qū)分的標識符。公式內(nèi)容界定在一對$…$或`...`中。
(2)保留字:函數(shù)名如sin,表達式如lim,希臘字母如Pi,特殊符號如infty。
(3)括號:{},表示其中內(nèi)容為一整體。如\lim_{x->0}中x->0作為整體置于lim底部。
(4)語義符:/表分式,_表上標,^表下標,&表矩陣元素之間隔,\\表矩陣元素換行。
(5)轉(zhuǎn)義符:\,表示其后字符(串)為保留字或特定含義,如\$表美元符,\frac表分式。
(6)其他數(shù)學符號:如+-表示±,!=表≠,oo表示∞,\in表示等等。
1.2 ASCIIMAthML的表形語義符號
見表1。
2 ASCIIMathML的基本解析結(jié)果
2.1 ASCIIMathML的輔助標簽
ASCIIMathML的輔助標簽界定math對象中的單個字符,或界定行、塊內(nèi)容。其結(jié)構(gòu)標簽見表1之語義。
(1)單個ascii字母字符或保留字串(a-z,A-Z及保留字):
(2)單個ascii數(shù)字字符(0-9):
(3)單個ascii其他字符(+,-,=,<,>,#,%,.,:,,”等等):
(4)空格:
(5)行.內(nèi)容塊定界符:
2.2 ASCIIMathML主要解析結(jié)果示例
ASCIIMathML完成了ascii文本串的解析到MathML之DOM對象樹的創(chuàng)建,它是表現(xiàn)(Pretentatin)所代表的公式二維結(jié)構(gòu)在頁面上的體現(xiàn)。表2列舉了常見公式的解析結(jié)果。
在ASCIIMathML的轉(zhuǎn)換中,首先引用自定義元素的名空間,創(chuàng)建
3 ASCIIMathML的運行過程
在HTML文件的任意位置(推薦在