欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
MathML: 描述數學(xué)表達式|http://www.aspsky.net
在Web上顯示、操作、共享及其它


文檔選項
將此頁(yè)作為電子郵件發(fā)送

 

對此頁(yè)的評價(jià)
幫助我們改進(jìn)這些內容


級別: 中級

車(chē)皓陽(yáng)中科院軟件所
張治上海交通大學(xué)圖像處理與模式識別研究所


2003 年 3 月 01 日

許多STM(Scientific, Technical, and Medical)用戶(hù)都要在網(wǎng)頁(yè)中準確地嵌套數學(xué)公式,以往,他們的做法是借助各色的公式編輯器生成目標公式,并設法將公式轉換成JPG、GIF和PNG圖像,最終將其顯示在網(wǎng)頁(yè)。這樣做,靈活性、擴展性、可控性與互操作性都不是很好。幸好,我們現在有了MathML,它可以幫助我們在Web以及字處理器中顯示、操作和共享數學(xué)表達式。
本文要求讀者掌握最基本的HTML和XML知識。本文并沒(méi)有排斥其它一些可以在Web網(wǎng)頁(yè)中嵌入數學(xué)公式的方法,例如Java applet。

一、MathML?

無(wú)疑,數學(xué)的描述和分析能力從某方面可以說(shuō)是源自于以記號表達思想的方式。很早的時(shí)候,埃及人、巴比倫人、希臘人和我們中國人就已經(jīng)懂得了用繩結、刻痕、魚(yú)骨等方法來(lái)計數?,F在我們使用的數學(xué)標記大概也已經(jīng)有一百到五百年的歷史了,這些標記經(jīng)過(guò)了Leibniz,Euler,Peano等許多先哲不斷的改進(jìn)才逐步形成今天的模樣的。


圖1 巴比倫人的石刻,他們已經(jīng)掌握了位置計數法

有了之前的歷史奠定基礎,到了計算機時(shí)代,我們要求做到,象自然語(yǔ)言于人一樣使計算機可以理解數學(xué)知識。經(jīng)過(guò)多年艱苦的努力,終于出現了象Mathemetica和Matlab這樣的軟件,近似地做到了這一點(diǎn),它們設法使機器理解數學(xué)公式,進(jìn)而完成一些初等和高等數學(xué)運算。但現在同樣的問(wèn)題又出現在網(wǎng)絡(luò )面前,怎樣在線(xiàn)顯示和控制那些數學(xué)表達式:古老的和現代的?原先的HTML還能夠勝任嗎?

實(shí)際上,普通的HTML里也已包含了一部分支持公式描述的標記。例如簡(jiǎn)單如同ax2+by2+c,它的HTML源碼是:


<I>ax</I><SUP>2</SUP>+<I>by</I><SUP>2</SUP>+<I>c</I>


但是這些標記的功能實(shí)在是有限,連高等數學(xué)中的微分、積分都不能表示,僅依靠HTML肯定是無(wú)法達到我們的要求的。即便再加入Symbol、Windings 3或Euclid symbol這樣字體以及ASCII碼和Unicode碼的支持,實(shí)現的功能也受限,勉強成功,也頗費周折。加之如果他人的機器上沒(méi)有安裝你所使用的字體,情況就會(huì )變得更糟。這還只是顯示的問(wèn)題,假如說(shuō)在要操作或修改已顯示的數學(xué)公式,則每次都要完成諸如位置糾準、符號選取等大量的編輯工作。無(wú)可避免,在Web頁(yè)面上如何顯示和控制數學(xué)公式就成為了一個(gè)擾人的問(wèn)題。


圖2 使用ASCII碼表示的一個(gè)數學(xué)公式

幸好,我們現在有了MathML,它可以幫助我們在Web以及字處理器中顯示、操作和共享數學(xué)表達式。

MathML于1997年首先由W3C提出WG內部版本,到了2001年2月給出了2.0正式版,也是目前最為成熟的版本。MathML使用XML來(lái)描述數學(xué)表達式的結構和內容。MathML的目標就是使Web可以服務(wù)、接收、處理數學(xué)公式,正如HTML處理文本的功能那樣。

