Tatsu still writes something... Fourth season

これからも私はなにかをしてなにかを書く

Windows版Firefoxの文字の見栄えをましにする

 Windowsのフォントレンダリングはこれを書いている2014年では正直言って見劣りする。スマートフォンにも劣ると言わざるを得ない。ビットマップフォントは論外でアウトラインフォント表示でようやく他OSの背中が見えるとしか言いようがない。

 そこで、Webブラウザなどではアウトラインフォント表示が行われるIPAフォントなどを文字表示に使っている人も多いと思う。が、ヤフーなどビットマップフォントを指定されたページではビットマップフォントが表示されて残念な思いをすることがある。

 最近ようやくMozilla Firefoxでビットマップフォント表示を排除することができたのでその設定をメモ代わりに書く。アウトライン表示されるフォントの導入と通常の「フォントと配色」の設定を行っていることを前提とする。

 設定は以下の3つになる。

  1. Anti-Aliasing Tunerを入れる
  2. ユーザースタイルシートを設定する
  3. 一般フォントファミリに対応するフォントを設定する

1.Anti-Aliasing Tunerを入れる

 まず、Windows 7以降で導入されたDirectWriteを設定して文字が必ずアウトライン表示されるようにする。

 ヘルプ(H) - トラブルシューティング情報(T)で「Direct2D 有効」と「DirectWrite 有効」の2つの項目がtrueになっていることを確認してほしい。これらのいずれかが有効でない場合はこの項目を飛ばすこと。

https://addons.mozilla.org/ja/firefox/addon/anti-aliasing-tuner/
 からDirectWriteによる文字表示の設定を行うアドオン、Anti-Aliasing Tunerをインストールする。

アドオンの設定では次の設定を行う。

  • Anti-aliasing Mode:ClearType
  • Rendering Mode:Natural Symmetric

これでビットマップ表示が排され見栄えの良い文字表示になる。

2.ユーザースタイルシートを設定する

 DirectWriteを使うことで多くのフォントがきれいに表示されるが、フォントによっては小さいサイズでの表示が汚かったり、気に入らないフォントが使われたりすることがある。
 そこで、次はユーザースタイルシートを設定して気に入らないフォントを排除する。

 この方法はWindows XPやDirectWriteが使えないマシンでも有効である。

 MacTypeを使わずにFirefoxの文字表示をきれいにする方法(私家版 ITプロフェッショナルの仕事術)
http://raven.air-nifty.com/night/2012/09/mactypefirefox-.html
を参考にきれいに表示されないフォントを別なフォントで表示するよう置き換える。

 小さいサイズで表示したときに字形が崩れるMS 明朝と字間が詰まっていて文章を読むのに適さないMeiryo UIを置き換える場合、ユーザースタイルシートuserContent.cssの内容は以下のようになる。

@charset "UTF-8";

@font-face {
  font-family: "MS P明朝";
  src: local("IPA P明朝"), local("IPAPMincho");
}
@font-face {
  font-family: "MS PMincho";
  src: local("IPA P明朝"), local("IPAPMincho");
}
@font-face {
  font-family: "MS 明朝";
  src: local("IPA 明朝"), local("IPAMincho");
}
@font-face {
  font-family: "MS PMincho";
  src: local("IPA 明朝"), local("IPAMincho");
}
@font-face {
  font-family: "Meiryo UI";
  src: local("MS UI Gothic");
}

Windows XPやDirectWriteが使えないマシンではこれに加えてMS ゴシックの類も置き換えるとよいだろう。

3.一般フォントファミリに対応するフォントを設定する

 Windows XPやDirectWriteが使えないマシンでは通常の「フォントと配色」の設定とユーザースタイルシートの設定でフォントを設定することになるが、これだけではsans-serifなど一般フォントファミリが適用されるページでMS Pゴシック/MS P明朝が表示に使われてしまう。

 これは、一般フォントファミリが指定されたときにMS Pゴシック/MS P明朝が使われる設定があるためなので、一般フォントファミリに対応するフォントを設定する必要がある。

 about:configを表示し、以下の値にアウトライン表示されるフォントを設定する。値の組み合わせは以下である。

  • font.name-list.serif.ja :明朝体
  • font.name-list.sans-serif.ja :ゴシック体
  • font.name-list.monospace.ja :等幅

 これらの値にフォント名を英語のフォント名(IPA Pゴシックの場合はIPAPGothic)のカンマ区切りで書くことで指定したフォントが表示に使われる。

(以下略)は元から入っていた値である。左に書かれたフォントが優先して指定されるのでトラブルが発生した時のことを考えて元の値を残しておくとよいだろう。

font.name-list.serif.ja :IPAPMincho,(以下略)
font.name-list.sans-serif.ja :IPAPGothic,(以下略)
font.name-list.monospace.ja :IPAGothic,(以下略)

 ここでは、日本語のページのみ指定を入れたが他の言語のフォントはたいていアウトライン表示されるので設定は不要だろう。

 これで少なくともFirefoxではビットマップフォントによる表示が行われなくなるのでWindowsマシンでもWeb上の文章を読むのが快適になるだろう。