MathML最先端 2008年春
 
 
1. 数式表示タグMathMLの概要と既存のシステムに関するレビュー
1.1. ウェブ上での数式表示技術
 ウェブ上で数式を表示する方法として,主に3種類挙げられる。
 1つ目にテキストデータで表示する方法である図6 。プログラミング言語に準じた表記方法であり,いくつかの掲示板[1][2]で使用されている。視認性は悪い。
 2つ目にはPDFファイルを用意する方法である。印刷原稿そのままなので視認性はよくても,数式を加工するなどができないため,掲示板などのコミュニケーション手段には使えない。
 3つ目には,数式にGIF画像を用意するものである。マイクロソフト社のWordやジャストシステム社の一太郎などのワープロソフトで数式を使った文書をHTMLで保存するとこのようになる。他にも,mimeTeX[3]というフリーのツールの利用によっても数式表示ができる。mimeTeXはTeX 形式で書かれた数式を解釈し即座にGIF 画像を生成する。数式を埋め込むページのディレクトリ内にmimeTeXのCGIプログラムを設置することで実現する。これは,複雑な数式を簡単に入力することが可能で,視認性も高い。また,サーバ上で動作するプログラムなので,ユーザ環境の違いによる問題はほぼ発生しない。しかし,テキストよりもファイルサイズが大きく,コミュニケーションで発生する大量のデータを管理するのには適しているとはいえない。
 このように,数式をウェブ上で表示するには様々な方法があるが,中でも応用範囲が広いと思われるのはMathMLという数式表示タグである。MathMLはW3Cで定義された規格[4][5]というのにもかかわらず普及する傾向がない。これを用いたサイトはほとんどなく,MathMLを用いたコミュニケーションシステムを導入しているサイトは皆無といえる。それどころか,MathMLの存在自体があまり知られていないのが現状である。
1.2. W3C標準規格
 MathMLはXMLベースで数式を記述するマークアップ言語である。
図1 はMathMLで数式を表示したものと,そのタグである。MathMLのタグは冗長であり,手作業による入力は効率が悪い。
 
図1 MathMLタグと表示される数式
 
1.3. MathML使用のメリット
 MathMLを使用することで,従来のウェブ上での数式表示の問題を解決することができる。テキスト入力の場合は,視認性が悪く,表記方法が異なるなどの問題点があった。画像による表示はファイルサイズが大きくなり,数式の修正が難しく,PDFの場合は解像度が低く,PDFリーダーが必要などの問題があった。そこで,MathMLを使用することで,データ量を抑えつつも視認性が高い数式を表示することができる[6]。また,修正箇所の編集においては,MathML文書の修正は,Word文書の修正比べて2.5倍の速度で作業ができたとの実験結果があり[7],MathML文書のメンテナンス性の優位性を示す結果である。
 
1.4. ブラウザによるタグ互換性
 W3C勧告の標準規格のMathMLを表示するウェブブラウザとしては,Netscape Navigator,Firefox(いわゆるMozilla系)などがある。マイクロソフト社のIE(Internet Exproler)で閲覧する場合,プラグインソフトウェアMathPlayer[8]が必要となる。この場合はウェブブラウザに表示されたMathMLの数式を右クリックしてコピーするとMathMLタグを抽出図2 し,数式の再現を簡単に行うことができて便利である。
 
図2 IE+MathPlayerによる数式表示
 
 
    
図3 数式表示(フォント未インストール)
 
図4 Firefoxでの数式のタグ表示
 
 Firefoxには標準でMathMLを表示する機能があり,IEのようにMathPlayerをインストールが不要である。ただし,初期設定では図3 のように正しく表示されないので,MathMLフォントをインストールが必要である。Firefoxの数式タグは図4 のように,数式上で右クリックすれば,MathMLのソースを表示することができる。
 また,IEとFirefoxではMathMLのタグの文法が若干異なる[9]。IEで表示する場合は<head>タグの中に以下のソースコードを追加することで数式が表示される。
 
<object id="mathplayer"
classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987">
</object><?import namespace="m" implementation="#mathplayer"?>
 
 Firefoxで表示する場合は,XHTML文書中でないと数式が表示されず,MathML以外の部分もすべてXHTMLに準拠した記述をする必要がある。よって,IEとFierfoxの両方で閲覧可能にタグを記述することは難しい。しかし,ASCII MathMLを利用することで,それらを解決することができる。
 
1.5. TeX形式からMathMLタグへの変換 ASCII MathML[10]というJavaScriptのライブラリを利用することで,図5 のようにTeXで入力した数式をブラウザごとに適切なタグを生成することができる[11]。さらに,MathMLのタグで入力した場合,ブラウザ依存による問題を解消することができる。
 ASCII MathMLは,配布サイトからダウンロードし,<head>タグの中に以下のソースコードを追加すると利用可能である。
 
<script type="text/javascript" src="./ASCIIMathML.js"></script>
 
図5 ASCII MathMLを使ったTeXの数式
 
ここで,テキストによる入力例と,TeXによる数式の入力方法を図6 示す。
図6 数式の入力方法
 
ASCII MathMLは表記させる数式の色を変えることができる。プログラム中のmathcolor="Green"の部分の”Green”を変えることで色を指定することができる。今回制作した数式コミュニケーションシステムでは黒にしてある。
TeXのような形式の数式をASCII MathMLを介して表記するには,表記したい数式を“$”で囲む必要がある。
 