MathML 2.0擴展了MathML 1.0的符號和表達式集,改進(jìn)了與其它一些W3C技術(shù)的集成。MathML 2.0支持Tex和MathML的互操作,MathML 2.0還能處理用ISO 12083格式編碼的文檔。MathML可以用作專(zhuān)用數學(xué)方程編輯器,它含有一個(gè)特殊數學(xué)符號的大字符名稱(chēng)集,而且將支持方程的朗讀。數學(xué)方程可以用層疊樣式表(CSS)來(lái)設計,可以通過(guò)XLink同任何數學(xué)表達式鏈接,MathML元素可以包含于帶命名空間的XHTML文檔。MathML 2.0還包含MathML DOM(MathML文檔對象模型),可以識別MathML組件并能用任何腳本語(yǔ)言操作它。


回頁(yè)首

 

二、實(shí)例解析MathML

在下面的部分中,我們準備結合具體的實(shí)例逐步地講解MathML(MathML By Example)中涉及的一些基本的概念、標記和常用的表示法。

1. 簡(jiǎn)單的例子:Fermat小定理

1640年10月18日在致德·貝西(Frenicle de Bessy)的信中提及的Fermat定理是一個(gè)已被證明了的定理,現在稱(chēng)其為Fermat小定理或簡(jiǎn)稱(chēng)Fermat定理,數學(xué)定義如下:


n
p-1 ≡ 1 (mod p),如果n⊥p



之所以說(shuō)它簡(jiǎn)單,是說(shuō)它的表達形式,任何具備高中數學(xué)知識的人都能看懂。描述它的MathML代碼就是(文件名LittleFermat.mml,后綴mml表示MathML文件):


<math xmlns="http://www.w3.org/1998/Math/MathML">
<msup>
<mi>n</mi>
<mrow>
<mi>p</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
<mspace width=".2em"/>
<mo>≡</mo>
<mspace width=".2em"/>
<mn>1</mn>
<mspace width=".2em"/>
<mo>(</mo>
<mi>mod</mi>
<mspace width=".2em"/>
<mi>p</mi>
<mo>)</mo>
</math>


在MathML瀏覽器或已安裝插件的IE中顯示如下:


圖3 Fermat小定理

我們可以看出,MathML把所要描述的表達式分解成由數字、字母、文本或其它符號組成的一棵樹(shù)。樹(shù)根標記<math>表示MathML文檔的開(kāi)始,</math>表示MathML文檔結束。最小的MathML文檔是空文檔,由無(wú)內容的標記對<math></math>組成,它在支持MathML的瀏覽器中顯示為空白頁(yè)。

標記<msup>表示上標(superscript),它的語(yǔ)法格式是:


<msup> base script </msup>


在上面的例子中,base部分就是<mi>n</mi>。mi元素表示標簽中的內容將作為標識符顯示,也就是說(shuō),象‘n‘或‘p‘這樣單個(gè)字符顯示成斜體,象"mod"這樣的字符串則按普通格式(豎式)顯示。其中,mi中的‘i‘是英文identifier的首字母。

script部分是<msup>與</msup>之間其余的內容,即p-1。中間的元素mrow是MathML中最為常用的布局模式(可以參考Java布局管理類(lèi)FlowLayout)。元素mrow中可以包含任意數目的元素,它們延著(zhù)一條基線(xiàn)水平從左到右排列(MathML 2.0目前只支持這種排列方式,從右向左或雙向排列可能會(huì )在未來(lái)版本中出現),mrow也可以嵌套使用。除了這個(gè)功能以外,mrow還經(jīng)常用于把不同元素組合成為同一單元(子公式)使用,例如上面的p-1就是如此。

緊接著(zhù)下面的‘-‘號由元素mo修飾。mo表示中間的內容將按運算符來(lái)顯示,它是MathML中最為復雜的一種標記模式。例如,運算符不同,它周?chē)粲械目沼嘁哺?zhù)不同;中括號和大括號的尺寸會(huì )匹配它們包圍的內容,自動(dòng)更新。支持MathML的瀏覽器會(huì )包含一個(gè)"運算符字典",里面記錄著(zhù)每個(gè)運算符所遵循的缺省布局屬性。在繪制過(guò)程中,如果沒(méi)有顯式指定布局屬性,就根據這些屬性渲染運算符。這些屬性包括lspace、rspace、stretchy和movablelimits等。mo也用來(lái)描述一些通用意義上的運算符,如圓括號(如上例中的‘(‘和‘)‘)、標點(diǎn)符號以及重音符等。

