マツド・サイエンティスト研究所

基礎知識17 Mozilla - MathML と SVG - the 27th of December 2002


 研究報告16 カーボン・ナノチューブ・フライホイールのページは MathML 使われいる。このため、 Mozilla や Netscape 7.0 等の MathML に対応した Web ブラウザでないと見ることができない。
 特に、研究報告16 カーボン・ナノチューブ・フライホイール(SVG 版)のページは MathML と SVG が駆使されており、SVG に対応した Mozilla でないと見ることができない。
 ここでは、数式を表示する Math タグや MathML タグ、画像による表示方法に付いて説明すると共に、 Mozilla と Netscape 7.0 の紹介とインストールや設定方法、使い方について示す。
(『能書きはどうでも良いから、Mozilla や Netscape 7.0 のインストール方法を知りたい』と言う方は、ここへ)


能書き(御託とも言う)

HTML による情報伝達

 Web ページが、情報の発信源として果たした役割は、今更何も説明の必要など無いだろう。 私の場合、1997 年からホームページを公開しているが、その頃は HTML2.0 から HTML3.0 へ移行すると言う時代であった。 その後、HTML3.2 、HTML4.0 を経て、HTML4.01 と機能が拡張(または整理)され続けている。 また、Internet Explorer や Netscape と言ったブラウザ毎に独自機能拡大された事も多い。
 これらの機能拡張の多くは、主に表示の見た目を良くするだけのもので、情報の伝達方式としての本質的な機能拡張ではなかった。 私は、外見のみ着飾ったようなホームページを否定するから、私のページは HTML2.0 や HTML3.0 当時の機能だけで構成され、未だにフレーム表示すらない。
 そう言った古くからの伝統的なホームページに固執する一方で、新機能に対する普及を望む気持ちもある。 それが、『数式表示』と『ベクトル型の図表示』である。

HTML の『数式表示』と『ベクトル型の図表示』

 ご存知のように、HTML は、基本的には拡張子が html(またはhtm) のテキストファイルが主体になっている。 このテキストファイルに、JPEG や GIF、 PNG と言った形式の画像がリンクされ、Web ブラウザでの表示時に埋め込まれる。 (もちろん、最近では、画像だけではなく音声や動画等と言ったデータもリンクされる場合も多い)
 私の場合、Web ページに情報として載せたいものとして、テキストや画像の他に、数式と模式図がある。 私のホームページを見れば、一般的なページより、数式を多用している事が判るだろう。
 しかし、今まで、ホームページに数式や模式図を載せる効果的な方法は無く、前述したような画像ファイルとして取り込む方法を取ってきた。 このような方法でも一応読み取ることはできる。
 だが、画像の取り込む方法による数式や模式図の表示は、本当の意味での情報の伝達にはならない。 『数式』を画像の貼り付けで表示する方法では、表示文字の大きさを変更するだけで、テキスト文とのアンバランスが起きてしまう。 模式図の画像貼り付けも同様だ。
 しかし、それは本質的な問題ではない。 本当の問題は、情報として数式や模式図を再利用する事ができないことにある。
 PNG 等の画像として埋め込まれた数式や模式図は、簡単には編集できない。 もちろん、ペイント系ソフトを用いて、無理してでも編集する事は不可能ではないが、困難な事には違いない。
 だが、数式や模式図をテキスト形式でコンテンツに入れることができれば、エディタの文字列変換一発で複数の数式・模式図に渡ってキーワードを置換する事ができる。
 数式や模式図を再利用には、再編集だけでなく、更なる可能性があるが、それは後述しよう。

