RE: palt+kernを持つ和文フォントについて

Taro Yamamoto 様
Nat 様

 小林 敏 です.

3点ほど質問がありますので,よろしくお願いいたします.

“palt”でプロポーショナルを実現する方法はわかりましたが,和文のプロポーショナルの幅のデータの内容がよくわからないのです.“字形のプロポーショナル幅との差分がカーニング値”とありますが,可能であるなら,その内容というか,その方法を知りたいのです.

実際の字形の占める領域をデータとして利用しているのですか,それとも各文字それぞれに個別に全角との差分データを具体的に与えているのですか.また,字形の占める領域のデータを利用する方法では,均一のサイドベアリングの値を与えることが可能か,それはマイナスの値を含めて変更可能ですか.

こうした疑問が出るのは,プロポーショナルの場合でも,サイドベアリングは必要になるでしょうからです.

もう1点は,縦組の場合は,どうなるか?という点です.字形データを利用する場合は,縦か横か幅のどちらかという問題ですが,個別に全角との差分データを具体的に与えている場合は,縦と横で値が変わってきます.

最後の疑問は,アキを持った句読点や括弧類の字形とは何を指すのですか.アキを含めない値ですか,なんらかのアキを含めているのですか?

  Taro Yamamoto さんwrote

>Natのメールの「和欧」となっていたところは「和文」が正しいと思います。
>
>“Re-spaces glyphs designed to be set on full-em widths”とあるように、’palt
>’は日本語の全角文字を、全角文字として動作できることとに追加して、プロポーシ
>ョナルのグリフとして(つまりグリフごとに固有の字幅も持てる)ようにしたもので
>す。’palt’は元の全角文字のメトリクスを完全に置き換えるのではなく、どちらも
>使えるようにするためのものです。だから、alternateと名付けられています。言い方
>を変えると、全角のグリフではなくて、欧文フォントやプロポーショナルのグリフは、
>’palt’を必要とせず、初めからそのプロポーショナルの字幅を使うだけで、用が足
>りるわけです。なので、そのようなグリフが’palt’の対象となることはありません。
>そして、’palt’の内容といえば、まさにプロポーショナルのボディの全角ボディの
>各辺からのオフセット値となっています。
>
>‘kern’を’palt’を持っていない欧文フォントなどのプロポーショナルフォントに
>対して適用することは、まったく問題がありません。なぜなら、既にプロポーショナ
>ルとして扱えるグリフしか持っていないからです。’palt’と’kern’の両方を適用
>しても、ただ’palt’が存在しないだけです。
>
>‘kern’を’palt’を持っている日本語フォントに適用する場合には、その対象グリ
>フをプロポーショナルにするために、’palt’を適用してから’kern’を適用する必
>要があります。‘palt’を持たない日本語フォント中の全角日本語グリフに’kern’
>は適用しません(というか、日本語グリフに’kern’を適用することを想定している
>日本語フォントには必ず’palt’が含まれています)。
>
>‘palt’がなく、または’palt’があっても適用していないために、日本語フォント
>中の全角字幅のグリフに’kern’を適用することは、単に想定していないから、やら
>ないのではなく、そうすることに合理性がないので、行わないのです。
>
>歴史的には、これは、写植の仮名ツメ文字盤に由来しています。例えば「何とか中明
>朝」という文字盤があるとすると、通常の文字盤以外にも、「何とか中明朝」の仮名
>ツメ文字盤も用意されて、それには主に仮名文字をプロポーショナル字幅で印字でき
>るように、位置を調整したグリフのネガ像が配置されていて、欧文文字盤と同じ方法
>で、文字巾のクラスごとの送り量を写植機が検出して、グリフごとに適切な字幅で送
>れるようにしたものです(字幅の検出のメカニズムは写植機メーカーや機種によって
>異なりましたが)。
>
>仮名をツメルのは、印刷書体の仮名文字のグリフが、全角正方形に合わせるようにデ
>ザインされているとはいえ、仮名文字の形が多様であるために、ベタで組んだ場合に、
>レタースペース(字間)が視覚的に不均等になる傾向があり、それを、大きな印字サ
>イズで用いた場合や、見出しや広告・商業印刷物などにおいてタイトな組み上がりの
>効果が期待される場合に、(1)プロポーショナルで組むことで改善する、(2)それ
>でも改善できない個別の文字の組み合わせごとのスペーシングを改善する、目的で行
>われます。前者に’palt’が、後者に’kern’が対応しています。
>
>上記のような目的や用途でも、全角の等幅の書体デザインのままで、ツメたりする必
>要を感じないのであれば、このようなことはすべて不要になります。字面の大きな、
>ゴナやナールや新ゴといったフォントは、ツメる必要性ができる限りないように、初
>めからデザインされた書体です。それもまた一つの解決方法です。この方法は見出し
>用書体で少なからず採用されてきました。
>
>その他のフォントで、用途によって、ツメたくなる状況というのは、欧文にたとえて
>いうと、本来プロポーショナルのデザインのA, B, C . . . X, Y, Z, a, b, c . . . 
>x, y, z のグリフを字幅だけ等幅で組むのと同じような状況だということです。本来
>の字幅でない、つまりプロポーショナルになっていない状況で、スペーシングを改善
>するためにできることは、プロポーショナルにすることです。それぞれのグリフのデ
>ザインに合った字幅で組むことです。これが、’palt’が日本語フォント内の全角グ
>リフに対して行っていることです。それをしない段階で、’kern’を適用して、ス
>ペーシングを改善しようとしたら、膨大な数のペアを設定する必要が生じてしまいま
>す。だから、’palt’によってプロポーショナルの字幅をもたせてから、必要であれ
>ば、’kern’を適用する、という手順を踏んでいるわけです。しかし、このことは上
>述のように、プロポーショナルでない、全角等幅のグリフについてだけに、あてはま
>ります。
>
>以上、補足まで。
>
>山本
>
>
>From: Nat McCully <nmccully@adobe.com>
>Sent: Monday, October 11, 2021 3:05 AM
>To: Koji Ishii <kojii@chromium.org>; Taro Yamamoto <tyamamot@adobe.com>; W3C 
>JLReq TF <public-i18n-japanese@w3.org>
>Subject: Re: palt+kernを持つ和文フォントについて
>
>
>ご理解は合っています。うちの製品では、カーニング設定は3種類あります。そのう
>ち、「自動」と「和文等幅」というのはフォント内の’kern’でペアカーニングをし
>ます。いずれも字形のプロポーショナル幅との差分がカーニング値になっており、仮
>名のカーニングをする(つまり、「自動」の)場合には先に’palt’をかけないとい
>けないのです。「自動」に設定するとエンジンが裏で’kern’と’palt’をかけます。
>
>「和文等幅」の場合は和文フォントの欧文文字の部分が既にプロポーショナルになっ
>ていることと、欧文フォントは’palt’がないことで’kern’を欧文文字にだけかけ
>て済むと思います。
>
>デフォルトでいつも’kern’だけかけたしまうと仮名カーニングできるフォントは正
>しくカーニングされませんし、CJKは標準等幅とは違う挙動になります。
>
>
>—Nat
>
>
>From: Koji Ishii <kojii@chromium.org>
>Sent: Sunday, October 10, 2021 10:23:58 AM
>To: Taro Yamamoto <tyamamot@adobe.com>; W3C JLReq TF <public-i18n-japanese@w3.
>org>
>Subject: palt+kernを持つ和文フォントについて
>
>
>太郎さんかNatあてになるんだろうと思いますが、ほかの方の参考にもなると思うので
>質問させてください。少し技術的に細かい話になります、すみません。
>
>
>先日のミーティングで、Adobeの和文フォントでは、kernとpaltは一緒にオンにしない
>と、フォントデザイナーが期待した結果にはならないというご指摘をいただきました。
>これは、kernテーブルが、paltの字幅に対して設計されているから、という理解でい
>いでしょうか?
>
>
>技術的に言えば、現在、 paltの推奨はGPOS lookup type 1だけなので、paltを持つフ
>ォントに関しては、(1) paltありの字幅にカーニングをかけるか、(2) paltなしの字
>幅にカーニングをかけるかのいずれかしか選べない、ということになります。
>
>
>そのような状況で、Adobeは、paltありの字幅にカーニングをかけることにした、とい
>うのが先日教えてくださったお話という理解で合っていますか?
>
>
>このようなフォントをpaltなしで使い、かつ従属欧文にはkernをかけたい場合には、
>どのようにするのでしょうか? 和文と欧文を区別して、必要なOpenType機能を切り
>替えるのでしょうか?
> 

Received on Monday, 11 October 2021 05:09:12 UTC