<mn>1</mn>一句中mn元素表明將要顯示的內容是數字,數字在MathML里一般按照標準豎式顯示。而空元素mspace則表示一段空白區域,其寬度由其屬性width所設定," .2em"為其取值。em是字體相關(guān)的,常被用于修飾寬度值。單位標識符來(lái)源于CSS語(yǔ)法,但它們并不是對等的,原因在于CSS并不支持小數。常用的單位標識符還包括有:ex(字體相關(guān),用于修飾高度值)、px(像素)、in(英寸)、cm(厘米)、mm(毫米)、%(百分比值),等等。

最后,還要講一下≡,它屬于MathML中的實(shí)體引用(entity reference)。實(shí)體引用是一種特殊格式的關(guān)鍵字,表示擴展字符。實(shí)體引用的格式是&entity_name;,即由‘&‘開(kāi)始,‘;‘結束。中間的entity_name也可能是數字,即擴展字符的Unicode碼,還可能會(huì )是UTF-8編碼。大多數MathML的實(shí)體名稱(chēng)與LaTeX比較相近,例如LaTeX中的\\alpha在MathML中的對應表示是α。

2. 深入一點(diǎn)兒:矩陣的積分定義

矩陣A的積分定義為:


圖4 矩陣A的積分定義

由于代碼較長(cháng),下面只顯示最重要的一部分內容,完整的源代碼可參閱文件MatrixIntegral.mml:


<!-- leave out -->
<mstyle fontsize=‘12pt‘ color=‘GREEN‘>
<mrow>
<mtable>
<mtr>
<mtd>
<mrow>
<mo color=‘#ffff33‘>∫</mo>
<mrow>
<msub>
<mrow>
<mi>α</mi>
</mrow>
<mrow>
<mn>11</mn>
</mrow>
</msub>
</mrow>
<!-- leave out -->


元素mstyle是一種通用的布局模式(layout schemata),同樣,上例中mrow也是常見(jiàn)的布局模式。兩者之間的差別在于style處理屬性的方式有所不同。mrow沒(méi)有什么自己的屬性,而mstyle卻可以設置幾乎所有的MathML屬性。在這里,要想弄清楚mstyle的工作方式,我們首先要弄清楚MathML中屬性繼承的概念。

在MathML中,有三種方式設置屬性:明確地在標簽中設置;在運算符字典中查找;從環(huán)境中繼承。每種元素都生存在屬于自己的環(huán)境中,環(huán)境記錄著(zhù)屬性的缺省值。子元素繼承父元素的環(huán)境信息。如果查尋不到屬性值,元素就會(huì )使用環(huán)境中缺省的屬性值。在標簽中明確設置的屬性信息僅會(huì )影響直接相關(guān)的元素,而并不會(huì )影響元素的生存環(huán)境。那么要想讓子元素也受到修改過(guò)程的影響,就要求助于mstyle。本例中"<mo color=‘#ffff33‘>∫</mo>"一句,作用是把第一個(gè)積分顯示成黃色,但其它積分仍為前面mstyle設置的綠色,這就是原因所在。mstyle元素的作用域從聲明開(kāi)始直到</mstyle>,會(huì )影響域中所有的元素。

除了mstyle和mrow這兩種通用的布局模式以外,在MathML中類(lèi)似的布局模式還有mfrac、msqrt、mroot、merror、mpadded、mphantom、mfenced和menclose,分別提供方式顯示分數、平方根、根數、預處理器的語(yǔ)法錯誤信息、周?chē)目瞻讌^、內容不可見(jiàn)的空檔、括號等包圍的表達式以及符號內的表達式。

