999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ASCIIMathML結構分析與應用

2018-01-16 12:34:48杜寧
科技視界 2018年28期

【摘 要】遵循W3C互聯網數學信息交換標準的開源腳本ASCIIMathML.js與MathPlayer插件共同實現了網頁公式從表義(Content)到呈現(Presentation)的轉換。分析ASCIIMathML.js的數據結構、框架結構及其運行機制,對于網頁公式的處理以及軟件的二次開發應用,具有一定的參考價值。

【關鍵詞】網頁公式;ASCIIMathML;MathML;MathPlayer

中圖分類號: TP391 文獻標識碼: A 文章編號: 2095-2457(2018)28-0071-002

DOI:10.19694/j.cnki.issn2095-2457.2018.28.031

【Abstract】The open source script ASCIIMathML.js, which follows the W3C Internet Mathematical Information Exchange Standard, together with the MathPlayer plug-in, implements the conversion of Web formulas from Content to Presentation. The analysis on the data structure, the frame structure and the operation mechanism of ASCIIMathML.js has certain value for the processing of Web formula and for the secondary development and application of software.

【Key words】Web formula; ASCIIMathML; MathML; MathPlayer

0 導言

開源ASCIIMathML.js[1]腳本,兼容LaTex語法,與Design Science公司的網頁公式插件MathPlayer[2]合璧,實現了網頁公式從表義(Content)到呈現(Presentation)的轉換。文[3]對ASCIIMathML的語義符號、解析形式進行了探討,本文旨在分析ASCIIMathML的結構及其運行機制,嘗試在此基礎上的初步應用。

1 ASCIIMathML的數據結構分析

ASCIIMathML的基本數據單元(以ASCIIMathML.js2.10為例),是一種結構體,以input字段為keyword,形成有序線性表。語法如表1:

例1:{input:"->",tag:"mo",output:"\u2192",tex:"rightarrow",ttype:CONST},

此例中,表義字符串“->” 形象代表unicode字符\u2192(即→),對應的LaTeX表義字符為“rightarrow”。該表義串被動態創建為mo對象,結構類型為CONST。

例2:{input:"\\cos",tag:"mi",output:"cos",ttype:UNARY,func:true},

此例中,func:true表示此乃數學函數,被處理為正體顯示。

例3:{input:"\\frac",tag:"mfrac",output:"/",ttype:BINARY},

此例中,tag:mfrac為分式結構,以BINARY對應的結構方式構建此對象。

2 ASCIIMathML程序框架分析

在ASCIIMathML.js腳本中,包含ASCIIMathML、 LaTeXMathML和ASCIIsvg三部分。其中ASCIIMathML為基本處理(已棄用),LaTeXMathM是對LaTeX作兼容性擴展后形成,ASCIIsvg實現網頁圖形功能。下面簡析網頁公式主體LaTeXMathM的框架和運行機制。

2.1 LaTeXMathML的基本程序極其功能

LaTeXMathML框架由若干功能程序和輔助程序的構成,其主要作用是解析公式表義字符串,創建對應的math對象,然后由MathPlayer插件將這些math對象顯示在頁面上。

值得一提的是LMgetSymbol函數,它按input字段索引并返回表義字符在ASCIIMathML數據單元表中對應的數據單元對象。

2.2 LaTeXMathML運行機制示意圖

LaTeXMathML以HTML文檔最頂層的body對象為入口,遞歸遍歷document對象的所有DOM結點。由結點的nodeValue屬性獲取文本串,再判斷、解析表義串,創建math對象。

其中,遍歷由主控函數processNodeR以遞歸方式完成,解析公式文本串并創建math對象體系則由LMparseExpr,LMparseIexpr,LMparseSexpr等函數完成。

3 ASCIIMathML結構應用示例

以下是ASCIIMathML.js結構與運行程序框架結構的基礎上,一些應用示例。

3.1 補充特殊的字符

ASCIIMathML提供了∴(unicode為2234)的簡捷輸入(冒號+點號)。現補充∵(unicode為2235)的簡捷輸入(點號+冒號),可按照表1語法,在AMsymbols[]內添加數據單元對象:

{input:".:", tag:"mo", output:"\u2235", tex:"because", ttype:CONST},

3.2 增添顏色處理

很多時候需要渲染公式中的部分內容的顏色,達到強調、引人注目之效果。以增添紅色為例,可在AMsymbols[]內添加數據單元對象:

{input:"mcRed",tag:"mstyle",atname:"color",atval:"red",tex:null,ttype:UNARY},