消された Math タグ

 HTML3.0 が制定された時、「 Math タグ」ができた。 数式を、コンテンツの中にテキスト形式で埋め込む事ができる機能だ。 私が待ち望んでいたものだ。
 この時、私は喜んだ。 これから、数式の入ったコンテンツを効果的に公開する事ができると。
 ところが、待てど暮らせど、 Math タグに対応した Web ブラウザがリリースされる事は無かった。 正確には、ごく少数のブラウザが Math タグに対応したのだが、いずれも英語だけの表示で、日本語と Math タグの両方を表示できる Web ブラウザは存在しなかった。
 それどころか、HTML3.2 になった時、 Math タグは、「使ってはいけない機能」になってしまったのだ。
 当時の主流の Web ブラウザは、 Internet Explorer と Netscape で、これらが Math タグに対応する事はなく、拡張は主に表示とスクリプト機能だ。 いよいよ、 HTML は、中身無しの見た目だけの世界を突き進む事になる。

Mozilla 登場

 Mozilla は、オープンソース化された Netscape を元に、大幅に改修された Web ブラウザである。
 余りにもセンセーショナルな Netscape のオープンソース化が話題になったので、記憶に残っている方も多いだろう。 オープンソース化の当初の期待が大きかった反動か、遅々として進まない Mozilla プロジェクトに対して、「オープンソース最大の失敗」と言う攻撃すらあった。
 しかし、2002年6月、遂に Mozilla 1.0 が正式にリリースされた。 もちろん、オープンソースのフリーウェア(この場合、使用料が無料の意味)である。 Mozilla 自体、期待に違わぬもので、十分 Internet Explorer や Netscape の代わりに成り得る潜在能力を持っている。
 だが、私に取って最も重要な事は、Mozilla が MathML タグに対応している事である。

MathML

 MathML は、Math タグに代わり、数式を表示できる機能だ。
 Math タグの場合、 HTML 文書中に無理矢理、数式を押し込める感があり、構造的にも美しくは無かった。 これが Math タグの普遍性に限界を与え、普及の障害になっていた可能性も高い。
 MathML は HTML では無く、 XML の機能として、実現されてた。 従って、構造的にも内容的にも Math タグより遥かに論理的に整理されて居る。 この事は、より再利用の可能性が高い事を意味する。
 当初、MathML は制定されても、Math タグと同じように対応する Web ブラウザが無く普及しない懸念があった。 Math タグや MathML のように内容的には重要な機能でも、実装が困難な割には『見た目』が格段に良くなるわけでは無い機能は、直接的なセールスポイントに成り難いため、営利を目的とした Web ブラウザの開発チームには魅力的では無い場合が多いのだ。
 しかし、Mozilla はオープンソースであり、『見た目』主義・営利目的よりも、本質的な機能向上を目指したのか? 他の Web ブラウザと異なり、Mozilla では開発者(プログラマー)はユーザーでもある。 だから、『売れるための要素』よりも、自分達が本当に欲しい実質的な機能を望んだのか?
 上記は、私の憶測に過ぎない。 だが、現実に、Mozilla は正式リリースの最初から MathML に対応して登場した。 現在に至るまで、(或る意味で)唯一の日本語表示可能な MathML 対応 Web ブラウザなのだ。

SVG

 SVG は、MathML と同様に模式図(ベクトル図)を、XML の機能として、コンテンツに埋め込む機能だ。 Internet Explorer の場合、プラグインを使う事で、SVG を表示する事が可能である。 だが、プラグインの場合、SVG がコンテンツ本文と別ファイルになる問題がある。
 Mozilla では、SVG 機能を Mozilla 本体の中に入れると言うプロジェクトが進行している。 残念ながら、現状では、SVG に対応した Mozilla は、正式リリースされていない。
 Mozilla の SVG 対応がリリースされた暁には、研究報告16 カーボン・ナノチューブ・フライホイール(SVG 版)のように、数式も模式図も全て単一のコンテンツにまとめる事ができるようになる。