標記<msub>表示上標(subscript),它與上例中的msup元素也同屬布局模式,與通用布局模式不同,它們屬于專(zhuān)門(mén)用于處理標記的那一類(lèi)模式。同類(lèi)的布局模式還包括有:msubsup、munder、mover、munderover和mmultiscipts,分別表示:上下標對、頂部標記、底部標記、頂底標記對和支持多種標記(除了前面的標記外,還可支持前向標記、前上、前下、張量指標等標記)。

第三類(lèi)布局模式處理表格,本例中元素mtable就屬于這樣一種布局模式。除了一些數學(xué)專(zhuān)用的屬性外,MathML表格與HTML表格非常相似。其中mtable、mtr與mtd分別與HTML中的table、tr和td對應。這樣一來(lái),我們馬上就能弄清楚這些標記的含義。常用的屬性有rowalign和columnalign,確定行列表項如何對齊;rowlines、columnlines和frame,用于繪制分隔線(xiàn);rowspacing、columnspacing、equalrows和equalcolumns確定行列間距。

布局模式中還有特殊的一員---maction,它把動(dòng)態(tài)特性引入MathML,例如變換表達式中某部分的前景色或背景色、在狀態(tài)欄中顯示提示信息、顯示彈出提示信息、切換表達式,等等。

3. 另一種風(fēng)格:Fermat小定理的左半部

在矩陣的積分定義中,我們使用mtable元素把矩陣作為表格顯示。實(shí)事上,MathML中有矩陣專(zhuān)用標記matrix,matrix與前面提到的所有標記都不同,它是內容導向的。

MathML 的標記語(yǔ)言按照編碼風(fēng)格可以劃分為三類(lèi):呈現導向的(Presentation Encodings)、內容導向的(Content Encodings)和混合型的(Hybrid Encodings)。根據這樣的分類(lèi),上面兩個(gè)例子的編碼規格都屬于呈現型的,呈現元素描述符號的可視二維結構。MathML呈現型標記由大約30種元素組成,支持的屬性超過(guò)50種。大部分呈現元素都屬布局模式,也就是說(shuō)可以包含其它呈現元素。內容元素用途不在顯示上,而關(guān)注于數學(xué)表達式本身的語(yǔ)義,常常應用于象計算機代數、語(yǔ)音合成等領(lǐng)域。這樣,在我們使用內容型標記時(shí),控制表達式的顯示相對來(lái)說(shuō)會(huì )困難一些。內容型標記支持元素超過(guò)120種,約150種,支持的屬性約有12個(gè)?;旌暇幋a介于呈現和內容兩者之間,它混合使用兩種編碼方式。究竟使用何種編碼方式,要根據應用環(huán)境而定。

下面是按照內容標記編碼的Fermat小定理的左半部分:


<math>
<apply>
<power/>
<ci>n</ci>
<apply>
<minus/>
<ci>p</ci>
<cn>1</cn>
</apply>
</apply>
</math>


內容標記使用前綴記法,無(wú)需括號,描述方式貼近自然語(yǔ)言,例如,5加8的英語(yǔ)表示是"add 5 and 8",或"subtract 9 from 15"。本例中元素apply的含義是把操作(取冪)應用在表達式上,它把操作符作為第一個(gè)子元素,其余部分則作為操作符的參數使用。元素apply屬于第一類(lèi)內容標記,它們功能相似,并且可以基于其它元素生成新的數學(xué)對象,有分組能力。apply大概也是內容元素中最為重要的一個(gè)吧。

空標記<power/>和<minus/>則分別表示操作取冪和做減法,內容型標記中的空元素用于表示操作符、數學(xué)關(guān)系以及命名函數等。

前面提到過(guò)的matrix和set、vector以及interval屬于第三類(lèi),用于編碼基本的數學(xué)對象和數據類(lèi)型,它們一起稱(chēng)為容器(container)。而本例中元素ci與cn則屬于token elements,分別表示標識符和數字,它們與呈現元素mi以及mn的用法相近。注意,內容元素中并無(wú)mo對應的co,這是由于函數和操作符都是由元素表示的原因。

