« 2006年09月20日 | メイン | 2006年09月22日 »
2006年09月21日
Office2007の新しい数式エディタ (5) Office2007数式のXML形式
Office2007数式エディタで作成した数式を保存すると、WordProcessingMLの中の数式は、独自のXML形式で保存されます。この数式XML形式は、Office Open XMLの仕様書に定義されていますが、ここでは仮にOMathと呼びます。
数式をマークアップするための標準言語としては、W3CのMathML2.0がありますが、OMathはMathMLとはまったく別の仕様となっています。
・W3CのMathMLページ
・MathML2.0
Office2007をインストールすると、Office12フォルダの中にomml2mml.xslというスタイルシートがインストールされますが、このスタイルシートでOMathからMathML2.0に変換することができます。
逆にMathML2.0からOMathに変換するには、mm2omml.xslスタイルシートを使用します。
早速、簡単な数式でどの程度の互換性があるか、試してみました。
1.Word2007 ベータ版で作成した数式(PDF):Office2007Math.pdf
2.Word2007の本文XML文書:document.xml
各数式はoMathPara要素の内容となっています。
3.次のようにしてdocment.xmlをomml2mml.xslでMathMLに変換します。
>MSXSL document.xml omml2mml.xsl -o resMathML.xml
これで本文の中の数式だけ(oMathParaの内容のみ)を変換されます。このままでは表示できないので、少し修正してHTMLにしたものをブログにアップしました。数式の内容は変更していません。
4.resMathML.xmlをHTMLにしたもの:Download file この数式はInternet ExplorerとMathPlayer(プラグイン)を使うと表示できます。ご自分で表示できない人のためにIEの画面を下に示します。
これを見ますと、どうも、出来上がっているMathML数式に少しエラーがあるようです。(MathPlayerではMathMLにエラーがあると赤枠で囲って表示します。)
さらに、少し整形してXML化し、XSL FormatterのMathMLオプションでPDFにしてみました。
■Formatterで作成したPDF:Download file
MathPlayerと同じ表示になっています。Office2007の数式を完全に再現はできていませんね。多分、OMathからMathMLに変換するスタイルシートが未完成なのでしょう。