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

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

Qt4でSans Serif(サンセリフ)のフォントがアンチエイリアスされない件についてと非推奨な対処

Qt4のアプリケーション上で、ユーザインターフェースに使用される既定のフォントの英数部分だけアンチエイリアスがされないという状態が続いている。
qtconfig設定ツールで見ると、既定のフォント(「Fonts」タブの「Default Font - Family」)が「Sans Serif」になっていて、別のフォントへ変更することはできるのだが、そのままでは表示が汚い状態になる。
同じ「Font」タブの下にある「Font Substitution」では、フォントの置換(代替)が行えるようになっているのだが、ここで「Select or Enter a Family」の一覧から「Sans Serif」を選択すると「helvetica」が出てくる。これを消したり別のフォント名に置き換えたりすることはできるものの、保存後qtconfigを再び実行するとまた復活してしまい、設定は実際には反映されない。

フォントの描画は汚く、この「helvetica」は実質消せない
KDE4を使用していると、KDE上の各種フォント設定が「Sans Serif」になっているため、個別に設定しなくてはならず、面倒になる。

数字部分のアンチエイリアスが無効になっているのが分かる
これを何とかしようと思い、lsofで調べると、

$ lsof | grep helv
qtconfig   4679  [ユーザ名]  mem       REG                8,8      4677     604632 /usr/share/fonts/75dpi/helvO12-ISO8859-1.pcf.gz
qtconfig   4679  [ユーザ名]  mem       REG                8,8      4451     604150 /usr/share/fonts/75dpi/helvB12-ISO8859-1.pcf.gz
qtconfig   4679  [ユーザ名]  mem       REG                8,8     14390     604927 /usr/share/fonts/75dpi/helvR12.pcf.gz
qtconfig   4679  [ユーザ名]  mem       REG                8,8      4425     604840 /usr/share/fonts/75dpi/helvR12-ISO8859-1.pcf.gz

のようにpcf形式のビットマップフォントが(Helveticaとして)使用されているようで
これらのファイルの属するパッケージを調べると

$ qfile /usr/share/fonts/75dpi/helvO12-ISO8859-1.pcf.gz
media-fonts/font-adobe-75dpi (/usr/share/fonts/75dpi/helvO12-ISO8859-1.pcf.gz)
(他のファイルも同様に「font-adobe-75dpi」のものだった)
$ equery depends font-adobe-75dpi                      
[ Searching for packages depending on font-adobe-75dpi... ]
x11-base/xorg-server-1.3.0.0-r6 (media-fonts/font-adobe-75dpi)

Xのサーバが依存しているパッケージの1つの一部ということで、ディストリによってはアンインストールは難しそう。
試しに上記ファイルを別の場所に退避(移動)したところ

  • helvO12.pcf.gz
  • helvB12.pcf.gz
  • helvR12.pcf.gz

の3ファイルが代わりに使用され、これらを退避すると次は

  • helvO10.pcf.gz
  • helvR10.pcf.gz
  • helvB14.pcf.gz
  • helvR14.pcf.gz

ときりがない上にサイズも変わってしまっているため、試しに/usr/share/fonts/75dpi/以下の「helv」で始まる名前のファイルを全て別の場所に退避したところ、手元の環境ではこの問題は回避されたように見える。

qtconfig

KDE4のフォント設定
ただ、環境(フォントのインストール状況など)により、回避されない場合があるかもしれない。また、この対処には副作用があるかもしれないので、おすすめはできない。
(2008/11/13)GentooからMandrivaへ乗り換えた時点ではこの記事の問題は起きていない(Qtのバージョンは4.4.3)。

関連URL:

  • bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/209358

使用したバージョン:

  • Qt 4.4.1
  • KDE 4.1.0