受文章篇幅的限制,我們舉出的例子遠未能涉及所有的MathML標記,也未能涵蓋所有重要的概念。但我想,這些例子對于初學(xué)者來(lái)說(shuō)已經(jīng)足夠,更為復雜的功能設計讀者可以登錄W3C Math Home或參考MathML相關(guān)的國際會(huì )議,里面有許多工作草案、標準文檔,也有許多很好的教程可供下載閱讀。


回頁(yè)首

 

三、工具與MathML

MathML 2.0規范中有著(zhù)太多的標記、實(shí)體和屬性,如果全部記住,記憶會(huì )承受很大的負荷。如果沒(méi)有工具的支持,MathML的編輯和發(fā)布肯定會(huì )舉步維艱,有如我們不使用Dreamweaver或FrontPage手工創(chuàng )建和編輯HTML頁(yè)面一樣。這樣,自1.0版本發(fā)布之后,相繼出現了許多支持MathML的工具。除了一些副產(chǎn)品和邊緣工具外, MathML相關(guān)的工具大致可分下面幾類(lèi):

瀏覽器(Viewer、Renderer、Rendering Engine)
編輯器(Editor、Typesetter、Authoring Tool)
解析器(Parser、Validator)
轉換器(Translator、Transformer)
1. 瀏覽器支持

通用瀏覽器如IE、Netscape、Mozilla以及W3C的Amaya等當前的版本都不同程度地支持MathML。Mozilla 1.0版之后,在三個(gè)平臺下都已經(jīng)支持MathML。Netscape 7.0 PR1版除Mac平臺不支持以外,其它兩個(gè)平臺都支持。而最新的消息聲稱(chēng)7.1版的Netscape在三個(gè)平臺下也均已內嵌支持MathML。1996年由W3C啟動(dòng)的Amaya是一個(gè)開(kāi)源項目,編輯器和瀏覽器被集成在一起。作為一個(gè)框架,Amaya對諸如SVG、CSS等多種W3C標準支持的都不錯,Amaya中MathML顯示速度明顯比其它幾個(gè)瀏覽器要快,支持的屬性也比較全面,而且還支持MathML文件內部結構的樹(shù)型顯示。由于微軟對MathML的支持,未來(lái)的IE7及其后續版本肯定將逐步支持公式的顯示,Design Science也已經(jīng)宣稱(chēng)微軟將會(huì )提供MathPlayer支持MSN用戶(hù),但目前IE 6.0以下的版本仍需安裝第三方插件才能正常顯示MathML。

Windows平臺下常見(jiàn)的插件有Desgin Science的MathPlayer和IBM的Techexplorer(現已轉交Integre Technical Publishing Co.維護)。表1列出了目前主流操作系統平臺下瀏覽器對MathML的支持情況。

Windows Linux/Unix Macintosh
IE 5.0 + Techexplorer plug-in Netscape 6.1 + Techexplorer plug-in IE 5.0 + Techexplorer plug-in
IE 5.5 + MathPlayer 或者 Techexplorer plug-in Netscape 7.1 Netscape 7.1
IE 6.0 + MathPlayer 或者 Techexplorer plug-in Mozilla 0.9.9 Mozilla 0.9.9
Netscape 6.1 + Techexplorer plug-in Amaya
Netscape 7.1
Amaya
Mozilla 0.9.9

表1 各種操作系統對MathML的支持

我們以Windows平臺下MathPlayer為例解釋如何使用插件。該軟件要求IE版本在5.5以上,這個(gè)條件基本都可符合。具備這個(gè)基本條件之后,有兩種顯示公式的方式:HTML和XHTML。由于W3C介紹的方法是XHTML,我們這里也僅介紹XHTML中MathML的用法。XHTML文件要存成XML文件,在開(kāi)始處要加入下面三句話(huà):


<?xml version="1.0" encoding="UTF-8" standalone="no"?> // XML文件聲明
<?xml-stylesheet type="text/xsl" href="mathml.xsl"?> // XSL文件
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> // 使用XHTML
然后在文檔中就可以:
<math xmlns="http://www.w3.org/1998/Math/MathML">
……
</math>

 


除了mathml.xsl文件之外,轉換文件還包括:ctop.xsl、pmathml.xsl和pmathmlcss.xsl,其中pmathmlcss.xsl并不是必須的。如果缺少了某個(gè)文件,mathml的解析將失效。HTML+MathML的手工設置要更多一些。


