[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:17416] Re: evince + symlink で豆腐(Re: evince で VL-Gothic フォントを利用しようとすると豆腐になる



こんばんは。

Junichi Uekawa <dancer@xxxxxxxxxxxxx> writes:

>> > On Mon, Sep 15, 2008 at 08:30:55PM +0900, Hideki Yamane wrote:
>> > > On Tue, 9 Sep 2008 00:40:01 +0900
>> > > Junichi Uekawa <dancer@xxxxxxxxxxxxx> wrote:
>> > > > 直観ですがいま臭いとおもっているのが:
>> > > > 
>> > > > 1.誰かがキャッシュを作っていてファイルの順番によってうごいたり動かなかったりする?
>> > > > (例えば、anti-alias を切ってみたらうごいたりするか?)
>> > > > 
>> > > > 2. /var/cache/fontconfig/* と ~/.fontconfig をstringsで見た感じでは
>> > 
>> >  ~/.fontconfig ?
>> 
>> 手元で見て推測した感じでは、/usr/lib/fonts/truetype ディレクトリ以下の内容とフォ
>> ントファイルの中身についてのキャッシュがあるみたいです。
>
> strace してみたところ gimp は ~/.fontconfig をみているけど evince は
> ~/.fontconfig は見ていないみたいですね。

私も、これに困っていたので、思い切ってデバッグしてみました。結果的には、
libpoppler3 で pdf のフォント名から、fontconfig でフォントを探した後、

poppler-0.8.7/poppler/GlobalParams.cc:1078
GlobalParams::getDisplayFont()

      res = FcPatternGetString(set->fonts[i], FC_FILE, 0, &s);
      if (res != FcResultMatch || !s)
        continue;
      ext = strrchr((char*)s,'.');
      if (!ext)
        continue;
      if (!strncasecmp(ext,".ttf",4) || !strncasecmp(ext, ".ttc", 4))
      {
        dfp = new DisplayFontParam(fontName->copy(), displayFontTT);  
        dfp->tt.fileName = new GooString((char*)s);
        FcPatternGetInteger(set->fonts[i], FC_INDEX, 0, &(dfp->tt.faceIndex));
      }
      else if (!strncasecmp(ext,".pfa",4) || !strncasecmp(ext,".pfb",4)) 
      {
        dfp = new DisplayFontParam(fontName->copy(), displayFontT1);  
        dfp->t1.fileName = new GooString((char*)s);
      }
      else
        continue;

のように、フォント名 (問題の場合、s が "ttf-japanese-gothic") が、上記の
拡張子 (".ttf", ".ttc", ".pfa", ".pfb") を持っていないため、正当なフォン
トとみなされずに使われないことが、原因のようです。

私の所では、試験的に ttf-japanese-gothic -> ttf-japanese-gothic.ttf に
rename()で、問題が解消されるようです。
(/usr/share/fonts/truetype/japanese/ttf-japanese-gothic.ttf とかみたいに
ディレクトリを作って、その下に置くべきなのかな?)

> lenny 初期インストールの状態で問題点が再現するのかどうか、もし再現する
> のであれば evince が lenny インストール状態で漢字がみれないということに
> なるので重要な問題です。問題の切り分けに時間がかかっていますが、とりあ
> えずBTSに登録しました。
>
> http://bugs.debian.org/499428
-- 
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>