Webに数学を!きれいに印刷できるHtmlを作ろう

 一年間,問題を作ってきて,自分に可能な限りきれいに印刷できるHtmlを作る工夫をしてきました。 問題の作成にちょっと一段落つけて,そうした工夫について書いておこうと思い立ち, MathmlとHtmlの記述についてのページを作成しました。 以下の記述と重複する部分もありますが,できるだけ細かく述べてみたいと思います。 (2008/12/27)

このサイトのMathMLについて

数式以外にMathMLを使っている箇所

 ご覧いただくとわかりますが,入試問題のページでは,数式以外の箇所にも, 数字や英字などでMathMLを利用しています。これは,数式ででてくる 英字と違う字体の文字になることをさけるためです。 集合や点をあらわす「A」と,「A君」の文字が違っているとちょっと気持ちが悪い と思いました。ですが,かならずしも徹底している訳ではありません。

 それから,丸付き数字は,入試問題,とくにセンター試験では必須の文字ですが, これもMathMLで表現しました。OSによる文字化けをさけるためです。 ただ,<mpadded>タグを使って調整しているため,文字の位置がうまく あっていません。ご了承ください。

 これは,MathMLの話ではないのですが,図も,本当はSVGにする つもりでした。残念ながら,まだ現時点では実現できていませんが,もっと勉強して, できるものならSVGに直していきたいと思っています。

数式でのMathMLの使い方

 MathMLはW3Cの仕様に基づいています。当然,私のサイトのMathMLも それに基づいて作成しました。ただ,よく理解できずに,間違った使い方をしている 場合があると思います。お気づきの方はぜひご連絡ください。

 数式はすべてプレゼンテーション・マークアップのMathMLで表現しています。 MathMLにはもう一つ,コンテンツ・マークアップでの表現があるのですが, こちらはまったく使っていません(勉強してません,すみません)。タグは,できるかぎり W3Cの仕様に沿うように気をつけています。ですから,IEのプラグインである MathPlayerで扱える,「m:」つきのタグにはしていません。 そもそも,MachintoshのIEではプラグインが使えませんし,IEとプラグインとの 組合せでは,将来のバージョンアップなどで,互換性に問題が起きることを 恐れるためです。Firefoxならば,MathMLにネイティブで対応しているため 将来不具合が発生しても,比較的対応が容易だと思います。

 関数や積を表す非表示の実体(&ApplyFunction;と&InvisibleTimes;) は,なくても表示には影響はないのですが,数式検索などで必要になるかと考え,かならず 入れるようにしました。ただし,省略形である&af;と&it;にしてあります。

 <mfrac>タグで表現する分数は,デフォルトでは文字が小さくなるのですが, このサイトではこれにかならず<mstyle displaysytle="true">のタグをつけて,文字サイズを 大きくするようにしています。また,積分記号やシグマ記号は,デフォルトでは 文字サイズが大きくなりすぎると思いましたので,こちらにも< mstyle displaystyle="true" scriptlevel="1">のタグをつけて,少し小さくしてあります。

MathMLを勉強したいと思っている方へ

MathMLを手入力する!

 どこのサイトを見ても,「MathMLは人間が入力するものではない」 「TEXなどから変換してWebで表示するためのものだ」といわれていて, 私も最初はかなり苦労しました。 たしかに複雑なタグになるため,始めのうちは間違いだらけで, ちょっと打ってはFirefoxで確認し,修正する,という作業の繰り返しでした。

 ところが,最近では,完全にテキストベースで入力できるため, 非常に爽快な作業になってきました。もちろんただ文章を打つのと比べれば 時間はかかるのですが,数式入力用のソフトを切り替えて使うやり方と比べると ストレスが少なくすみます。タグについても,普段使うものは限られているので, 慣れてくればマニュアルなしで十分打てます。<mspace />などという, 空白をこまかな指定であけてくれるタグもあるため,文章をすべてMathMLで 打ちたくなるときもあります。

 ぜひ,多くの人にMathMLを覚えてもらい,Webの世界に数式が 広まってくれることを夢見ています。今後,もし余裕があったら,私自身が どうやってMathMLを勉強したかとか,その間に気がついたことなどを 述べていきたいと思います。私自身は,MathMLについては,すべていろいろな方の サイトを見て勉強させてもらいました(残念ながら,今のところ,MathMLについての 日本語で市販されている解説書といったたぐいのものはなさそうです)。 そうした方々には大変感謝しています。教えていただいた方のサイトは リンク集に掲載しましたので,興味を持った方はそちらもぜひご覧ください。

MathMLの参照実体について

 MathMLで使う参照実体ですが,数が非常に多いので,めずらしい文字などは 探すのに手間がかかります。そのために,自分で 参照実体のページ(新しいウインドウ,もしくは新しいタブで開きます)を 作ってみました。W3Cのページから拝借したものなので心苦しいのですが, 少しずつ日本語訳をつけるなどして,使いやすいものにしたいと思っています。 自分の必要で作ったものですが,手を加えていけば,他の方々にも 少しは役に立つものにできるのではないかと思います。

 なお,最近Mozillaのサイトで見てわかったのですが, 補集合や命題の否定ででてくる,式の上につけるバーは,&OverBar;を使いましょう。 参照実体の中にはたくさんの水平バーがあるのですが,どうもこれでないと うまくストレッチ(式にあわせて長さが長くなる)しないようです。 それから,和を表すシグマ記号ですが,これも&Sigma;ではなく, &sum;を使いましょう。 このように,同じものを表す参照実体でも,使う場所によって適切なものがあるようです。 これからも,気がついたらご報告するようにします。

inserted by FC2 system