圖5 在已安裝MathPlayer插件的IE中顯示XHTML文件和MML文件

2. 編輯器支持

MathML的編輯器已有很多,除了上面講過(guò)到同為瀏覽器的Amaya以外,最著(zhù)名的就屬Design Science的WebEQ Editor了。下表就是這兩個(gè)軟件的各項功能對比(以Windows平臺為主):

功能 Amaya 3.5 (W3C) WebEQ 8.1b (Design Science)
跨平臺 可以 可以
支持的格式 XHTML1.0、XHTML1.1、MathML、SVG、CSS MathML
是否同時(shí)支持Presentation和Content兩種方式 支持 支持
集成瀏覽器功能 是 否
有無(wú)發(fā)布功能 無(wú) 有獨立的WebEQ Publisher
模板功能 支持 支持
有無(wú)即時(shí)幫助功能(F1) 沒(méi)有 有,但不全面
在線(xiàn)編輯 不支持 支持,InputControl Applet
屬性設置 功能全而且方便 功能不全,也不是很方便
支持Drag & Drop 支持 不支持
打印功能 支持 不支持
存儲為圖像 不支持 支持,可存儲為JPG或PNG圖像
拷貝和剪切 支持 支持
查找和替換 支持 不支持
系統剪貼板 沒(méi)有 有
內部結構樹(shù) 可以顯示 不能顯示
源碼顯示 可以,有專(zhuān)門(mén)菜單 沒(méi)有專(zhuān)用菜單,不拷貝沒(méi)法顯示
從網(wǎng)頁(yè)中拷貝公式 不是很支持 支持得比較好
快捷工具欄 有 缺省有
實(shí)時(shí)ancestry 沒(méi)有 有

表2 Amaya和WebEQ功能對比

由上表可以看出,Amaya對MathML的支持要優(yōu)于WebEQ,所以推薦使用Amaya。但如果編輯公式不很復雜,使用WebEQ也是一種不錯的選擇。許多常見(jiàn)的字符處理器如開(kāi)源的 OpenOffice、 Maple、 Mathcad、 Mathematica、 Publicon和 MacKichan Software的軟件Scientific Workplace現在都可以輸出HTML+MathML或輸出XML+MathML,其中Maple已支持MathML 2.0版,包括Presentation和Content兩種形式。如果讀者的機器上已經(jīng)裝有這些軟件,可以直接使用它們編輯輸出XML和HTML文件,否則的話(huà),最好還是安裝Amaya。Amaya功能最為健全,也不會(huì )有炮打蚊子之嫌。

3. 解析器和轉換器

人們研究計算機和網(wǎng)絡(luò )的數學(xué)應用已經(jīng)有很多年份了,積累了豐富的資源,現在一個(gè)亟待解決的問(wèn)題就是該如何處理遺留數據(Legacy data)。其中的一種解決辦法就是將這些遺留數據轉換成其它格式,這樣不可避免就要求創(chuàng )建相應的匹配器、解析器和轉換器。在我們討論的領(lǐng)域內,已有許多工具可以將TeX、PDF、LaTeX轉換為MathML格式,也有工具可以將MathML轉換為圖像、PDF、TeX或SVG等格式。實(shí)現轉換器,軟件必然會(huì )帶有解析功能,這也是我們?yōu)槭裁窗呀馕銎骱娃D換器放在一起進(jìn)行討論的原因。表3列舉了當前常見(jiàn)的各類(lèi)轉換軟件:

