fontconfig 2.4.1

永らく 2.3.2-1 で hold していたのだが、思い余って現時点の sid のバージョン 2.4.1 に入れ換えてみた。

設定ファイル

設定ファイルの配置が変更になったようで、/etc/fonts/conf.avail/ から/etc/fonts/conf.d/ にリンクが張られていると有効となるようだ。で、この中に 51-local.conf というのがあって、それで /etc/fonts/local.conf を読み込むようになっているので、ローカルの設定は結局 /etc/fonts/local.conf に書けばよさそう。 ところで debian 的には、/etc/fonts/conf.avail/ 以下の内容を書き換えたい(上書きしたい場合)はどうするのがよいのだろう。例えば 90-synthetic.conf は「疑似斜体」と「疑似ボールド」を実現するのだが、このうち斜体は生かしたくてボールドは抑制したい。local.conf で embolden を false にしても読み込みの順番によって true にされてしまう。90-synthetic.conf を直接書き直すのだろうか。 ここでは、リンクを /etc/fonts/conf.avail/51-local.conf から/etc/fonts/conf.d/91-local.conf に張りかえて、local.conf が最後になるようにした。

IPAフォントを総称名で

「sans」「sans-serif」で指定したときに、IPAフォント[1]を用いるようにしたい。Xft フォントシステムの設定を参考にして、/etc/fonts/local.conf に
<alias>
  <family>serif</family>
  <prefer>
    <family>Bitstream Vera Serif</family>
    <family>IPAMincho</family>
  </prefer>
</alias>
<alias>
  <family>sans-serif</family>
  <prefer>
    <family>Bitstream Vera Sans</family>
    <family>IPAGothic</family>
  </prefer>
</alias>
<alias>
  <family>monospace</family>
  <prefer>
    <family>Bitstream Vera Sans Mono</family>
    <family>IPAGothic</family>
  </prefer>
</alias>
のように書く。

ボールドはEPSONフォントを

EPSON プリンタに付属の CD-ROM に太明朝や太ゴシックなどのフォントが入っている[2]ので、ボールドは疑似を使わず、これらを用いるようにする。 /etc/fonts/local.conf では、まず疑似ボールドを抑制し[3]
<match target="font">
  <edit name="embolden" mode="assign">
    <bool>false</bool>
  </edit>
</match>
明朝 (IPAMincho) のボールドに EpsonFutoMincho, ゴシック (IPAGothic) に EpsonFutoKakugo をそれぞれ対応させる。
<match target="pattern" >
 <test name="family" >
   <string>IPAMincho</string>
 </test>
 <test compare="more" name="weight" >
   <const>medium</const>
 </test>
 <edit mode="assign" name="family" >
   <string>EPSON 太明朝体B</string>
 </edit>
</match>
<match target="pattern" >
 <test name="family" >
   <string>IPAGothic</string>
 </test>
 <test compare="more" name="weight" >
   <const>medium</const>
 </test>
 <edit mode="assign" name="family" >
   <string>EPSON 太角ゴシック体B</string>
 </edit>
</match>
ここでフォント名はフォントそのものに埋め込まれている名前 (fc-listで表示される)を書く。UTF-8 なら local.conf も UTF-8 にする。

ビットマップを抑制

武藤さんの日記にあるとおりなので、/etc/fonts/local.conf に
<match target="font" >
  <edit mode="assign" name="embeddedbitmap">
    <bool>false</bool>
  </edit>
</match>
を書く。

「〜」(波ダッシュ、U+301C)

IPAフォントでは「〜」(波ダッシュ、U+301C)が表示されない。これについてはいろいろ意見があるだろうが、現実問題として、Firefoxであちこちのサイトを見る場合などかなり鬱陶しい。 根本的解決でなくても、表示する際に fontconfig あたりで置換することはできないのだろうかと思って検索してみると、やはり既にパッチがあった。 上記のもののうち必要な部分だけを取り出し、最新の fontconfig (2.4.1)に行番号を合わせたものを置いておく。 まず apt-get source fontconfig でソースを持ってくる。ディレクトリ debian/ の下にpatches/ というディレクトリを作り、その下に上記のパッチを置く。その際ファイル名の拡張子は .patch とか .diff にする。 あとは dpkg-buildpackage -rfakeroot で、自動的にパッチを当てながらパッケージができる。 パッケージをインストールした後、fc-cacheを忘れずに。
  1. GRASS国際化版オープンプリンティングプロジェクトで入手できる。
  2. もしCD-ROMを紛失したならEPSONダウンロードサービスから入手可能。
  3. そして前述のようにこの指定が最後に来て有効になるようにして。抑制しておかないと太字にデザインされたフォントをさらにボールド化しようとして醜くなる。

コメントをどうぞ