1.6. GUIによる数式入力
 数学や物理学の分野など,TeXによる数式入力に慣れている場合は容易な入力が可能である(図6 )が,TeXに不慣れな場合はTeXのタグの入力方法を習得しなくてはならない。そこで,GUIによる数式の入力方法を紹介する。MathML形式で保存できる数式作成ソフトとしては,Sun Microsystems社のOpenOfficeMathを挙げる。OpenOffice[12]はワープロソフト,表計算,プレゼンテーションソフト,データベース管理などの機能を持つオープンソースソフト群であり,その一部として数式作成機能を持つOpenOfficeMathが公開されている。OpenOfficeMathは,GUIベースで数式入力をすることで,MathMLのタグが生成される。編集しながらリアルタイムで結果数式が表示されるという利点があるが,操作には若干の慣れが必要である。
 GUIベースでの数式入力としては,OpenOfficeMath以外にはInftyEditor[13]がある。InftyEditorは図7 のように数式や文字,画像などが混在した文書を容易に作成することができる。手書き数式入力など,高機能なソフトである。シェアウェアであるが30日の試用ができる上に,フリーのアカデミック版もダウンロードできる。
 デザインサイエンス社のMathType[14]で作成した数式はMicrosoft Word上ではMathML形式で保存することができる。
図7 InftyEditorのキャプチャ画面
 
1.7. WebCTにおける数式入力
 CMS(Course Management System)であるブラックボード社のWebCT[15]におけるコミュニケーションツールでは,数式入力が可能である。
図8 WebCTのコミュニケーションツール。タイトルのeqn_4が数式番号である。
図9 WebCTのコミュニケーションツール
 
 このコミュニケーションツール内で専用の数式エディタを起動し(図8 ),数式を入力することができる。入力した数式はメッセージ上ではコードとして表示される(図9 )が,このコードは数式を表現するタグではなく,一時保存した数式のデータの通し番号を表記しているに過ぎない。つまりメッセージの添付ファイルとして数式を表示しているのである。これは,数式の修正箇所が発生した場合に,新たに数式を新規で作成する必要があり,作業効率が悪い。このWebCTの数式入力方法はコミュニケーションに適しているとはいえない。
 よって,コミュニケーションに適した数式を入力し,表示するシステムの構築が求められることになる。
 
 
参考文献
[1]高校数学の自習室
http://lykeion.info/suugaku/
[2]数学ナビゲーター
http://www.crossroad.jp/mathnav
[3]mimeTex
http://www.forkosh.com/mimetex.html
[4]MathMLに関するW3C勧告
http://www.w3.org/Math/
[5]Pavi Sandhu, “The MathML Handbook (Internet Series)”, Charles River Media (2002).
[6](a)中村晃ほか「数式処理システムMathMLを用いた科学教育ウェブページ作製に関する研究」第27回科学教育学会全国大会予稿集(2003)
(b)中村,江見「数式表記タグMathMLを用いたWebPCカンファレンス2004予稿論文集, pp.112-115 (2004)
(c)KIT数学ナビゲーション
http://w3e.kanazawa-it.ac.jp/math/index.html
[7](a)江見圭司「数式表示可能な数学のe-ラーニングシステムの構築と実践」,JSiSE研究会,vol.21,No1, pp.49-52,(2006);(b)江見圭司ほか「数式表示可能なe-ラーニング環境」JSiSE研究会, vol20, No.1,p57 (2005)
[8]MathPlayer
http://www.dessci.com/en/products/mathplayer/
[9]MathML in IE and Mozilla
http://vision.kuee.kyoto-u.ac.jp/
~nob/doc/mathml/mathml.html
[10]ASCII MathML
http://www1.chapman.edu/~jipsen/
asciimath.xml
[11]南野公彦・松村初・山西徹・酒井辰也・江見圭司「ベクトル・行列表示のあるeラーニングの実践JSiSE研究会, vol21, No.6 (2007)
[12]OpenOffice
http://ja.openoffice.org/
[13]InftyEditor
http://www.sciaccess.net/jp/InftyEditor/download.html
[14]MathType 5.0Micorosoft Officeに付属する数式エディタの完全版である。WindowsMathType 5.0MathML出力は可能である。MacOffice 2004ではの数式EditorではMathML5.1英語版を用いてMathML出力に対応できる。
http://www.mathtype.com/jp/
[15]Blackbord社
http://www.blackboard.com/us/index.bbb
====(a)Daisuke TakagoMasakatsu MatsuishiHironobu Goto,Masahiro SakamotoRequirements for a Web2.0 Course Management System of engineering Education』(2007).(b)後藤洋信,坂本雅洋,松石正克,「プロジェクト型学習におけるウェブの利用-学生の視点から観たプロジェクト学習方法の改善-」,JSiSE 第22回学生研究発表会(2008)
====中村晃「プリント教材と携帯電話用ウェブ教材を連携させた基礎数学の教材開発」私立大学情報教育教会 平成19年度大学教育・情報戦略大会(2007)
====PukiWiki Plus
http://pukiwiki.cafelounge.net/plus/
[16]Pavi Sandhu, “The MathML Handbook (Internet Series)”, Charles River Media (2002).
[17]中野情報教育研究室
http://www.nakano.ac/