数式や図の再利用

 ここまで、何度も「数式や図の再利用」と言う言葉を用いた。 だが、「再利用」とは何だろう? ある程度、具体的に説明しよう。
 再利用と聞いて、まず思い付くのは、文字通り「もう一度利用する」と言う意味だろう。 すなわち、コンテンツを用いて、別のコンテンツの材料にする事だ。
 数式や模式図と言ったコンテンツを別のコンテンツの材料とする場合、どうしても編集が必要になる場合が多い。 例えば、変数 a を x に置き換えると言ったように。 しかし、先にも少しふれたように、PNG と言った形式の画像として埋め込まれた数式や模式図は、簡単には編集できない。 従って、従来では、もう一度入力し直すしか方法は無かった。 だが、入力のし直しは、入力ミスを伴う。 数式の入力ミスは致命的だ。 だからこそ、MathML のような機能は有効なのである。
 人のコンテンツを引用して、自分のコンテンツの材料にする事は、必ずしも悪い事ではない・・・と思う。 人の引用をステップにして更に高い所に行く、科学や数学はそうやって進歩してきたのだから。 もちろん、引用元を明確にするのは必要だ。

 さて、『再利用』の具体的方法の続きだが、ここからはコンピュータならではの活用方法になる。 先の文字通りの「もう一度利用する」は、力ずくなら手入力でも解消できた問題だが、ここからは違う。
 MathML の数式を直接、数式処理プログラムで処理するのだ。
 残念ながら私は所有していないが、Mathematica 等の著名な数式処理プログラムでは、既に MathML 形式の数式の入出力機能があると聞く。 いずれ、フリーの数式処理プログラムにも MathML 形式の数式の入出力機能が付加されるだろう。
 近い将来、Web 上の MathML の数式をカット&ペーストして、数式処理プログラムに入力して、「x で微分したらどうなるだろう? t で積分したらどうなるだろう?」「E に mc2を代入したらどうなるだろう?」と操作できるようになるに違いない。
 また、ちょっと「再利用」と言う言葉からは離れるが、CGI による MathML や SVG の利用も考えられる。 今までは、CGI のようにインタラクティブな使い方で、数式や模式図を返す事は困難であった。 それは、数式も模式図も画像による貼り付けのため、リアルタイムで画像を作る事が難しかったからだ。 多くの場合、予め用意した画像を選ぶのが関の山だった。 無論、Java を駆使したり、サーバーサイドで特殊なプログラムを走らせる事で実現は不可能ではないのだが、難易度が高い事には違いない。
 ところが、 MathML も SVG も基本的にテキストベースのインターフェースなので、 Perl 等で簡単にプログラムできる。 だから、「エネルギーを E として、速度を V 、質量を M とした場合の関係式を教えて?」とか、「さっきの式で、速度をパラメータとして振った時のエネルギーの変化をグラフにして!」とフォームに入力すれば、答えを返すような CGI も作れる(かも知れない)。
 最後の『再利用』の具体例は全文検索だ。
 PNG 等の画像で貼り付けた数式や模式図なら、数式中や図中にある文字列で全文検索する事は不可能だ。 しかし、 MathML や SVG の数式や模式図なら、数式や図中にある文字列をキーワードに全文検索する事は可能である。
 このように『再利用』による活用は飛躍的に向上するのだ。

何故、私が MathML や SVG を用いたコンテンツを公開したか?

 私自身が文書を作成する時に使うフォーマットは、MathML や SVG を使った XML になりつつある。 残念ながら、仕事の関係上、Word 等のフォーマットを強要される場合も多く、全てを XML にする事はできていないが、そう言った制約の無いプライベートな文書作成では、ほとんど XML を使っている。 その理由は、前項までに示したように、MathML や SVG が、高い可能性を秘めている事だ。
 ところが、このように高い可能性を秘めているにも関わらず、MathML や SVG が普及しているとは言い難い状況にある。 最大の難関は、MathML や SVG に対応している Web ブラウザが、事実上、Mozilla しか無く、また Mozilla も広く普及している状態ではないからだ。
 Mozilla がマイナーだから MathML や SVG が使われず、MathML や SVG が使われていないから、Mozilla のメリットが発揮できないと言う悪循環にあるのだ。
 そこで、Mozilla 及び MathML や SVG を普及させるために、それらを駆使したコンテンツを公開する事にした。 少なくとも私のコンテンツ(の一部)を見たければ、Mozilla を使うしか無い。 キラーアプリならぬキラーコンテンツとして、Mozilla の普及に一役買えば、それが MathML や SVG の普及につながると思ったのだ。

