MathMLを使ってみる。

HTMLの次期バージョン5ではSVGといったベクタデータだけでなく、数式も表現することが出来ます。どれぐらい表現できるのか実際やってみました。

パソコンをやってると、色々ごまかせるマクローリン展開です”笑

f ( x ) = f ( 0 ) + f ( 0 ) x + f ( 0 ) 2 ! x 2 + + f ( n ) ( 0 ) n ! x n + = n = 1 f ( n ) ( 0 ) n ! x n f(x)=f(0)+f'(0) x+{f”(0)}over{2!}x^2+dotsaxis+{f^{(n)}(0)}over{n!}x^n+dotsaxis=sum from n=1 to infinity {{f^{(n)}(0)}over{n!}x^n}

案外ちゃんと表現できるもんですね。ただしこのソースコードがMathMLっていうXMLでして、結構ひどいんです。RSSといっしょで人間様が入力できるものじゃないですね-。

<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mrow>
<mi>f</mi>
<mrow>
<mrow>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo stretchy="false">)</mo>
</mrow>
<mi mathvariant="normal">=</mi>
<mi>f</mi>
</mrow>
<mrow>
<mrow>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo stretchy="false">)</mo>
</mrow>
<mo stretchy="false">+</mo>
<mi>f</mi>
</mrow>
<mi>'</mi>
<mrow>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mi>x</mi>
<mo stretchy="false">+</mo>
<mfrac>
<mrow>
<mi>f</mi>
<mi>'</mi>
<mi>'</mi>
<mrow>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo stretchy="false">)</mo>
</mrow>
</mrow>
<mrow>
<mn>2</mn>
<mi>!</mi>
</mrow>
</mfrac>
</mrow>
<mrow>
<mrow>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mo stretchy="false">+</mo>
<mi mathvariant="normal">⋯</mi>
</mrow>
<mo stretchy="false">+</mo>
<mfrac>
<mrow>
<msup>
<mi>f</mi>
<mrow>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo stretchy="false">)</mo>
</mrow>
</msup>
<mrow>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo stretchy="false">)</mo>
</mrow>
</mrow>
<mrow>
<mi>n</mi>
<mi>!</mi>
</mrow>
</mfrac>
</mrow>
<mrow>
<mrow>
<msup>
<mi>x</mi>
<mi>n</mi>
</msup>
<mo stretchy="false">+</mo>
<mi mathvariant="normal">⋯</mi>
</mrow>
<mi mathvariant="normal">=</mi>
<mrow>
<munderover>
<mi mathvariant="normal">∑</mi>
<mrow>
<mi>n</mi>
<mi mathvariant="normal">=</mi>
<mn>1</mn>
</mrow>
<mi mathvariant="normal">∞</mi>
</munderover>
<mrow>
<mfrac>
<mrow>
<msup>
<mi>f</mi>
<mrow>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo stretchy="false">)</mo>
</mrow>
</msup>
<mrow>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo stretchy="false">)</mo>
</mrow>
</mrow>
<mrow>
<mi>n</mi>
<mi>!</mi>
</mrow>
</mfrac>
<msup>
<mi>x</mi>
<mi>n</mi>
</msup>
</mrow>
</mrow>
</mrow>
</mrow>
<annotation encoding="StarMath 5.0">
f(x)=f(0)+f'(0) x+{f''(0)}over{2!}x^2+dotsaxis+{f^{(n)}(0)}over{n!}x^n+dotsaxis=sum from n=1 to infinity {{f^{(n)}(0)}over{n!}x^n}
</annotation>
</semantics>
</math>

ちなみにWord 2010やらOpenOffice.org 3.2 MathやらではMathMLをはき出すことが出来ます。Wordからは数式オプションで「MathMLをテキストとしてクリップボードにコピーする」を選択した上で、コピー&ペーストをすると、MathMLとして出力先に貼り付けられます。2007以前はアンインストールしちゃったので、どうなのかが分かりませんorz OpenOfficeのほうはMathMLが保存形式の一つで入ってます。でもテキストエディタで開くと文字化けしちゃいます。

それから現状(2010年7月)ではFirefoxでしか見られないみたいです。IEとChromeは無理でした。Firefoxで見る場合はアドレスバーにabout:configと入力し、html5.enableの設定項目をtrueにする必要があります。

※追記。Wordからコピペするといらない情報が入りすぎでブラウザじゃ正しく再現できませんね。流石Word様です”笑

投稿日:
カテゴリー: ICT

作成者: きたけん

神戸出身&在住。大学では環境を学び、今はまちづくりに携わる。思い立ったらすぐに飛び出してしまう。

2件のコメント

  1. おお
    すげぇ
    知らない間に時代が進んでて付いていけない・・・

  2. ドラッグアンドドロップによるファイルの出し入れ、WebGLによる三次元描画などなどが導入されるからHTMLは大きく変わるでしょうな~。しばらくの間は注目しておくと、面白い分野かと。

コメントは受け付けていません。