[sylpheed-jp:10260] Re: Windowsでの新規フォントインストール
Hiroyuki Yamamoto
hiro-y @ kcn.ne.jp
2007年 4月 13日 (金) 17:45:56 JST
山本です。
On Fri, 13 Apr 2007 07:01:00 +0900
Akihiro Okamura <aokamura @ iris.eonet.ne.jp> wrote:
> On Fri, 13 Apr 2007 01:40:54 +0900
> Akihiro Okamura <aokamura @ iris.eonet.ne.jp> wrote:
> > > 現在手元に確認できる環境がないので推測ですが、JIS2004対応のMS明
> > > 朝・ MSゴシックはフォント名としてマルチバイト文字列(MS ゴシック)
> > > のものしか持っておらず、GTK+/Pangoがその文字列の扱いに失敗している
> > > のではないかと思われます。
> >
> > TTF フォーマットの仕様書を見ながら、ttfdump で Vista 付属の
> > msgothic.ttc のフォントヘッダを覗いてみたのですが、ASCII文字列、マル
> > チバイト文字列(実際には Unicodeで格納されていました)の Font
> > Family Name は両方とも含まれているようです。
> >
> > GTK+/Pango についてはよくわからないのですが、ASCII 文字列が優先され
> > るはずであれば、 ASCII 文字列の取得に失敗している(?)こと自体が問題な
> > のかもしれません。
>
> Pango のソースを追いかけてみて、怪しいところを見つけました。
> 新しいフォントで追加されているデータに含まれるフォント名を、
> UCS4として扱っているのですが、実際のフォントに格納されているのは、
> UTF16のようです。
> (文字コードについてはあまり詳しくないので、間違えていたらすみません)
http://www.microsoft.com/typography/otspec/name.htm
によると、 Platform ID: 3, Specific ID: 10 は Unicode full repertoire
と定義されているようです。
Unicode full repertoire でぐぐってみると、以下が見つかりました。
http://www.mail-archive.com/freetype@nongnu.org/msg01078.html
この情報が正しければ、 Unicode full repertoire を UCS-4 として扱うのは
間違いで、 UTF-16BE として処理すべきであるように思われます。
> とりあえず、暫定パッチを作ってみて、デバッグメッセージレベルでは
> 旧フォントと同等の動きをするようになったことまでは確認できたのですが、
> ビルド環境に問題があるようで、この問題に対してパッチが有効なのか
> Sylpheed で検証することができませんでした。
> #自分でビルドした Pango ライブラリを使うと、パッチを当てていないにも
> 関わらず#ほとんど全ての文字が化けて表示されてしまいました。(^^;
>
> 添付のパッチを試せる方はいないでしょうか?
というわけで、岡村さんの修正は正しいように思われます。
GNOME Bugzilla にバグ報告してみるというのはいかがでしょうか :)
--
Hiroyuki Yamamoto <hiro-y @ kcn.ne.jp>
Sylpheed-jp メーリングリストの案内