頑張れ MathML SVG! 頑張れ Mozilla!

 MathML も SVG も、そして Mozilla も未だマイナーな存在だ。 だが、その可能性は高い。 そう信じている。
 Mozilla は、オープンソース化の当初、多くの懸念が集まった。 正直に白状して私自身、 Netscape と言う大ブランドのオープンソース化は売名行為で、邪心のあるオープンソース化など成功する筈も無い・・ と思ったものだ。
 だが、その懸念は良い方向に晴れた。 確かに Mozilla の開発には時間がかかり、その間、紆余曲折があっただろう。 初期の開発バージョンは我慢できないくらい動作が遅かった。 MathML も使用に耐えるものでは無かった。
しかし、2002年6月、遂に Mozilla は正式にリリースされた。 動作速度も使用に耐える。 機能的には、既に Mozilla は Netscape を超えている。
 だが、それ以上に、Mozilla が最も賞賛に値するのは、最初の正式バージョンから、MathML に対応している事だ。 これにより、MathML 普及にも拍車がかかる。 残念ながら、未だに SVG には正式に対応していないものの、いずれ対応するだろう。
 「営利目的・売れれば良い」で見た目の派手さばかりを追求するより、開発者・プログラマ自らが欲する機能を開発・拡張する、そんなオープンソースの良いところが出るように・・・ Mozilla には期待をしたい。

Netscape 7.0

 と、ここまでは、Mozilla 賛歌であったが、Mozilla を元にして、本家の Netscape 7.0 が登場した。 Mozilla からのフィードバックがかかったため、Netscape 7.0 でも MathMLの表示が可能になった。 少なくとも、Windows 版 Netscape 7.0 を確認した範囲では全く問題無く、数式が表示できたので、ここに併せて報告する。

Mozilla or Netscape 7.0 のインストール

 Mozilla に付いての詳細はmozilla.org 日本語版を参照の事。
 Netscape 7.0 に付いての詳細はNetscape Browser Centralを参照の事。
 私自身が、IBM PC互換機使いなので、動作確認できた Windows と Linux (Vine 2.1.5)について、インストールと設定方法を報告する。
 Mac(OS X) 版 正式リリース版 Mozilla については、西澤 隆さんの ご協力により、Mozilla のインストールとフォントの設定方法が報告できた。
 基本的には、
  1. ブラウザのダウンロードとインストール
  2. 数式フォントのダウンロードとインストール
の二段階が必要になる。
 Netscape 7.0 も、Mac にも対応しており、また、Mozilla は OS 8-9 にも対応しているのだが、私自身が動作確認をしたわけではないので、ここには書いていない。  その他、 Mozilla を日本語訳した和ジラや、軽量・高速化したphoenix等もあるが、この辺は自分で調べて欲しい。

Windows 版 Mozilla or Netscape 7.0

Windows 版 正式リリース版 Mozilla

 mozilla.org 日本語版から、mozilla-win32-1.2.1-installer.exeをダウンロードする。
 インストール方法は、リリースノートに詳しいが、基本的にはダウンロードした上記ファイルを実行するだけでインストールできる。
 その後、Windows へのフォントインストールを参考にフォントをインストールする事を忘れないように・・

Windows 版 Netscape 7.0

 Netscape 7.0 Downloadから、NSSetup.exeをダウンロードする。
 インターネットに接続した状態で、NSSetup.exe を実行すると、ネットワーク経由でインストールされる。
 その後、Windows へのフォントインストールを参考にフォントをインストールする事を忘れないように・・

Windows 版 SVG対応版 Mozilla

 現在、Mozilla は、正式リリース版では SVG をサポートしていない。(MathMLは対応済み)
 従って、 SVG 対応版の Mozilla は非公式ビルト版をダウンロードして使うしか方法が無い。ここでは、 Windows 用の SVG 対応版の Mozilla のダウンロード方法を紹介するが、あくまでも非公式ビルト版なので、くれぐれも自己責任で行って欲しい。
 まず、Mozilla SVG Samplesから、 mozilla-svg-gdiplus-20021128.zip をダウンロードする。