軟件名稱(chēng) 功能
BraMaNet 法國軟件,VB界面,使用XSL可將MathML轉換為法語(yǔ)的Braille格式,也可配合MathType把Word文檔轉換為Braille。
ConTeXt Hans Hagen編寫(xiě)的自由軟件,基于TeX可把MathML轉換為PDF或DVI文件。
DSSSL stylesheets for MathML Esprit OpenMath項目的一部分??梢越馕鯬resentaion和Content兩種格式的MathML。使用Jade可以把MathML轉換為T(mén)eX或rtf格式。
JEuclid Apache開(kāi)源項目Cocoon的一個(gè)子集,可以把MathML轉換為GIF圖像或SVG格式。
itex2MML 從itex(LaTeX的一個(gè)子集)到MathML的轉換工具。
LaTeX2HTML MathML package 把LaTeX轉換為MathML格式。
MathML to SVG Converter SchemaSoft的轉換器,它利用XSLT 1.1將MathML 2.0轉換為SVG 1.0。
tbook 一個(gè)DTD,用于編輯包括數學(xué)公式的科學(xué)文檔??梢赞D換這種格式的XML文件到高級LaTeX、XHTML、HTML和XML DoBook。
TeX4ht 通用的TeX到SGML/XML的轉換器,僅支持MathML Presenation標記,開(kāi)源。
TtM 一個(gè)從TeX到MathML的轉換工具。
XSLT MathML Library 是一套XSLT樣式單,可以把MathML 2.0轉換為L(cháng)aTeX。它支持兩種格式的MathML。
webMathematica 基于Java Servlet技術(shù),完全兼容Mathematica,可以把Mathematica代碼轉換成MathML。
WeM 一個(gè)MathML編輯器,可以把LaTeX的一個(gè)子集轉換為MathML。

表3 各類(lèi)轉換軟件

比較遺憾的一個(gè)事情是,對于大量圖像格式的遺留數據,仍未能出現有效的轉換工具將它們轉換為MathML格式的文件,這應該算是一個(gè)Open problem了。作者準備采取元數據匹配以及圖像處理等相關(guān)知識,首先完成圖像格式到Content Encodings的轉換工作。由于Presentation Style的屬性比較多,所以相對麻煩一些,準備作為后續工作處理。

解析MathML文件時(shí)是把它當成一個(gè)結構良好的XML文件來(lái)處理的,W3C提供了兩種方法:1、使用MathML DTD;2、使用MathML XML Schema。如果要完全講清楚,還需要很長(cháng)的篇幅,有興趣的讀者可以自行閱讀MathML Language Specification。

一個(gè)小技巧:

由于70%的瀏覽器都已內置SVG插件,供應商目前對SVG的支持程度要遠遠大于對MathML的支持,例如SchemaSoft的MathML to SVG Converter就可以將MathML轉換為SVG格式。如果我們不能確定客戶(hù)機上是否安裝了顯示MathML的插件,可以將MathML轉換SVG格式。


回頁(yè)首

 

四、結束語(yǔ)

在網(wǎng)頁(yè)上描述數學(xué)公式以及進(jìn)行標準化整合,MathML確實(shí)為我們提供了不錯的選擇。目前基于XML技術(shù),不同的學(xué)科領(lǐng)域都有了各自的ML語(yǔ)言,用于科學(xué)數據與標記的表示與建模、交流與整合、匯總與發(fā)布,等等。例如,由Peter Murray_Rust 開(kāi)發(fā)的CML(Chemical Markup Language)語(yǔ)言包含了原子、分子、化學(xué)鍵、光譜等標記,可用于描述分子結構和序列、光譜結構、結晶、固體物理、化學(xué)數據庫等,它所定義的MOL.DTD也可由分子科學(xué)領(lǐng)域的研究人員共享。生物遺傳學(xué)家和基因學(xué)家可以使用生物基因序列標記語(yǔ)言(Bioinformatic Sequence Markup Language、BSML),交換和管理由基因映射和基因序列對象產(chǎn)品的大量信息。BSML的瀏覽器可讓使用者搜索各種基因數據庫,并可把最終片段顯示成有意義的圖譜,這些瀏覽器也可支持三維顯示。BioML(Biopolymer Markup Language)也可以用于描述像蛋白質(zhì)和核酸這樣的生物大分子序列信息。對于天文學(xué)家來(lái)說(shuō),他們也可以使用天文學(xué)標記語(yǔ)言AML(Astronomical Markup Language)、天文數據集標記語(yǔ)言ADML(Astronomical Data Markup Language)和天文儀器標記語(yǔ)言AIML(Astronomical Instrument Markup Language)。