仿此增加特定顏色,可滿足大多數個性化顏色需求。若需制訂一普適性的顏色方案,比如IE預定義顏色表,則可在LMgetSymbol函數中優先識別,在該函數開頭增加代碼:

s=/^mc[A-Z][a-z]+/.exec(st);//st為函數的傳入參數,為結點的公式串

if(s)return{input:s,tag:"mstyle",atname:"color",atval:s.slice(2),ttype:UNARY}

此處,規定顏色語法為:mc+顏色單詞(首字母大寫),比如mcRed,mcGreen等。

3.3 簡捷輸入矩陣、方程組、行列式等

矩陣、方程組、行列式等是常見的公式類,ASCIIMathML.js的表義語法參見文[3]。顯然,這類表義語法的輸入極為不便。可定義如下的簡便、實用的表義語法:

這需要在獲取DOM對象的nodeValue時,攔截公式字符串的處理,將表3的語法首先轉換為ASCIIMathML.js默認語法。為此,在processNodeR函數中增加如下處理代碼:

st= st.replace(/[\[\{\(\|]({.+?})[\|\)\}\]]/g,

function (s,t){var b=s.slice(0,1),e=s.slice(-1),p=b=="{" ? "l":"c";

return "\\left"+ (b=="{" ? "\\{":b)+ "\\begin{array}{"+ p + "}"+

t.replace(/&/g,"\\\\").replace(/;/g,"}&{")+

"\\end{array}\\right"+ (e=="}" ? ".":e);});

實際應用中,還應作功能性的完善。比如,定界符尤其是{}的嵌套問題,矩陣(行列式、方程組)語法串識別性問題等。

4 結語

分析ASCIIMathML.js的數據結構、運行框架結構,在此基礎上實現各種特定目標,可避免重復開發,節約時間成本、開發成本,借他山之石,達實用之功。

【參考文獻】

[1]http://www.dessci.com/en/products/mathplayer/.

[2]http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js.

[3]杜寧.ASCIIMathML網頁公式解析結果分析[J].科技資訊2015(25):2-3.

主站蜘蛛池模板: 欧美日韩国产在线观看一区二区三区| 色网站在线免费观看| 天天色天天综合| 国产免费久久精品99re丫丫一| 国产欧美在线观看一区| 亚洲精品综合一二三区在线| 人妻少妇乱子伦精品无码专区毛片| 国产精品女在线观看| 无码精品福利一区二区三区| 亚洲av成人无码网站在线观看| 欧美a在线视频| 91小视频在线观看免费版高清| 亚洲男人天堂网址| 中文字幕欧美日韩| 免费激情网站| 日本手机在线视频| 国产精品欧美在线观看| 久久亚洲国产最新网站| 亚洲视频色图| 国产欧美日韩精品综合在线| 成人综合网址| 五月激情综合网| 久久久久无码精品国产免费| 91精品国产麻豆国产自产在线 | 久久特级毛片| 国产又大又粗又猛又爽的视频| 91精品啪在线观看国产91九色| 亚洲最黄视频| 亚洲成年网站在线观看| 亚洲精品欧美重口| 毛片网站观看| 亚洲国产成人久久77| 波多野结衣的av一区二区三区| 亚洲福利视频一区二区| 精品少妇人妻av无码久久| 色九九视频| 她的性爱视频| 97青草最新免费精品视频| 精品欧美日韩国产日漫一区不卡| 色欲色欲久久综合网| 久久综合干| 欧美成人影院亚洲综合图| 中美日韩在线网免费毛片视频| 91www在线观看| 国产精品自拍露脸视频| 国产激爽大片高清在线观看| 美女国内精品自产拍在线播放| 最新国产你懂的在线网址| 国产精品毛片一区视频播| 992Tv视频国产精品| 国产精品9| 国产精品自在线天天看片| 在线国产欧美| 国产日韩AV高潮在线| 国产精品.com| 亚洲首页国产精品丝袜| 国产白丝av| 国产在线观看精品| 免费一级成人毛片| 亚洲一区网站| 天堂中文在线资源| 91在线中文| 国产中文在线亚洲精品官网| 好紧好深好大乳无码中文字幕| 伊人欧美在线| 欧美日韩午夜视频在线观看| 26uuu国产精品视频| 在线观看无码av免费不卡网站| 亚洲黄色成人| 无码免费视频| 精品1区2区3区| 无码区日韩专区免费系列 | 极品私人尤物在线精品首页| 久操中文在线| 国产自无码视频在线观看| 青青草原国产av福利网站| 福利视频一区| 欧美国产三级| 久久久久国产一级毛片高清板| 最新日韩AV网址在线观看| 国产美女无遮挡免费视频| 国产欧美精品午夜在线播放|