(注: このバージョンの Mozilla の場合、起動する毎に「新しいバージョンをダウンロードせよ」と表示されるのが悲しい。)
適当なディレクトリを作り、その中で上記ファイルを解凍する。Mozilla の起動は mozilla.exe を実行することで行う。 デスクトップ上にショートカットを作っておくと便利だ。
 その後、Windows へのフォントインストールを参考にフォントをインストールする事を忘れないように・・

Windows へのフォントインストール

 フォントがインストールされていない状態で、MathML を使ったページを表示させると「CMSY10,CMEX10,Math1,Math2,Math4 と言うフォントが必要」とのエラーメッセージが出て、数式(特に平方根)に文字化けが発生する場合がある。
 その場合、必要なフォントをインストールする。
 フォントのインストールに付いての詳細は、Fonts for MathML-enabled Mozillaを参考にする。
TeX's CM Fonts :
 Fonts for MathML-enabled Mozilla から、texcm-ttf.zip をダウンロード。
 上記ファイルを解凍。 解凍したファイル中の cmex10.ttf cmmi10.ttf cmr10.ttf cmsy10.ttf を C:\WINDOWS\FONTS に移す。
MathFonts_TrueType Fonts :
 ここから MathFonts_TrueType.exe をダウンロード。
 上記ファイルを実行し解凍。 解凍したファイル中のフォントファイルを C:\WINDOWS\FONTS に移す。

Linux 版 Mozilla

 Vine-Linux 2.6r1 のような最新のディストリビューションでは、最初から Mozilla がインストールされている。 このような場合、Mozilla を使うのに、そんなに問題は無いだろう。
 ここでは、Vine-Linux 2.1.5 のように、Mozilla が入っていない古いディストリビューションの Linux に Mozilla と 数式表示に必要なフォントのインストール方法を紹介する。

Linux 版 正式リリース版 Mozilla

 もじら組を見ると、安定版は、1.0.x の系列のようだ。
そこで、ftp://ftp.jaist.ac.jp/pub/os/linux/Vine/VinePlus/2.1/RPMS/i386 から、 mozilla-1.0.0-9vl10.i386.rpm、mozilla-nspr-1.0.0-9vl10.i386.rpm をダウンロードする。
インストールは以下のように行う。 これで、コンソールが面から と打ち込むだけで、Mozilla が使えるようになる。
(X ウインドウ上にアイコン表示させるには、どうしたら良いんだろう?)

Linux へのフォントインストール

 フォントがインストールされていない状態で、MathML を使ったページを表示させると「CMSY10,CMEX10,Math1,Math2,Math4 と言うフォントが必要」とのエラーメッセージが出て、数式(特に平方根)に文字化けが発生する場合がある。
 その場合、必要なフォントをインストールする。
 フォントのインストールに付いての詳細は、Fonts for MathML-enabled Mozillaを参考にする。
必要なファイルのダウンロード
Mozilla で MathML と SVGから、type1inst-0.6.1.tar.gz をダウンロードする。
Fonts for MathML-enabled Mozillaから、cmps-unix.tar.gz をダウンロードする。
How do I manually download the Mathematica fonts to a PostScript printer? から、MathT1.tar.Z と MathT1_42.tar.gz をダウンロードする。
Where do I get PCF versions of the Mathematica fonts? から、PCF.tar.Z をダウンロードする。
フォント ファイルの準備
 以下のように操作する。
フォントのインストール
 以下のように操作する。 ただし、上記の方法では、再起動のたびにフォントインストールの操作が必要になる。
次のようにすると、再起動のたびの操作は必要無い。
/etc/X11/XF86Config
Section "Files" の所に
FontPath "/usr/X11R6/lib/X11/fonts/local/pfb"
を追加する。
/etc/X11/fs/config
catalogue = のところに
/usr/X11R6/lib/X11/fonts/local/MathT1,
/usr/X11R6/lib/X11/fonts/local/Type1,
/usr/X11R6/lib/X11/fonts/local/PCF
を追加する。

