オルタナティブ・ブログ > 俺の話を聞け! >

いや、やっぱり聞いていただけなくても結構なんですがとりあえず垂れ流させてください

Fedora Coreの日本語環境は貧弱!貧弱ゥ!

»

 現在UNIX USER編集部は8月8日発売の9月号の編集作業が大詰めを向かえ、大変なことになっている。ということで、それに乗じてこのブログの更新をサボっていたところ、編集長に発見され「そろそろ更新しないと大変なことになるよ(ー_ー)ニヤリ」てな感じで脅されてしまった……。
 ということで、たいしたネタもないのでFedora Core 4のTipsでもつらつらと書いてお茶を濁そう。

■ボールドがでませんよ!

 Fedora Core 4の日本語環境は、特に日本語環境周りに力を入れているVine Linuxなどと比べるとだいぶ貧相だったりする。たとえば、Windows上でFirefoxでみた某ページと、デフォルトのままのFrdora Core 4(以下FC4)上でFirefoxでみた某ページを比べると、こんな感じだ。

Windowsでは
win_blog
FC4では
fc_blog

 ぱっとみて明らかに分かると思うが、FC4では「ブログ」の文字がボールドで表示されていない。この原因はXウィンドウシステムでフォント関連の処理をしているXftというライブラリが2バイト文字の疑似ボールド生成に対応していないからである。

 簡単に言えば、欧文フォントだとボールドの書体が無くても非ボールドの書体を元にボールドを描画してくれるのだが、日本語フォントに関してはそれをやってくれていない、という話である。実はこの問題を修正するパッチはすでに公開されており、Vine LinuxなどではデフォルトでXftにこのパッチがあてられている。

 ということで、FC4でもこのパッチを当てたXftを用意してオリジナルのものと置き換えてしまえばよい。ただ、FC4ではXftがxorg-x11パッケージに含まれており、普通にrpmbuildでコンパイルしてしまうとxorgを全部再コンパイルする羽目になり激しく面倒臭い。よって、ソースとパッチだけSRPMから頂戴して、Xftだけ再コンパイルするという作戦に出た。

 材料としては、Fedoraのミラーサイトから入手できるxorg-x11のソースRPMパッケージ
(今回はxorg-x11-6.8.2-37.src.rpmを使用した)と、「KDEのフォント環境をさらに充実させよう」
から入手できるXft用のパッチ xft-2.1.1-MakeBold-20040405.patchだ。

 「KDEのフォント環境をさらに充実させよう」ではfontconfigについてもパッチが必要、と書かれているが、こちらはデフォルトで生成される設定ファイルfonts.confを書き換えるだけなので別に無くても対応できる。

 実行例はこんな感じだ。

●SRPMの展開と標準のパッチをソースに適用

# rpm -ivh xorg-x11-6.8.2-37.src.rpm
# cd /usr/src/redhat/SPECS
# rpmbuild -bp xorg-x11.spec   
 :(ソースが展開されて/usr/src/redhat/BUILD以下に展開される)
 :
# cd ../BUILD/xorg-x11-6.8.2/xc/lib/Xft

●パッチを適用

# patch -p1 < ~/xft-2.1.1-MakeBold-20040405.patch
 :(パッチがあたる)
 :

●Makefileの生成とconfigureの実行

# automake-1.7 -a
./configure -prefix=/root/tmp
# make

●/root/tmp以下にライブラリを仮インストール

# make install
# cd /root/tmp/lib/
# ls
libXft.a  libXft.la  libXft.so  libXft.so.2  libXft.so.2.1.2  pkgconfig

●パッチ適用済みライブラリをオリジナルと入れ換える

# cd /usr/X11R6/lib/
# ls -l libXft*
-rw-r--r--  1 root root 93418  5月 14 01:29 libXft.a
lrwxrwxrwx  1 root root    15  7月 29 21:43 libXft.so -> libXft.so.2.1.2
lrwxrwxrwx  1 root root    13  7月 29 19:28 libXft.so.1 -> libXft.so.1.1
-rwxr-xr-x  1 root root 55884  5月 14 01:31 libXft.so.1.1
lrwxrwxrwx  1 root root    15  7月 29 19:28 libXft.so.2 -> libXft.so.2.1.2
-rwxr-xr-x  1 root root 77852  5月 14 01:31 libXft.so.2.1.2
# mv libXft.so.2.1.2 libXft.so.2.1.2.org
# cp /root/tmp/lib/libXft.so.2.1.2 .
# strip libXft.so.2.1.2

あとは、以下の内容を/etc/fonts/local.conf中の

間に追加すればよい。

 

<config>
<!--
Artificial bold for fonts without an bold version
-->
  <match target="font">
    <test name="weight" compare="less_eq">
      <const>medium</const>
    </test>
    <test target="pattern" name="weight" compare="more">
      <const>medium</const>
    </test>
    <edit name="weight" mode="assign">
      <const>bold</const>
    </edit>
  </match>
</config>

 とりあえずこれでボールドが正しく表示される。今回の実行例では直接ライブラリをインストールせず、/root/tmp以下に仮にファイルをインストールしてライブラリの本体であるlibXft.so.2.1.2のみをオリジナルと入れ換える戦法をとった。これは、余計なファイルの置き換えを起こさないようにするためだ。

 しかし、たかがボールドを表示させるだけなのに面倒臭い。どうしてこのパッチをデフォルトで当ててくれないんだFedora Project、という感じではある。まぁ2バイト文字を表示させる機会なんでほとんど無いだろう欧米人にはことの深刻さが理解できないのかもしれないが。あと、自分でコンパイルができないnewbieな方々は、コンパイル済みライブラリを公開して、さらにxorgパッケージのアップデートがされたら毎回この作業をやってくれる親切な方が現れるのをお待ちください……

 それでは、ネタに困ったら次はFedora Core 4の日本語フォント周りの話をしよう。Fxxkin' Hacking!

こんな風に表示されるようになる
fc_blog2

Comment(5)