試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

バージョン1.0.7以上のIPAモナーフォントとWine上のアンチエイリアシングについて

(2014/10/13)Wineのバージョン1.5.18以上でアンチエイリアシングの扱いが変わっている。詳しくはまとめドキュメント(モバイル版ページ)を参照。
以下、以前の内容となる。

IPAモナーフォントのバージョン1.0.5では「Wineのバージョンによりフォントのアンチエイリアシングが一部無効になる件と、フォント編集による対処方法について」の追記の作業(gdi32.dll.soの修正)もしくは「FontForgeでTrueTypeフォントの埋め込みビットマップ(EBDT)を取り除く手順」のようなビットマップ抜きで問題なかったのだが、2008/6/25現在の最新版である1.0.8ではそのままではアンチエイリアシングされないことが分かった。
原因はバージョン1.0.7からアンチエイリアシングに関するフォント情報が一部変更されたため(id:HoneSONGさんに感謝)で、Wineではこの変更によって、埋め込みビットマップの有無に関わらずアンチエイリアシングが無効にされてしまう。

  1. アンチエイリアシングに関するフォント情報について
  2. gdi32.dll.soを修正した場合はオリジナルのフォントを上書きすると楽
  3. 関連: バージョン1.0.7以上のIPAモナーフォントではレイアウトが悪くなる?
  4. バージョン1.0.5のIPAモナーフォントを入手するには

アンチエイリアシングに関するフォント情報について

FontForgeでバージョン1.0.5と1.0.8のIPAモナーフォントを両方開き、フォント情報ダイアログ(Ctrl+Shift+F)を開き、左の「Grid Fitting」を選択すると、ここの情報が1.0.5と1.0.8とで違っている。

1.0.5(65535/No Grid Fit/Anti-Alias)

1.0.8(真ん中が16/Grid Fit/No Anti-Alias)
この「No Anti-Alias」が問題で、ここをクリックして「Anti-Alias」に変更して元のフォントに上書きすると、バージョン1.0.5と同様に扱える。つまり、バージョン0.9.46までのWineもしくはそれよりも新しいバージョンでgdi32.dll.soを修正したWineを使用している場合に限りアンチエイリアシングが有効になる*1

gdi32.dll.soを修正した場合はオリジナルのフォントを上書きすると楽

gdi32.dll.soを修正してあれば、フォントに上記修正を行えば埋め込みビットマップがあってもアンチエイリアシングはされるため、フォント名などを変更したビットマップ無しバージョンを用意せずにオリジナルのフォントを修正済みファイルで上書きしてしまうとよい(置換の設定などで面倒がないため楽)。その場合

FontForgeで読み込むときに埋め込みビットマップを全て選択して読み込む*2

フォント情報の「Grid Fitting」では「No Anti-Alias」となっている部分を「Anti-Alias」にするだけを行い、他は(フォント名なども含め)いじらない

保存時の種類は「In TTF/OTF」を選択*3
という流れになる。その後、オリジナルのIPAモナーフォントの各ファイルに上書きする形となる。

関連: バージョン1.0.7以上のIPAモナーフォントではレイアウトが悪くなる?

上記修正の有無に関わらずバージョン1.0.7以上IPAモナーフォントは、ユーザインターフェース用のフォントとして使用すると、一部レイアウトが崩れる。
例えば、TMIDI Playerのダイアログの下のあたりで欠けている領域が出る。これはバージョン1.0.5では綺麗に出る。

1.0.8(アンチエイリアシング向けの修正済み)

1.0.5
崩れるとは言っても、他のフォントと比べれば、かなりましであることに変わりはない。これはバージョン1.0.7でのサイズの見直しによるものと思われるが、大きくなって見やすくなったところもあるため、使用しているアプリケーション上で大きな支障がなければ気にしないで使うのもよい。
しかし、(gdi32.dll.soさえ修正すれば)アンチエイリアシングのための作業が不要なバージョン1.0.5のIPAモナーフォントのほうがレイアウトもよくなるということから、個人的には1.0.5のほうが好み。

バージョン1.0.5のIPAモナーフォントを入手するには

2008/6/25現在、バージョン1.0.5は
lf.geocities.jp/ipa_mona/opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.5.tar.gz
からダウンロードできるが、将来入手できなくなる可能性はある。他にはUbuntuローカライズド版に含まれるものとして
archive.ubuntulinux.jp/ubuntu-ja/gutsy/opfc-modulehp-ipamonafont-source_1.1.1%2b1.0.5-0ubuntu0ja1.tar.gz
がある。Ubuntuの.tar.gzファイルを展開すると公式版のファイルが得られる形となっている。その中にあるfontsディレクトリにある.ttfファイルがフォントのファイル。

使用したバージョン:

(以下、x86_32のライブラリ)

  • freetype 2.3.6
  • fontconfig 2.5.0(2.5.0-r1)

関連URL:

*1:逆に言うと、0.9.46より新しいWinegdi32.dll.soを修正しない場合は更にビットマップ抜きが必要

*2:gdi32.dll.soを修正していない場合はここで「いいえ」にしてビットマップを捨てる

*3:先ほど埋め込みビットマップを捨てた場合は「ビットマップ無し」になる