目次


MathML の紹介

完成間近の MathML 3.0 を先取りする

Comments

MathML の概要

MathML は数式をマークアップするための XML 語彙であり、Presentation MathML と Content MathML という 2 つのサブ言語からなります。Presentation MathML は主として数式のレイアウトを記述するための言語です (したがって、ISO 12083 などの数学を対象とした初期の SGML マークアップ言語や TeX と比較することができます)。一方、Content MathML は主に数式の意味 (少なくとも数式の構造) をマークアップするための言語です。この点において、MathML は数学的な意味をマークアップするための OpenMath 言語 (「参考文献」にリンクを記載) からの影響を強く受けており、MathML 3 では OpenMath との協調が今までよりもかなり明確に打ち出されています。

この 2 つのマークアップ・スタイルの違いは、単純な例で示すことができます。例えば、sin θ の二乗を従来の方法で表記するとしたら、どのような表記になるか考えてみてください。上付き文字の 2 は式の最後に置かれそうなものですが、なんとか sin 演算子の上に置かれ、sin2 θ という表記になります。

Content MathML はこの数式の構造をリスト 1 のようにエンコードします。

リスト 1. MathML によるエンコード
<apply><power/>
  <apply><sin/>
    <ci>&#x03B8;</ci>
  </apply>
  <cn>2</cn>
</apply>

上記では、外側のレベルで二乗関数 (2 番目の引数に数値 2 が設定された power) が適用され、power の最初の引数が sin 関数を適用します。このマークアップを使用して式の意味を明らかにすれば、MathML レンダラーが三角関数インスタンスの組版規則を「把握」できるため、デフォルトの設定に応じてこの式を表示することができます。あるいは、外部スタイル設定メカニズム (Presentation MathML への変換など) を使用することも、状況によっては (sinθ)2 といったデフォルトのレンダリングを使用することも可能です。

一方 Presentation MathML の場合は、識別子 sin とその上付き文字 2 を複合演算子として識別子 θ に適用するというレイアウト・スキームを直接エンコードします (リスト 2 を参照)。

リスト 2. Presentation MathML を使用したレイアウト・スキームのエンコード
<mrow>
  <msup><mi>sin</mi><mn>2</mn></msup>
  <mo>&#2061;</mo>
  <mi>&#x03B8;</mi>
</mrow>

ただし、Presentation MathML でも同じく数学的意味の側面をエンコードすることに注意してください。リスト 2 で特に重要なのは、関数の適用演算子 U+2061です。これは表示されない演算子ですが、隣接する項に可視の演算子がない場合にその内容を区別するには (例えば関数の適用 f(x) を積 3(x) と区別するなど)、この演算子を U+2062 (非表示の乗算) といった他の非表示の演算子と併せて使用することが非常に重要となります。これらの演算子を正しく使うことで、Presentation MathML を機械的に構文解析する際に役立つだけでなく、文書のアクセシビリティーも向上します。このような意味に関するヒントによって、音声やその他の非視覚的レンダリングが大幅に改善される可能性があるからです。

Presentation MathML と Content MathML はそれぞれに切り離された言語ではありません。この 2 つの言語は一緒に使用することができます。どの MathML レンダラーにしても、Content MathML のすべての式に対応するデフォルトの表示があり、Presentation MathML のなかで Content MathML の要素を自由に使うことができます。Content MathML のトークン要素 ci (リスト 1 のθ) の内容にはプレーン・テキスト (大抵は 1 文字) だけを使用するのが一般的ですが、実際には Presentation MathML の任意の式を使用して複合識別子を組み立てることもできます。

2003年に MathML バージョン 2 の第 2 版が公開された後、W3C の Math ワーキング・グループは以降の仕様変更を意図的に控え、MathML 実装の安定期間を設けることにしました。しかし MathML を強化できそうな特定の領域が見つかったため、MathML 3.0 のドラフト仕様が作成される結果となりました。MathML 3 の基本的な構造は MathML 2 と同じなので、自動改行 (既存のユーザーに影響する主要な新機能) を除けば、多くのユーザーは新しく追加された機能に気付かないかもしれません。けれども MathML 3 は、MathML 2 では十分でなかった特定のコミュニティーのサポート機能が追加されています。これには、アラビア文字に重点を置いた右から左へと記述する言語のサポートが含まれます。また、初等算数のレイアウトに対する明示的なサポートも追加されているため、教育者が例題をマークアップするのに役立つだけでなく、アクセシブルな非視覚的バージョンの式を作成するのにも大いに役立ちます。

