杜寧


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