MAC 版 Mozilla

Mac(OS X) 版 正式リリース版 Mozilla

 mozilla.org 日本語版から、mozilla-macosX-1.2.1.smi.binをダウンロードする。
 インストール方法は、リリースノートに詳しい。 基本的にダウンロードしたファイルをダブルクリックすると、StuffIt Expanderが起動し、デコードされた後、仮想ディスクがデスクトップにマウントさる。この中にある Mozilla のフォルダをHDにコピーすればインストールは完了する。
注意:
StuffIt Expanderが起動しなかったら、/Application 以下にある StuffIt Expander を探し、ダウンロードしたファイルをDrag&Dropすれば良い。
デコードした mozilla-macosX-1.2.1.smi が自動的にマウントされなかった場合、 mozilla-macosX-1.2.1.smi をダブルクリックする。
 その後、Mac(OS X) へのフォントインストールを参考にフォントをインストールする事を忘れないように・・

Mac(OS X) へのフォントインストール

 フォントがインストールされていない状態で、MathML を使ったページを表示させると数式(特に平方根)に文字化けが発生する場合がある。
 その場合、必要なフォントをインストールする。
 フォントのインストールに付いての詳細は、Fonts for MathML-enabled Mozillaを参考にする。
TeX's CM Fonts :
フォントについては、今のところTEXのフォントは使えないらしく、Mathematicaフォントを使うことになる。
MathFonts_TrueType Fonts :
 ここから MathFonts_TrueType.sea.hqx をダウンロード。
ここからダウンロードしたファイルをStuffIt Expanderで開いて、引き出したMathFontというファイルを ~/Library/Fonts フォルダに置く。
 一度Mozillaを起動して終了すると、~/Library/Mozilla というフォルダができ、その下に
/Profiles/username/ (なんかよくわからない文字列 ).slt/prefs.js
と言うファイルがあるので、それをテキストエディタで開き、
user_pref("font.mathfont-family", "Math1, Math2, Math4");
の一行を書き加えると設定は終了する。これらはMozillaのページにある通り。
注意:
“~”は、ユーザー毎の「ホームディレクトリ(ホームフォルダ)」の事
prefs.jsはMozillaが起動時に読み込んで終了時に書き換えるファイルであり、Mozilla 起動中は修正しても無意味。

MAC や PDA のお使いの方に・・

 私が使っているコンピュータは、IBM PC互換機であり、その上で動作確認できた Windows と Linux (Vine 2.1.5)については、本コンテンツでインストールと設定方法を報告できた。また、Mac(OS X) 版 正式リリース版 Mozilla については、西澤 隆さんの ご協力により、Mozilla のインストールとフォントの設定方法が報告できた。
 Netscape 7.0 も、Mac にも対応しており、また、Mozilla は OS 8-9 にも対応しているのだが、私自身が動作確認をしたわけではないので、ここには書いていない。
 Mac OS 8-9 で、Mozilla もしくは、Mac OS 8-9 または OS X Netscape 7.0 をインストールし、フォントを設定して、正常に研究報告16 カーボン・ナノチューブ・フライホイールが表示されたら、インストール&設定方法を教えて欲しい。もしよろしければ、本コンテンツに反映したいと思う。
 また、Palm や PocketPC 等の PDA で御覧の方も多いと思う。 残念ながら、これらの PDA 用のブラウザで MathML に対応したものの存在は確認できていない。
 もし、PDA 用のブラウザで MathML や SVG を表示できる等の情報があったら、是非教<えて欲しい。

謝辞

 西澤 隆さんの ご協力により、Mac OS X については、Mozilla のインストールとフォントの設定方法が報告できました。
 この場を借りて、御礼を申し上げます。
 本研究に対する御意見、御感想、御指摘等、ございましたら、メールで送っていただければ大歓迎です。
Copyright (C) 2002 野田篤司