次のセクションでは、MathML 3 の主要な新機能について詳しく説明します。

MathML 3 の新機能

MathML 3 には、MathML 2 を拡充する以下の新機能が導入されています。

リンク付け

MathML バージョン 1 と 2 にはリンクを指定するための組み込みメカニズムはなく、代わりに XLink 構文 (「参考文献」にリンクを記載) の使用が推奨されていました。これはひとつには、MathML が開発された時期によるもので、MathML の初期設計はすべて XML 標準の最終バージョンが策定されるよりも前に行われたからです。XLink は XML のために当初立てられた「大計画」の一部であり、XML 構文と併せ、リンク付けには XLink を、スタイル設定には XSL を使用するという計画でした。けれども XLink はコア技術として汎用されるには至らず、広範にサポートされてもいません。そこで MathML 3 では、基本的にすべての MathML 要素が URI を値に持つ href 属性を取ることによってハイパーリンクを指定できるようになっています。これは、HTML で a 要素の href 属性を使ってハイパーリンクを指定する方法と同じです。

方向性

MathML 2 にはレイアウトの方向性を制御するための明示的サポートが一切なく、以前は注意書きのなかで、さまざまなアラビア言語のコミュニティーで使用されているレイアウト・フォームをレンダリングするための拡張機能が説明されていました (「参考文献」にリンクを記載)。使用しているスタイルによっては、式のなかで使用する識別子の記述方向を制御し、それとはまた別に、式自体のレイアウトの方向を制御しなければなりません。基本的にそのために追加されているのが、dir 属性 (HTML での同じ名前の属性と似た属性) と、方向性と Presentation MathML のレイアウト規則との相互作用についての詳細な規則です。ラテン・アルファベットには太字または黒板太字 (double-struck) が使用されますが、それと同じような方法で使用する意味的に異なる記号の追加アルファベットとして、Unicode 用に追加するフォント・スタイルが提案されました。斜体やサンセリフ体などのフォント・スタイルはアラビア文字に適用されるわけではないため、initialtailedlooped、および stretched という数学用のフォント・スタイルがアラビア言語に関する注意書きのなかで提案され、MathML 3 で標準化されています。

改行

MathML 2 では数式の改行はほとんどサポートされていませんでした。インライン数式のなかで許容される改行を指定するためのサポートはあったものの、数式を複数の行で表示させるには、式を手動で分割し、分割したそれぞれの部分を個々の行として表に入力するしかありませんでした。数式組版システムである TeX の機能も同じようなものですが、従来の数式組版では式が既知のページ・サイズに分割されるため、作成者が手作業で式を分割するとしてもそれほど厄介な作業ではありません。一方、MathML は Web のコンテキストを対象に設計されています。Web の場合、式が表示されるウィンドウのサイズは不明であり、動的にサイズが変更される可能性もあります。そのため、自動改行システムの存在が遥かに重要になってきます。このことから、MathML 3 は改行モデルを指定し、改行のプロパティーおよび行の整列方法を制御するための新しい属性をいくつか導入しています。

画像の組み込み

MathML バージョン 1 と 2 での glyph 要素の目的は、Unicode コード・ポイントに対応しない非標準フォントから特殊記号にアクセスすることです。しかし Web のコンテキストで glyph 要素をこのような目的で使うのは決して簡単なことではありませんでした。フォントが使用可能であることを確実にしなければならないためです。MathML 3 ではこの要素の使用が非推奨となり、代わりに mglyphsrc 属性によって拡張され、HTML の img 要素と同じような汎用の画像参照要素となっています。

初等算数のレイアウト

MathML 3 でおそらく最も重要な追加内容の 1 つとして挙げられるのは、初等算数をレイアウトするための新機能一式です。これらの新機能は表形式のレイアウトで、長乗法と長除法に使用されます。このような筆算による計算には、さまざまな国で驚くほど多様な表記が使用されていますが、そのほとんどは桁数に基づく基本的な表形式のレイアウトに共通する特徴を共有し、横と縦の線、さまざまな形の取り消し線、そして繰り下げ繰り上げ用に他よりも小さなフォント・サイズで挿入された数字などで修飾されます。これらの効果の多くは MathML 2 でも実現できますが、表と位置決めを明示的に何度も使用しなければなりません。そのためマークアップが使用しにくいばかりか、計算の基本的なフォームが表マークアップによって曖昧になってしまうため、理にかなった非視覚的レンダリングの生成が極めて困難です。例えば、MathML 2 では長除法がリスト 3 のように処理されていました。

