吳力榮
(浙江工業(yè)職業(yè)技術(shù)學(xué)院,浙江 紹興 312000)
20世紀(jì)90年代以來,隨著計(jì)算機(jī)技術(shù)、多媒體技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,特別是Internet的應(yīng)用和普及,整個(gè)社會(huì)的發(fā)展與信息技術(shù)的關(guān)系越來越密切,信息化水平已成為衡量一個(gè)國家現(xiàn)代化水平和綜合國力的重要指標(biāo).與此同時(shí),教育信息化也逐漸成為全球教育發(fā)展的一個(gè)熱點(diǎn).
隨著教育信息化建設(shè)的推進(jìn),理工類學(xué)科在信息化過程中(如網(wǎng)絡(luò)教學(xué)、在線考試、試題庫建設(shè)等),經(jīng)常會(huì)遇到需要編輯、存儲(chǔ)、顯示大量的數(shù)學(xué)符號(hào)或數(shù)學(xué)公式,但目前的互聯(lián)網(wǎng)技術(shù)對(duì)數(shù)學(xué)公式的信息化處理支持非常有限,因此迫切需要研發(fā)出行之有效的數(shù)學(xué)公式處理的解決方案.
目前,解決互聯(lián)網(wǎng)上數(shù)學(xué)公式問題的通常做法是利用MathType等數(shù)學(xué)公式編輯器把表達(dá)式轉(zhuǎn)換為圖像方式.但這種靜態(tài)的圖像形式給數(shù)學(xué)表達(dá)式的處理帶來許多不便,如操作繁瑣、排版效果差、不利于資源的復(fù)用等.另外,圖片形式的數(shù)學(xué)公式不能進(jìn)行查找和索引,更沒有語義,很難進(jìn)行信息處理和開發(fā)更深層次的功能.
傳統(tǒng)的解決方式在數(shù)學(xué)信息化的初始階段起到了積極的推動(dòng)作用,初步解決了數(shù)學(xué)公式的顯示問題,使得網(wǎng)絡(luò)上展示數(shù)學(xué)信息得以實(shí)現(xiàn).但隨著互聯(lián)網(wǎng)的發(fā)展和信息化進(jìn)程的深入,傳統(tǒng)的解法方案已不能滿足人們對(duì)數(shù)學(xué)信息多樣化的需求.高質(zhì)量的排版、便捷的數(shù)學(xué)信息互動(dòng)、可被搜索引擎檢索、擴(kuò)展性強(qiáng)等特性成為當(dāng)前數(shù)學(xué)公式處理解決方案的核心問題.
LaTeX是一種基于TeX的排版系統(tǒng),由美國計(jì)算機(jī)學(xué)家萊斯利·蘭伯特(Leslie Lamport)在20世紀(jì)80年代初期開發(fā),利用這種格式,即使使用者沒有排版和程序設(shè)計(jì)的知識(shí)也可以充分發(fā)揮由TeX所提供的強(qiáng)大功能,排版出美觀、準(zhǔn)確的高質(zhì)量數(shù)學(xué)和科技類文檔.
LaTeX 基于習(xí)慣性書寫思維來描述數(shù)學(xué)公式.比如:
的LaTeX數(shù)學(xué)描述為:im_{x ightarrowinfty}(1+frac{1}{x})^{x}=e.這種基于字符串的描述方式,使其具備良好的互聯(lián)網(wǎng)基因,成為互聯(lián)網(wǎng)上數(shù)學(xué)公式解決方案的首先技術(shù).
1998年4月,W3C的數(shù)學(xué)工作組發(fā)布了基于XML語言標(biāo)準(zhǔn)的數(shù)學(xué)標(biāo)記語言MathML1.0版本,旨在解決數(shù)學(xué)表達(dá)式在web中的傳送、接收和處理,是計(jì)算機(jī)之間交換數(shù)學(xué)信息的基本標(biāo)準(zhǔn).MathML完全采用XML的定義規(guī)范,繼承了XML的大部分優(yōu)點(diǎn),具有強(qiáng)大的數(shù)學(xué)公式表達(dá)能力.MathML 作為W3C的推薦標(biāo)準(zhǔn)已發(fā)布6個(gè)版本,最新的版本是MathML3.0 2nd Edition,發(fā)布于2014年2月.MathML標(biāo)準(zhǔn)的不斷完善,使其在基于網(wǎng)絡(luò)的教育、科研、出版和信息交換,甚至商務(wù)應(yīng)用中發(fā)揮越來越重要的作用.
MathML是一個(gè)用于標(biāo)記數(shù)學(xué)表達(dá)式的XML詞匯表,它包含兩個(gè)子語言:Presentation MathML和Content MathML.Presentation MathML主要負(fù)責(zé)描述數(shù)學(xué)表達(dá)式的布局,而Content MathML主要負(fù)責(zé)標(biāo)記表達(dá)式的某些含義或數(shù)學(xué)結(jié)構(gòu).下面是sin2x的2種MathML編碼方式:
Presentation MathML:
男性一般不喜歡啰嗦,因此,從形式上看,這則廣告語簡單利索,直接用語言信息明示了其目標(biāo)對(duì)象——男性受眾。Burberry在1992年上市第一款香水,根據(jù)受眾的百科信息,用很少的認(rèn)知努力就能明白該則廣告的傳言意圖:這是一款男性香水。這則廣告具有很強(qiáng)的交際效果。
Content MathML:
MathML雖然是W3C的推薦標(biāo)準(zhǔn),但其描述數(shù)學(xué)公式的編碼格式較為復(fù)雜,因此其比較適用于一些應(yīng)用的底層實(shí)現(xiàn),而在一般用戶使用層面中普及推廣較為困難.
Design Science公司給教育工作者和網(wǎng)絡(luò)開發(fā)人員提供了2種采用MathML技術(shù)來展現(xiàn)互聯(lián)網(wǎng)上數(shù)學(xué)公式的解決方案.
(1)利用MathType[3]將含數(shù)學(xué)公式的word文檔轉(zhuǎn)換為XHTML+MathML格式的web頁面.如果需要將一個(gè)word數(shù)學(xué)文檔發(fā)表到網(wǎng)絡(luò)上,MathType將是最好的工具.在安裝了MathType的word軟件中,通過菜單“MathType”下的“Publish to MathPage...”選項(xiàng)(圖1),我們可以將文檔轉(zhuǎn)換為帶MathML格式的web頁面.
圖1 Math Type數(shù)學(xué)公式發(fā)布配置
圖2 Math Type數(shù)學(xué)公式剪切復(fù)制首選項(xiàng)
在該面板中,Equations欄不僅提供XHTML+MathML格式,同時(shí)還提供諸如MathZoom/GIFs、HTML/XHTML+MathJax、MathPlayer等格式的支持.
MathType同時(shí)還支持將單一的數(shù)學(xué)公式直接導(dǎo)出為MathML格式的字符串.打開MathType,選擇“Preferences”下的“Cut and Copy preferences...”,在復(fù)制粘帖面板中作如圖2的配置.此時(shí),在Math Type中輸入數(shù)學(xué)公式,直接選中公式復(fù)制,系統(tǒng)將會(huì)以配置好的MathML格式字符串復(fù)制到剪貼板,這樣就可以粘帖到支持MathML格式的系統(tǒng)或web應(yīng)用中,如圖3.
圖3 sin2x的MathML代碼
圖4 Math Flow的Simple Eiditor編輯器
(2)利用MathFlow[4]創(chuàng)建動(dòng)態(tài)數(shù)學(xué)頁面.MathFlow組件是構(gòu)建動(dòng)態(tài)數(shù)學(xué)web頁面的Java工具包,世界領(lǐng)先的在線學(xué)習(xí)網(wǎng)絡(luò)公司、內(nèi)容開發(fā)商和教育門戶創(chuàng)建了基于MathFlow的網(wǎng)絡(luò)學(xué)習(xí)環(huán)境,幫助教育工作者和學(xué)生在網(wǎng)絡(luò)上學(xué)習(xí)數(shù)學(xué)和科學(xué).MathFlow提供了3種MathML的可視化編輯組件,每一種都針對(duì)特定的用戶群和使用環(huán)境,如Simple Editor(圖4)主要用來幫助終端用戶通過面板輸入簡單的數(shù)學(xué)公式,而Style Editor和Structure Editor則適用于更復(fù)雜的數(shù)學(xué)交互環(huán)境.MathFlow是一種基于MathML的可視化編輯組件,非常便于使用,但高昂的版權(quán)費(fèi)用決定了該軟件無法大規(guī)模普及.
在論壇、博客、評(píng)論中插入一個(gè)數(shù)學(xué)公式是在線教育的一種常見需求,目前很少有web應(yīng)用對(duì)此提供良好的支持,一般常見的做法是上傳公式編輯器的截圖來實(shí)現(xiàn),此方法不僅效率低下,而且圖文排版混亂,在當(dāng)前教育信息化環(huán)境下并不推薦使用.看似插入一個(gè)公式比什么都難,現(xiàn)在CodeCogs.com提供了在線LaTex公式編輯器(圖5),較好地解決了這個(gè)難題.
圖5 Code Cogs在線LaTex公式編輯器
和MathType一樣,在線LaTex公式編輯器提供了豐富的公式模版,可以方便地編輯,同時(shí)頁面上會(huì)得到實(shí)時(shí)的LaTeX公式圖片.右擊圖片,選擇“屬性”,復(fù)制其鏈接地址,就可以引用其地址在網(wǎng)上顯示該公式的圖片.
CodeCogs提供的在線LaTex公式編輯器,部分解決了網(wǎng)絡(luò)上處理數(shù)學(xué)公式的難題,但仍有一些問題需解決,如公式的顯示能否不是圖片而是由瀏覽器支持的某種字符串格式(MathML/LaTex).MathJax開源項(xiàng)目正好符合我們數(shù)學(xué)公式顯示的技術(shù)要求.作者結(jié)合在線LaTex公式編輯器可視化、便捷的特點(diǎn)和MathJax能將LaTeX字符串顯示成高質(zhì)量的數(shù)學(xué)公式,開發(fā)了一個(gè)基于MathJax的在線公式編輯器(圖6),給出了一套教育信息化環(huán)境下數(shù)學(xué)公式處理的解決方案.
圖6 基于Math Jax的在線公式編輯器
只要在HTML頁面內(nèi)插入,就可以將LaTeX格式字符串完美顯示成數(shù)學(xué)公式.
上述方案各具特色,各有優(yōu)勢,我們可以根據(jù)實(shí)際情況進(jìn)行選擇.筆者認(rèn)為,若只是數(shù)學(xué)公式或數(shù)學(xué)文檔的顯示,對(duì)交互性沒有太大要求,選擇方案1較為合適;若系統(tǒng)以回復(fù)形式的互動(dòng)性為主,無額外需求,選擇方案2較為合適;若對(duì)數(shù)學(xué)公式有編輯、互動(dòng)等基本需求外,需進(jìn)一步擴(kuò)展和開發(fā),如隨機(jī)試題的生成、數(shù)學(xué)試卷的自動(dòng)改卷等,選擇方案3較為合適.
教育信息化是現(xiàn)代教育重要的發(fā)展趨勢,互聯(lián)網(wǎng)上數(shù)學(xué)公式的處理是理工科教育信息化過程中遇到的重要難題,本文提出的數(shù)學(xué)公式處理解決方案可以有效解決該難題,積極推動(dòng)教育信息化進(jìn)程.
參考文獻(xiàn):
[1]LaTeX [EB/OL].http://www.latex-project.org/
[2]MathML [EB/OL].http://www.w3.org/Math/
[3]MathType [EB/OL].http://www.dessci.com/en/products/mathtype/
[4]MathFlow [EB/OL].http://www.dessci.com/en/products/mathflow/
[5]CodeCogs [EB/OL].http://www.codecogs.com
[6]MathJax [EB/OL].http://www.mathjax.org/