RE: CJKフォントのpalt(詰め組)とkernの関係

石井 様



(2)限られた文字の組合せについて,縦組用のカーニングテーブルと横組用のカーニングテーブルを作る.
をフォントが情報を作れることには肯定いただいている、と解釈しましたが、合っていますでしょうか?

以前のメールで何度も指摘しましたが、これは、今でも’kern’と’vkrn’を使えば可能です。’kern’というのは、横組みのカーニングテーブルのことで、’vkrn’は縦組み用のカーニングテーブルのことなのですから。


なぜ、’kern’および‘vkrn’の話を、’palt’の話と混同されるのか、私には理解できません。

(また、これも既に述べましたが、’palt’を使った場合でも、「す」と「。」に’kern’を掛けて、しかも’palt’の値はゼロとして、’kern’で指定された量だけを使って詰めることも可能です。だけどそんなことをする必要はなくて、’palt’を入れなければそれで解決します)。


ですから、’kern’だけを持たせたフォントを作ることは、今でも、可能です。事実、欧文フォントには’palt’なんてありませんし、’kern’しかもっていません。日本語のフォントで’kern’と’vkrn’だけしかないフォントを誰も禁止していません。どこに禁止していると書いてあるのでしょう?

何ができない、と仰っているのかが、私には理解できません。



  *   太郎さんも敏先生も「相当に困難」という点は同意されていますね。



二人とも、石井さんが作りたいフォントは作れると言っているのです。必要なら作られればよいのでは? そして、それは期待通りに動作するはず(しなければバグなので、直せば良いと思います)。



  *   これは理解できます。ここでの論点は、フォントの仕様として「禁止する」か「許可する」か、



‘kern’しかないフォントをOpenTypeの仕様は禁止していません。必要なら今すぐに作って活用されれば良いだけです。さらに、’palt’だけしかないフォントも、’palt’と’kern’の両方があるフォントも、どれもみんな禁止されていません。

唯一、‘kern’を適用する場合に、‘palt’がある場合には、’palt’を適用する必要があるという制約を課しているだけです。
この制約はしかし、’palt’との共用時に適用されるだけで、’palt’をもたないフォントには適用されません。当然のことですが。しかも、’palt’をもたせたとしても、もし’palt’の中身のオフセット値をゼロに設定すれば、’kern’だけを使ってペアを詰めることになるわけです。

大多数の既存の日本語フォントの’palt’と’kern’の実装は、フォントに含まれる日本語グリフのデフォルトの字幅を変更することなく(変更されたら日本語はまともに組めなくなります)、明示的に「ツメ組み」が必要とされる場合にだけ、代替の字幅とサイドベアリングを適用して、疑似的にプロポーショナルグリフとして組むことを可能にする目的で作られています。上記の制約はそのためにありますが、だからといって、’kern’だけを使ってグリフを詰めるという、多くの場合日本語フォントにとって非効率な方法を、禁止しているわけではありません。



なぜ、「禁止」されていると解釈されるのかが、私には理解できません。そういうフォントは作れますし、正しく期待通りに動作するはずです。


山本太郎

Received on Thursday, 8 December 2022 09:24:55 UTC