リスト 3. MathML 2 での長除法
   435.3
 ______
3)1306
  12
  __
   10
    9
   __
    16
    15
    __
     1.0
       9
       _
       1

リスト 4 に MathML 3 でのマークアップを示します。

リスト 4. MathML 3 での長除法
<mlongdiv longdivstyle="lefttop">
  <mn> 3 </mn>
  <mn> 435.3</mn>

  <mn> 1306</mn>

  <msgroup position="2" shift="-1">
    <msgroup>
      <mn> 12</mn>
      <msline length="2"/>
    </msgroup>
    <msgroup>
      <mn> 10</mn>
      <mn> 9</mn>
      <msline length="2"/>
    </msgroup>
    <msgroup>
      <mn> 16</mn>
      <mn> 15</mn>
      <msline length="2"/>
      <mn> 1.0</mn> 
    </msgroup>
    <msgroup position='-1'>
       <mn> 9</mn>
      <msline length="3"/>
      <mn> 1</mn>
    </msgroup>
  </msgroup>
</mlongdiv>

特に注目すべき点は、数値は単一のトークンとして入力され、表のセルごとに 1 桁の数字として明示的に分割されてはいないことです。上記の例では、音声または点字エンジンが長除法 (mlongdiv 要素) の情報によって最初の 3 行が除算の対象となる数値 (オペランド) および結果であり、残りの行が中間結果のレイアウトの一部であることを把握できるため、アクセシビリティーが大幅に改善されます。

OpenMath との協調

Content MathML を定義する第 4 章 (MathML W3C 文書) は完全に書き直されました。Content MathML には、例えばリスト 1<power/><sin/> のような一連の空の要素があります。これらの要素は、大学教育前の数学で目にする数式のほとんどを網羅するように選ばれたものです。その一方、事前定義された要素を使わずに数学記号を参照するには、<csymbol> 要素を使用することができます (例えば、<csymbol>myfun</csymbol>)。さらにオプションで、definitionURL 属性を使用して関数定義の URI を指定することも可能です。関数は単なる自然言語のテキストで定義できることから、以前は関数の定義に対する事前定義されたフォーマットはありませんでした。

MathML よりも古い OpenMath (「参考文献」を参照) は、数式処理システムに端を発するフォーマットです。OpenMath は数学オブジェクトのモデルと、そのモデルのさまざまなエンコードを定義します。そのうち最も重要なエンコードは、XML エンコードです。OpenMath と Content MathML との主な違いは、OpenMath には Presentation MathML に類似するものがなく、純粋に数式の構造をエンコードすることを目的としている点です。また Content MathML とは異なり、コア OpenMath 言語は基本構造のみを定義するため、共通の数学演算子に事前定義された要素はありません。したがって、使用する記号はすべて外部で定義する必要があります。OpenMath 標準では外部で記号を定義する Content Dictionary という XML 文書フォーマットを定義しています。Content Dictionary では、記号の意味は最終的に自然言語で記述され、この Content Dictionary を参照することで記号の意味が得られるようになります。例えば sin の定義は、OpenMath の Web サイト (「参考文献」にリンクを記載) から配布されている超越関数に関連する Content Dictionary を参照することによって得ることができます。

MathML 3 では OpenMath Content Dictionary を明示的に参照するための属性を csymbol に追加するとともに、さらにいくつかの構造要素を補って OpenMath との協調を深めています。OpenMath は関数適用 (<OMA>) とバインディング式 (<OMBIND>) とを区別しますが、MathML は従来から関数適用とバインディング式の両方に <apply> 要素を使用し、その意味はコンテキストに決定させていました。しかし現在は、新しい <bind> 要素を使ってコンテキストのバインディングを明示的にマークアップすることができるようになっています。同様に、OpenMath は数値の他に文字列もプリミティブ・データ型として識別するため、MathML 3 では数値の <cn> と識別子の <ci> (どちらも変数) に加え、文字列リテラルの <cs> 要素が新たに追加されました。

