evince英語PDF問題メモ

 evinceで日本語PDFを見ようとするとxpdf-japaneseを入れる必要がある。(たぶんpoppler-dataでもOK。)しかし、xpdf-japaneseを入れると英語のPDFの表示が乱れる。(というか、いまさっきxpdf-japaneseを削除しても、英文PDFの表示は乱れたままだった。もしかしてxpdf-japaneseはあんま関係ない?)よく見てみると、どうもフォントのメトリクス情報と実際に使われているフォントが一致していないような感じだ。以下、調べてみたことのメモ。

  1. fc-match Times Romanの結果はKochi Mincho, 実際に開かれているファイルはVL Gothic。しかし、表示されているフォントは確実にVL Gothicではない。
  2. poppler/BuiltinFontTables.ccにTimes Romanその他のフォントに関する幅情報がべた書きされており、これが使われている。実際、値をいじってコンパイルし直してみると、表示結果が変わることが確認できた。
  3. 表示されているのが明らかに等幅明朝系のフォントだったのでttf-kochi-minchoを削除してみたところ、うまく表示されるようになった。
  4. straceと/proc/procnum/mapsで確認して見たところ、開かれているフォントファイルはVL-Gothic-Regular.ttfのみ。(明らかに(代替)東風明朝っぽいフォントが表示されている場合も。)

 ということで、幅に関しては実際のフォントを使わずに決め打ちしてることがわかった。なぜ開かれていないはずの東風明朝が表示されているのかはよくわからない。フォントサーバは使ってないので、使うフォントはアプリ起動時に一回はopenで開かれてると思ったんだけど。
 行き詰まったのでとりあえず寝る。