Firefox で STIX フォントを使う方法

概要

 Firefox で MathML 数式を表示するときに STIX フォントを使うためには、 Firefox の設定が必要です。いろいろ試したらうまくいったようなので、設定方法を説明します。

注意

 このページに書かれているのは 2007 年 10 月 31 日から 2008 年 1 月 10 日まで公開されていた STIX フォントのベータ版に関する情報です。現在では STIX フォントのベータ版はダウンロードできないようです。

はじめに

 2007 年 10 月 31 日、フリーの数式フォントである STIX フォントのベータ版が公開されました。 STIX フォントを使うと MathML で書かれた数式を Firefox で表示することができます。まだベータ版なので既知の問題がいろいろありますが、 MathML で遊んでみるには十分すぎる品質です。

 STIX フォントをダウンロード・インストールし、 Firefox を正しく設定すれば、 STIX フォントを使ってくれるようになるのですが、どう設定すればいいのかよくわかりません。とりあえず試したところ、そこそこうまくいっているようなので、設定ファイルを公開します。

設定方法

 このファイルで C:\Program Files\Mozilla Firefox\res\mathml.css を置き換えれば、 STIX フォントを使って MathML 数式を表示してくれるようです。 Windows XP SP2 上の Firefox 2 で確認しています。 Windows でない人や Firefox のインストール先が違う人は適宜読み替えてください。

 僕自身 Firefox の設定についてよくわかっていない部分が多いので、おかしなところがあるかもしれません。

 スラッシュドットの記事「数式用のフリーなフォント STIX Fonts がベータテストを開始」へのコメント #1246038#1246262 の記述が参考になりました。

デモページの表示結果

 この設定で、 mozilla.org にある MathML のデモ表示するとこうなります

 なお、文書中の最初の数式で、一部の変数がアップライト体で表示されていますが、これはフォントや Firefox の問題ではなくデモページのマークアップの間違いによります。パッチ付きで Bugzilla で報告済みです

イタリック体で表示されるべき変数名がアップライト体で表示されている図

詳細

 元の mathml.css からの変更点は次の通りです。

  1. math { ... } ブロックの font-family プロパティーの値を 'STIXGeneral', 'STIXIntegralsDisplay', 'STIXIntegralsSmall', 'STIXIntegralsUpDisplay', 'STIXIntegralsUp', 'STIXIntegralsUpSmall', 'STIXNonUnicode', 'STIXSize1Symbols', 'STIXSize2Symbols', 'STIXSize3Symbols', 'STIXSize4Symbols', 'STIXSize5Symbols', 'STIXVariants', serif に変更。
  2. [-moz-math-font-style="italic"] { ... } ブロックと [fontstyle="italic"] { ... } ブロックと [mathvariant="italic"] { ... } ブロックに font-family: 'STIXGeneral-Italic', 'STIXNonUnicode-Italic', serif; という設定を追加。
  3. [fontweight="bold"] { ... } ブロックと [mathvariant="bold-fraktur"], [mathvariant="bold-script"] { ... } ブロックに font-family: 'STIXGeneral-Bold', 'STIXIntegralsDisplay-Bold', 'STIXIntegralsSmall-Bold', 'STIXIntegralsUpDisplay-Bold', 'STIXIntegralsUp-Bold', 'STIXIntegralsUpSmall-Bold', 'STIXNonUnicode-Bold', 'STIXSize1Symbols-Bold', 'STIXSize2Symbols-Bold', 'STIXSize3Symbols-Bold', 'STIXSize4Symbols-Bold', 'STIXVariants-Bold', serif; という設定を追加。
  4. [mathvariant="bold-italic"] { ... } ブロックに font-family: 'STIXGeneral-BoldItalic', 'STIXNonUnicode-BoldItalic', serif; という設定を追加。

 sans-serif 関連はどう設定するのが良いのかわからなかったので、何も書き換えていません。

 なお、上の手順で 1 しか行わないと、イタリック体が必要な場面でアップライト体を機械的に斜めにしたものが使われてしまいました。デモの中の最初のディスプレイ数式の中の「a」の文字で比較するとわかりやすいです。そういうものなのかバグなのかはよくわかりません。ワードパッド等では STIXGeneral のイタリック体と指定すれば勝手に STIXGeneral-Italic フォントが使われるのですが。

数式中のイタリック体が正しく表示されている図
正しい設定
数式中のイタリック体が合成斜体で表示されている図
不十分な設定
2007 年 11 月 9 日公開、 2008 年 1 月 14 日最終更新。著者: fcp / このサイトについて