Nobuyuki Tsuchimura
tutim****@nn*****
2005年 9月 29日 (木) 17:55:11 JST
土村です。 From: Takanori Uchiyama <uchiy****@appi*****> Subject: Re: GSUB による縦書フォント Date: Wed, 28 Sep 2005 19:23:31 +0900 (JST) Message-ID: <20050****@appi*****> > > (a) freetype2.1.10 以降を必須にする > > ソースからの make では必須にして, libfreetype.a を static link する. freetype-2.1.10 を手元の環境で make してみました。 結構簡単に make できますね。 Linux だけでなく Solaris 8/9 や FreeBSD 4.7-STABLE でも OK でした。 gcc 2.95.2 なんかの古いものでもコンパイルできてます。 標準の make ではなく、GNU make を要求しますが、 このぐらいは許容範囲でしょう。 freetype-2.1.10 は、インストールはしなくてもよくて、 make しただけで置いておく、 xdvi からはそれを static link する、 ということにしましょうか。 > > どちらにしても vfontmap の書式は、 > > もう一度考え直した方がよいでしょうね。 ... > GID→GID: Identity-H と Identity-V を連想するもの > JIS→unicode: JIS を連想するもの + -H or -V のような感じ. > unicode→unicode: unicode を連想するもの + -H or -V のような感じ. 賛成です。 結局のところ、dvipdfmx の cid-x.map から かなりの表現を輸入するということですね。 今までの vfontmap の表現との対応を考えると、 こんな感じでしょうか。 組み方向 今まで これから H (空白) H V (空白) V H unicode Unicode-H V unicode Unicode-V H adobejapan Identity-H V adobejapan Identity-V V cidv V V tate H Unicode-{H,V} の判定は、先頭3文字の 'Uni' で行えば、 CMap 名の 'UniJIS-UCS2-{H,V}' なんかが来ても大丈夫ですので、 都合いいでしょうか。 dvipdfmx の -s, -e による slant, extend の指定は、 FT_Matrix matrix = { (int)((1<<16)*extend), (int)((1<<16)*slant), 0, 1<<16 }; FT_Set_Transform( face, &matrix, 0 ); で表現できそうですので、このまま採用しましょうか。 もっとも xdvi では、一文字あたりの領域からグリフがはみだすと、 妙なことになってしまいますので、 気持ちだけのサポートということにしたいです。 > TTC の index 指定は, dvipdfmx と同様に > msminp H :1:msmincho > のように, コロンで挟む. > FreeType の API を呼ぶときには, > FT_New_Face(library, fontpath, 0, &fonts[fontsmax].face ); > の 0 の部分を当該 index に変えればよい. face_index もこれでいいですね。 > ただし, 1 を指定して, プロポーショナルなグリフを使うときには, TFM の場 > 合と JFM または OFM な場合があります. 現状では, vfontmap に記述されて > いるものは, JFM であることが前提除件になっています. > この部分の修正, 少々手間かもしれません. やはりフルサポートは先送りですか。 CMap のサポートについても、 実装自体は簡単そうなんですが、ひとまず先送りにします。 OpenType でも GSUB が使えるので、縦書には困らないのですね。 自分で試すまで気付きませんでした。 ----- 土村 展之 Nobuyuki Tsuchimura