定義されている MathML 言語を変更するわけではないものの、MathML で Content MathML を定義する方法に対してなされた大きな変更は、Content MathML でこれまで空だったすべての要素の意味が、Strict Content MathML というフォームへの一連の明示的な書き換え規則によって定義されるようになったことです。csymbol のみを使用するこのフォームは、基本的に要素の名前を変更するだけで (式の構造は維持します)、簡単に OpenMath にマッピングすることができます。したがって、最初のセクションに記載した Content MathML の式は、リスト 5 に記載するフォームに書き換えることができます。

リスト 5. 書き換え後の Content MathML の式
<apply><csymbol cd="arith1">power</csymbol>
  <apply><csymbol cd="transc1">sin</csymbol><ci>&#x03B8;</ci></apply>
  <cn type="integer">2</cn>
</apply>

もう 1 つの変更は、MathML の前のバージョンでは画像としてしか提供されなかった Content MathML のサンプル・レンダリングが、このバージョンでは Presentation MathML および画像の両方として提供されるようになったことです。この変更をきっかけに、より多くのシステムが既存の Presentation MathML レンダリング・サポートに内部でマッピングするという方法で、Content MathML レンダリングを実装するようになるかもしれません。

数式表現形式の変換には以下のものがあります。

  • 汎用的な Content MathML から Strict Content MathML への変換
  • Content MathML からPresentation MathML への変換
  • Presentation MathML から TeX への変換 (サンプル画像を組版する場合)

上記の変換はすべて XSLT 2 で実装されているため、W3C ソフトウェア・ライセンスの下で自由に使用できるようになるはずです。現時点での変換は完成版とは言えませんが、基本的に文書化されていない初期のバージョンは OpenMath ソース・リポジトリー (「参考文献」にリンクを記載) から入手することができます。私は勧告候補の「実装要求」活動の一環として、できれば今年中に W3C Math/XSL の分野を一層堅牢な変換バージョンで更新したいと思っています (「参考文献」を参照)。

クリップボードとメディア (MIME) タイプ

既存の多くの MathML システムでは、オペレーティング・システムのクリップボードを使用して MathML の式をカット・アンド・ペーストすることができます。ただし残念ながら、システムによってその方法は千差万別です。具体的には、MathML にクリップボードでテキストのラベルが付けられるだけなのか、あるいは MathML 固有のクリップボード・フレーバーが与えられるのか、そしてその場合にはどのラベルが付けられるのかという点で異なります。そこで MathML 3 では、推奨されるクリップボードの振る舞いを初めて詳細に規定しました。また、MIME タイプが重要である Web サービスやその他のシステムを介して XML フラグメントを渡す場合についても、使用するメディア (MIME) タイプを規定しています。このクリップボード仕様の初期のバージョンはすでに Microsoft® Internet Explorer® 対応の MathPlayer MathML レンダラー、そして Microsoft Word 2007 に実装されているので、Internet Explorer から数式のフラグメントをカットして Word にペーストできるようになっています。MathML3 のクリップボード仕様が大多数の MathML システムで実装され、システム間での式の移動が容易にできるようになることを期待します。

ブラウザーでの MathML の使用

MathML がその最初の設計段階から第一の目的としていたのは、Web ページで数式を画像や内容が不明瞭なプラグインとして埋め込むのではなく、テキストとして使用できるようにして、検索やテキストのサイズ変更などの操作を可能にすることです。現在のところ、一般ユーザーに HTML ではなく XHTML を提供するのは予想以上に困難であるという状況が続いています。XHTML は HTML を XML 語彙として定義し直したマークアップ言語です。当初は厳格な XML 構文解析規則に従う XHTML が Web に好ましいマークアップ言語として徐々に HTML に置き換わっていくだろうと見込まれていました。ところがブラウザー・メーカーや Web ユーザーたちは XHTML への切り替えに難色を示しています。主要なブラウザーである Internet Explorer でさえも、未だに XHTML のネイティブ・サポートはしていません。

