Nobuyuki Tsuchimura
tutim****@nn*****
2005年 9月 28日 (水) 18:35:15 JST
土村です。 From: Takanori Uchiyama <uchiy****@appi*****> Subject: Re: vfontmap Date: Sat, 24 Sep 2005 00:27:12 +0900 (JST) Message-ID: <20050****@appi*****> > > そうそう、申し遅れているのですが、 > > 今年の6月に出た FreeType 2.1.10 のソースを見ると、 > > GSUB というキーワードがあります。 > > これはひょっとすると TrueType フォントの > > 縦書文字を引くために使えそうな気がしています。 > > GSUB を利用する高度な API は(見落としていなければ), 用意されていないと > 思います. GSUB の存在を確認する API はありますから, GSUB のデータを自 > 分で解釈するコードを起こすことになるでしょう(FT_OpenType_Validate: GSUB の資料が Adobe の web site にあったので、 http://partners.adobe.com/public/developer/opentype/index_table_formats.html あたりを見ながら解釈するプログラムを書いてみました。 繁雑で紛らわしいところもありますが、難しいことはなく、 ようやく縦書用の GID が得られるようになりました。 TrueType と OpenType はどちらも同じように扱えそうです。 このプログラム(400行)を xdvi に組み込むのはこれからです。 これで auto_shift() などの 位置合わせコードが不要になるかと言えば、 そう簡単な話でもありません。 GSUB アクセスで縦書フォントを得るには、次の問題があります。 (1) FreeType2.1.10 以降が必須(今年6月に公開されたものなので、 多くの Linux ディストリビューションには含まれてないと思います。) (2) VFlib には効力なし xdvi に組み込むときにどうするか、考えてみました。 (a) freetype2.1.10 以降を必須にする (b) xdvi に freetype2.1.10 を同梱する (c) freetype2.1.9 以前用に GSUB まわりの処理を更に追加する (d) auto_shift() などと共存して、可能な時だけ GSUB にアクセスする (a) これはきっと受け入れられないでしょうね。 (b) いっそのこと、T1lib みたいに、 xdvi に freetype2.1.10 を含めてしまえば話は簡単になりますが、 それもどうかという気もしますし... もっとも、VFlib が本当にいらなくなるのはありがたいです。 (c) FreeType2.1.10 では、FT_OpenType_Validate を使うと 簡単に GSUB テーブルが手に入りました。 この部分を FreeType2.1.9 以前で同等の処理ができるよう、 こちらで実装してしまうという手もありますが、 ちょっと見たところ、面倒そうな気がします。 どうせすぐに obsolete になるソースを書くのは、 馬鹿馬鹿しい気もします。 (d) 無難な選択肢ではありますが、ソース肥大につながるので、 なんとかしたいところです。 どちらにしても vfontmap の書式は、 もう一度考え直した方がよいでしょうね。 今は縦書かどうかを表示する時に判定してますけど、 はやり vfontmap に書いてある方が楽でよいです。 私の知恵ではこのぐらいしか思い付きません。 ご意見いただければ幸いです。 ----- 土村 展之 Nobuyuki Tsuchimura