當然,仍有一些專(zhuān)業(yè)領(lǐng)域直到如今也還沒(méi)有自己專(zhuān)屬的ML語(yǔ)言用于交換標準元數據。然則一來(lái)這些領(lǐng)域的相關(guān)人員一直以來(lái)也在為此努力,二來(lái)已有領(lǐng)域的建設會(huì )給新增標記語(yǔ)言提供一個(gè)很好的基礎作為參照,沒(méi)有理由不使我們相信將會(huì )有更多的領(lǐng)域擁有自己的ML,那樣,學(xué)術(shù)交流和溝通將會(huì )變得更加便捷和通暢。


回頁(yè)首

 

參考資料

下載文中所有的 示例文件。


W3C Math Home,MathML的大本營(yíng),有著(zhù)與MathML相關(guān)的各種信息。


Wolfram Research的 MathML Central。


可以在 Design Science下載MathPlayerTM插件。


IBM 的數學(xué)文檔瀏覽器 TechExplorer。


ICESoft的輕量級Java瀏覽器 E-Lite。


Amaya編輯器,一個(gè)由W3C主持的開(kāi)源軟件,可以支持HTML 4.01,XHTML 1.0, XHTML Basic,XHTML 1.1,HTTP 1.1,MathML 2.0,CSS 2以及SVG,可以顯示XML并完成部分編輯功能,但目前還不支持Unicode。


Design Science的可視化公式編輯器 WebEQTM。


EzMath,一種以自然語(yǔ)言方式編輯MathML的編輯器,不能存儲成文件,僅支持拷貝。


Steve Swanson的 mathmled,使用JavaScript和XUL的一個(gè)實(shí)驗性質(zhì)的編輯器。


Test Suite 2.0可以測試各種MathML語(yǔ)言的用法。


Netscape和Mozilla的用戶(hù)可以參閱 MathML in Mozilla。


MTValidate,符合W3C標記驗證服務(wù)的一個(gè)Movable Type的插件。


微軟MSDN的文章,“ Internet Explorer 6 and Standards”。


EContent文章: Publishing Equations? Do the Math(ML),Robert Boeri。


OpenMath and MathML,用于描述數學(xué)的語(yǔ)義標記。


由Wolfram Research舉辦的 MathML Conference 2002。


MathML and Scientific e-Contents Workshop 2002,第一屆歐洲研討會(huì ),Trieste,Italy,2002-11。


Math on the Web Status Report(全套版)。


《數學(xué)手冊》,高等教育出版社,北京,1979。


Pavi Sandhu編著(zhù)的 The MathML Handbook。


Robert Miner和Jeff Schaeffer的 A Gentle Introduction to MathML。


Ian Hutchinson的 Comparative Review of World-Wide-Web Mathematics Renderers。


Ian Hutchinson的 Approaches to WWW Mathematics Documents。


The Math Forum的 Math Typesetting for the Internet。


Dave Raggett和Davy Batsalle的 Mathematics on the Web: The EzMath notation。


Bioinformatics and XML,http://www.biosino.org/bioinformatics/011212-2.htm。


在 developerWorks XML 專(zhuān)區中尋找更多 用于 XML 開(kāi)發(fā)人員的參考資料。


回頁(yè)首

 

作者簡(jiǎn)介

 

車(chē)皓陽(yáng),中科院軟件所博士研究生。關(guān)注于電信網(wǎng)管理、信任管理等領(lǐng)域,對Linux以及開(kāi)源系統很感興趣。您可以通過(guò) grandiose11@msn.com與其聯(lián)系,歡迎討論相關(guān)問(wèn)題

 

張治,上海交通大學(xué)圖像處理與模式識別研究所博士研究生。關(guān)注于數據集成、模式匹配、復雜性理論等領(lǐng)域。您可以通過(guò) uphenix@hotmail.com與其聯(lián)系,歡迎討論相關(guān)問(wèn)題。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
W3C詞匯和術(shù)語(yǔ)表 | 菜鳥(niǎo)教程
計算機相關(guān)英語(yǔ)詞匯(2)
XHTML
數學(xué)軟件——計算機上的數學(xué)
在網(wǎng)頁(yè)中顯示數學(xué)公式
Html+Css+JavaScript實(shí)現網(wǎng)頁(yè)公式編輯器(一)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久