(MathML 2 の) Presentation MathML には広範な構成要素があるため、同じ文書に XHTML と MathML を混在させることができます。そのような文書を特定のブラウザーに依存せずにサポートする方法として最も簡単なのは、以下の単純な規則に従うことです。

  1. 文書を整形式 XML として提供すること。HTML 要素は xhtml 名前空間 (http://www.w3.org/1999/xhtml) に置き、MathML 要素は MathML 名前空間(http://www.w3.org/1998/Math/MathML) に置きます。
  2. MIME タイプには application/xhtml+xml を使用すること。
  3. MathML 名前空間が確実に文書の先頭付近で宣言されるようにすること。最も簡単な方法は、html 要素で名前空間 xmlns:m="http://www.w3.org/1998/Math/MathML" を宣言することです。

Firefox (全バージョン) は XHTML と MathML が混在する文書をネイティブにレンダリングするものの、事前に適切な数学用フォント (「参考文献」にリンクを記載) をインストールしておく必要があります。

Internet Explorer (バージョン 6.0 以降) の場合、Design Science の無料の MathPlayer コンポーネントをインストールすれば (「参考文献」にリンクを記載)、XHTML と MathML が混在する文書をレンダリングできるようになります。(注: このように MathPlayer を使用して Internet Explorer に application/xhtml+xml 文書をレンダリングさせるという方法は、文書に数式が含まれていないとしても役に立つので、もっと広く知られるようになるべきです。)

Opera や Safari、そして明示的な MathML サポートを備えていない他のブラウザーでも、適切な CSS スタイルシートを使用することによって、XHTML と MathML が混在する文書をレンダリングできるようになります。CSS を使用した MathML のレンダリングについては、MathML for CSS という別の仕様に分けられています (「参考文献」にリンクを記載)。

特定のブラウザーに依存しないサポートを実現するために上記の方法よりも前から使用されていて、効果の上でもやや優れた方法は、Math/XSL の分野で説明されているクライアント・サイドの XSLT スタイルシートを使用するというものです。あるいはそれよりも多少更新されたバージョンとして、NAG マニュアルで使用しているように、最新のブラウザー機能を検出するという方法もあります (「参考文献」にリンクを記載)。ブラウザーの最近のリリースでは XSLT の使用に関してセキュリティー制限 (「参考文献」にリンクを記載) を設けることが多くなっていることもあり、XSLT の使用をセットアップするという方法は上記の方法よりも難易度が高くなります。けれども XSLT の使用をセットアップする方法では、どのブラウザーが使用されているかを XSLT が検出し、ブラウザーに応じて適切に文書を変換できるため、最も能力の低いブラウザーの機能に制限されることがないという利点があります。

3 番目の方法として、クライアント・サイドの XSLT を使用する代わりに、サーバーでユーザー・エージェントを検出し、そのユーザー・エージェントの機能に応じて異なる内容を提供するという方法もあります。この方法の詳細は使用されているサーバー環境に依存するため、この記事では説明しません。

XHTML が HTML に完全に置き換わる可能性は薄いという認識のなか、最近になって HTML 仕様の更新版である HTML 5 (「参考文献」にリンクを記載) の標準化に向けた取り組みが始まりました。HTML 5 の仕様は完成までには程遠い状態ですが、現在のドラフトでは、標準の text/html MIME タイプで提供された HTML 文書内で直接 MathML を使用できるように規定しています。したがって、近い将来は MIME タイプやサーバー構成を懸念することなく、MathML を Web に直接配置できるようになるかもしれません。

一方、HTML 5 の標準化を待たなくても、MathML を使用した文書に対応するのは至って簡単です。MathML 文書は、Firefox および Internet Explorer の極めて高品質のレンダリングと連動します。また、Opera や Safari、そして適切な CSS サポートを備えた他のブラウザーでも判読可能です。例えば Firefox ブラウザーの場合、MathML 文書は図 1 のようにレンダリングされます。

図 1. Firefox ブラウザーでレンダリングされた MathML 文書
Firefox ブラウザーでレンダリングされた MathML 文書のスクリーン・キャプチャー
Firefox ブラウザーでレンダリングされた MathML 文書のスクリーン・キャプチャー

図 2 に、同じ文書を Internet Explorer でレンダリングした場合を示します。

図 2. Internet Explorer でレンダリングされた MathML 文書
Internet Explorer でレンダリングされた MathML 文書のスクリーン・キャプチャー
Internet Explorer でレンダリングされた MathML 文書のスクリーン・キャプチャー

出版における MathML の使用

MathML は数式のマークアップ言語として一般に好まれるようになってきています。作成者の提出した数式で他のフォーマット (Word、TeX など) が使用されているとしても、以降の処理に備え、MathML に変換されてから保管されることは珍しくありません。すべての処理が公開されているわけではありませんが、「Web 以外」での使用方法は、XSL-FO システムでの MathML サポートを調べてみると大体の感じが掴めるはずです (例えば、Design Science で公開している科学技術出版での MathML に関する記事や Antenna House など (「参考文献」にリンクを記載) を参照してください)。

オフィス・ソフトウェアでの MathML の使用

Open Office および Microsoft Office をはじめ、最近のオフィス用編集ソフトウェアでは以前からの純粋なバイナリー・フォーマットではなく、XML をデフォルトのファイル・フォーマットとした Zip コンテナーの使用を標準化しているようです。ここに MathML の活躍の場があることは明らかです。MathML は、Zip コンテナー内のネイティブ・ファイル・フォーマットとしての役割も、あるいは異なるシステム間の相互運用性の層としての役割も果たします。

現在、Microsoft Office は内部では MathML を使用しませんが (数学用の独自の XML フォーマットがあるためです)、クリップボードでは、コピーされた式の貼り付けと Word からの式の切り取り操作の両方に MathML を使用します (この機能はリボン・メニューのチェック・ボックスで有効にしなければなりませんが、Word 2007 の標準機能です)。Open Office (および、ODF 文書フォーマットを使用するその他のシステム) はそれとは対照的に、現在クリップボードでは MathML を使用しませんが、そのネイティブ・ファイル・システムのなかで MathML を使用します。MathML 3 で詳細に規定しているクリップボードの振る舞いに関する仕様が実装者の後押しとなって、切り取り、貼り付けを相互運用できる形で MathML が実装されるようになることが期待されます。

クリップボードのサポートは、1 回限りの編集およびデモには役立ちますが、文書全体を処理する必要がある場合にはそれほど役に立ちません。その一方、OOXML ベースのシステムと ODF ベースのシステムではいずれも zip 形式の XML フォーマットを使用するということは、どちらのシステムでもデータを直接操作して再利用可能な MathML の式を抽出できるということです。その一例として、私のブログに Word と OpenOffice から XHTML+MathML 文書を取得する方法についてのエントリーがあるので読んでください (「参考文献」にリンクを記載)。

Word に組み込まれた MathML サポートは新しい Office 2007 バージョン向けですが、それよりも古い (および現在の) システムのユーザーの多くが Word 内で使用している MathType という数式エディターにも、MathML サポートが組み込まれています。

MathML への変換と MathML からの変換

XML 語彙である MathML は、W3C が定義する汎用 XML 変換言語の XSLT をはじめ、標準 XML ツールを使用した変換に極めて適しています。OpenMath、OMML (Word の 数学用 XML フォーマット) との間の変換、そして TeX への変換については、この記事ですでに説明しました。変換作業における 1 つの主要な領域は、Donald Knuth が開発した数式組版システムである TeX から MathML への変換を構成することです。この場合、TeX 文書での極端な変動性に対処して既存のレガシー文書を XHTML+MathML に変換しようとするシステムと、MathML に対応した便利で簡潔なフォーム作成構文を規定することを重点として TeX 風の構文を提供するシステムとを区別する必要があります。

前者のシステムとして有名なのは、Eitan Gurari が開発した最近の tex4ht と Bruce Mille の LateXML です (「参考文献」にリンクを記載)。

MathML に対応した TeX 風の構文を提供するシステムには、Jacques Distler の itex2MML、そして Peter Jipsen の ASCIIMathML と Douglas Woodall による LaTeXMathML バージョンがあります (「参考文献」にリンクを記載)。

多くの特殊な数学システムが、MathML への変換を組み込むことになるはずです。例えば、数式処理システムである Mathematica および Maple は、MathML のインポートとエクスポートの両方が可能で、XML フォームとシステム独自の内部データ構造との間での変換を行います。

まとめ

この記事を読んで、MathML の全容、そしてこのマークアップ言語を構成する Presentation MathML と Content MathML について完全に理解していただけたとともに、MathML 3.0 が近々 XML の数式マークアップにもたらす利点のすべても納得していただけたことと思います。


ダウンロード可能なリソース


関連トピック

  • XML Entity Definitions for Characters (W3C ワーキング・ドラフト、2009年10月22日): この仕様には、Unicode 文字にセットで割り当てられた名前が記載されています。
  • HTML 5: A vocabulary and associated APIs for HTML and XHTML (W3C ワーキング・ドラフト、2009年8月25日): Web アプリケーションに重点を置いた HTML と XHTML の語彙とその関連 API について詳しく学んでください。
  • Arabic mathematical notation (W3C Interest Group Note、2006年1月31日): アラビア諸言語での習慣的表記による数式を MathML で表現する方法を調べてください。
  • XHTML[tm] 1.0: The Extensible HyperText Markup Language (W3C 勧告、2000年1月26日): HTML 4 を XML 1.0 アプリケーションとして再定義した XHTML 1.0 について、そして HTML 4 で定義された DTD に対応する 3 つの DTD について説明しています。
  • Mathematical Markup Language (MathML) 1.0 Specification (W3C 勧告、1998年4月7日): 数式表記を記述し、数式の構造と内容の両方を捕捉する XML アプリケーションについて調べてください。
  • Mathematical Markup Language (MathML) Version 2.0 (Second Edition) (W3C 勧告、2003年10月21日): Web 上で数式を提供、受信、処理する方法について詳しく学んでください。
  • Mathematical Markup Language (MathML) Version 3.0 (W3C ワーキング・ドラフト、2009年9月24日): MathML の最近の開発状況を調べてください。
  • A MathML for CSS profile (W3C ワーキング・ドラフト、2009年10月6日): カスケーディング・スタイルシートによるフォーマット設定を認める MathML 3.0 の側面について読んでください。
  • Word および OpenOffice からの XHTML+MathML 文書の抽出: 著者のこのブログ・エントリーでは、XHTML+MathML 文書を抽出する方法について取り上げています。
  • David Carlisle: MathML および関連する問題に関する著者のブログにアクセスしてください。
  • Just what is TeX?: TeX ユーザー・グループにアクセスして、組版用に設計されたコンピューター言語について学んでください。
  • The OpenMath Standard Version 2.0 (2004年6月): 数式オブジェクトの表現および伝達方法についての標準、OpenMath について読んでください。
  • OpenMath Society: OpenMath Content Dictionary (超越関数 1) で定義された sin 関数を表現する記号について学んでください。
  • Antenna House、または Design Science で公開している科学技術出版における MathML に関する記事: XSL-FO システムでの MathML サポートについて学んでください。
  • XML Linking Language (XLink) Version 1.0 (W3C 勧告、2001年1月27日): XML 文書に要素を挿入してリソース間のリンクを作成、記述する方法を学んでください。
  • Math/XSL 分野: 特定のブラウザーに依存しないサポートを実現する強力な方法は、クライアント・サイドの XSLT スタイルシートを使用することです。あるいはそれよりも多少新しいバージョンとして、NAG マニュアルで使用しているように、最近のブラウザー機能を検出するという方法もあります。
  • ブラウザーのセキュリティー制限: ブラウザーの最近のリリースでは制限を追加していることもあり、XSLT の使用がセットアップしにくくなってきている事情を読んでくさい。
  • XML ゾーン: 広範な技術に関する記事とヒント、チュートリアル、そして標準については、developerWorks XML ゾーンを参照してください。
  • IBM XML 認定: XML や関連技術の IBM 認定技術者になる方法について調べてください。
  • developerWorks podcasts: ソフトウェア開発者向けの興味深いインタビューとディスカッションを聞いてください。
  • MathML 対応 Mozilla 用フォント: Firefox に適切なフォントをインストールして、MathML 文書をネイティブにレンダリングしてください。
  • MathPlayer: Internet Explorer で MathML 文書をレンダリングするには、この無料のコンポーネントを Design Scienceからダウンロードしてインストールしてください (この MathPlayer は Internet Explorer 用であることに注意)。
  • OpenMath および Putting mathematics on the Web with MathML (W3C): 汎用 Content MathML から Strict Content MathMLへの変換、Content MathML から Presentation MathML への変換、および Presentation MathML から TeX への変換 (サンプル・イメージの組版用) の初期バージョンはすべて XSLT 2 で実装されています。
  • Eitan Gurari の tex4ht および Bruce Miller の LateXML: 数式の構成要素を Content MathML と Presentation MathML に変換するこの 2 つのツールについて調べてください。
  • Jacques Distler の itex2MML、Peter Jipsen の ASCIIMathML、および Douglas Woodall の LaTeXMathML バージョン: MathML 用に TeX 風の構文を提供するシステムを試してみてください。
  • IBM 製品の評価版: DB2®、Lotus®、Rational®、Tivoli®、および WebSphere® のアプリケーション開発ツールとミドルウェア製品を体験するには、評価版をダウンロードするか、IBM SOA Sandbox のオンライン試用版を試してみてください。

コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=XML
ArticleID=464041
ArticleTitle=MathML の紹介
publish-date=12152009