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


若干コメントいたします。

> 日本語のカーニングテーブルについては,作成することは,それはそれでかまわなと思います.しかし,その必要性を考えると,あまり現実的でないと思っています.
> すべてをカバーするテーブル これは膨大になりますし,和文のプロポーショナルなフォントを使用すれば解決できますので,その必要性は少ない.また,最近は和文のプロポーショナルなフォントを使用できる環境はよくなっていると思います.

OpenTypeが開発されてから20年以上、またOpenType以前の外部ファイルを参照していた時代からだと28年以上前から、DTPでは写植時代に行われていた「ツメ組」を実現するために、「和文を疑似的なプロポーショナルフォントとして扱うための機能」が提供されてきました。それは、OpenTypeでは、'palt'(縦組みは'vpal')というテーブルで実現されています。既に何度も説明しましたが、それによって、和文フォント内の特定のグリフ(多くの場合、仮名)に字幅とサイドベアリングが与えられるため、疑似的にプロポーショナルフォントとして扱えるようになります。その上で、'kern'を用いてカーニングをすることで、和文のカーニングテーブルが膨大になることを回避しているのです。既存の和文書体をプロポーショナル書体として扱うことは、30年近く前から実現されています。そしてそれは疑似的にプロポーショナルの字送りを、オプションとして選択可能にするものなのです。

それに対して、欧文フォントのように、各グリフのデザインが固有の字幅とサイドベアリングを初めからもっていて、しかもそれが全角や半角などの決まったボディ・字幅には何ら制約されない。それが本当のプロポーショナルフォントです。アドビの「かづらき」など一部のフォントがこのタイプに属します。この真のプロポーショナルフォントと、文字のデザインは従来通りの全角ボディに基づいていて、それを'palt'を用いて疑似的なプロポーショナルフォントとして使えるようにして「ツメ組み」を実現することは区別して考える必要があります。

> 次に限定的なテーブル これには以下の問題点があります.

これも既に述べたことですが、'palt'を使わずに'kern'だけを使って、つまり和文のグリフのスペーシングをペアカーニングだけで行おうとする場合に問題が生じるのであって、'palt'を用いて疑似的にプロポーショナルグリフとした上で、カーニングをかけるのであれば、ベタ組との混同は起こりません。'palt'をONにしなければ、'kern'は作用しないため、元々の字幅が用いられて、ベタで組むことができます。そしてそれがデフォルトなのです。

たしかに、'kern'だけを使って仮名を詰めるの非効率ですが、「す」と「。」だけ詰めたい人がいれば、ペアの数は一つしかないので、そういうフォントを作ればいいだけです。誰も禁止していません。

> 次にテーブルを作成するとして,そのカーニング量は縦組用と横組用で異なる.

当然、縦と横ではカーニング量は異なりますが、これをフォント開発者側がフォントに実装する方法は、既に'kern'と'vkrn'のテーブルとしてOpenTypeフォントで既に用意されています。カーニングテーブルをアプリケーションを使ってユーザーがカスタマイズしたい場合もあるかもしれませんが、それはアプリケーション側が提供する機能となるでしょう。

山本太郎

Received on Friday, 9 December 2022 04:50:25 UTC