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

各位、
いくつかコメントします。(複数のコメントがあったので、書くのに時間がかかってしまいました)。

村田さんwrote:
> 欧文フォントやプロポーショナル日本語フォントにpaltを指定する人はいないから、そういうフォントにpaltを指定した
ときの動作は気にするはないという割り切りはありですか?
> つまり、全角日本語文字という判定に苦労する条件は入れなくていいのでは?

ナットの方がアプリケーションソフトの動作には詳しいと思います。
I believe Nat knows better about the behavior of apps.

Nat,
    I personally think that Western (Latin) fonts and true-proportional Japanese fonts don't need the 'palt' feature at all. Therefore, even if the ‘palt’ is activated on the application software by the user, it is ignored. Right?
But it seems to me that the question has two underlying layers: 1) with what information apps. distinguish Western (Latin) fonts, EM-based standard Japanese fonts, and true-proportional Japanese fonts, and 2) with what information apps. distinguish Japanese characters that should be regarded as "Japanese EM-body-based" characters (which do not always need to have em-square bodies actually, as there can be condensed fonts. In the sense, the "Japanese EM-body-based" characters, in this context, are only nominally "EM-based" for the purpose of determining whether the 'kern' feature can be applied to the characters without the 'palt' activated.
I guess some code ranges such as that which is defined in the UAX #11 are used, to determine 2) above. But is this correct?
Also, what do you think about the question 1) above?
If you could make any comments here to answer Mr. Murata's questions, I should be most appreciative.

石井さんwrote:
> 木田さんは「追認」と書かれましたので、二種類の異なる解釈をしたフォントと、三種類の異なる解釈をしたソフトの合計五者が、それぞれ過去互換性を大きく損なうことはなく、フォント実装者の意図を正しく反映した表示ができる未来を作りたい、ということだと私は理解しています。そのために、共存するための技術と、それを仕様に反映する必要がありますね、というのが私のまとめの意図です。

了解しました。その点は、村上さんがコメントされている内容と関係するように思います。

Nat wrote:
> To transform a monospaced font into a proportional font to ready it for creation of kern pairs, you use the palt feature.

I completely agree, as far as the abovementioned questions 1) and 2) are answered clearly.

村上さんwrote:
7のような日本語フォントは実際にあるのでしょうか? `palt` が存在しないデフォルトでプロポーショナルなフォントであれば、それがありえると思いますが、`palt` が存在するのに `palt` をかけないときに `kern` をCJK全角文字にかける前提で設計されている日本語フォントというのはありえない(あったとしたら、フォントの設計が間違っている)と思います。ですので、「二種類の異なる解釈をしたフォント」ではなくて、単に `palt` が存在するかしないかの二種類のフォントがあることを考慮するとよいでしょう。私の https://github.com/w3c/csswg-drafts/issues/6723#issuecomment-1454783131 での `font-kerning: normal` についての提案(フォントに `palt` が存在する場合は非CJK文字のみをカーニングし、フォントに `palt` が存在しない場合は全てカーニングする)は、それを考慮したものです。

私も同じように考えます。

石井さんwrote:
「設計が間違っているフォントは互換性を取らなくて良い」という理論で存在するフォントを切り捨てることは難しいかと思います。

アプリケーションの実装が、仕様から逸脱した「間違っている」フォントを切り捨てることが難しい場合があることは理解します。しかし、だからといって、そのような実装間の互換性のために、「間違っている」内容を元の仕様に反映させて、「間違って」いないないようにさせる、というのは本末転倒ではないでしょうか。「間違っている」フォントの存在を現実として許容する必要があるのであれば、そのような「間違っている」フォントを許容するアプリケーションの実装もまた、現実として許容すればよいだけです。しかし、その運用上の現実的対応が必要だったとして、「間違っている」内容を仕様に反映させなければならない理由にはならないと思います。その理屈でいくと、どんな仕様や規格が作られても、それから逸脱した実装を誰かが作りさえすれば、それを仕様に反映させなければいけなくなります。また、実際に「間違っている」フォントが存在したとして、その数は相対的に極めて少ないことを考慮する必要があります。さらに、仕様を改善するのであればそれらの、ごく少数の「間違っている」フォントの数を、将来的には低減させて最終的にはゼロにするための改善でなければならないと考えます。

村田さんwrote:
> paltがなければkernも適用しないという規則がCJK全角文字のときには
> 存在すると主張しているわけですね。私が山本さんのメールから
> 読み取った内容とは違うので、山本さんに確認をお願いします。

以前の、メールで、'palt'がなくて'kern'だけがある日本語フォントを作って、それが使えるなら、そうすれば良いだけではないか、というようなことを書いたかもしれません。その意図は、「間違っている」フォントがありえて、しかも現実にあるのであれば、それを切り捨てないアプリケーションの実装があったとしても、それもまた現実として許容できるという意味で書きました。ただ、その時も、それだけでなく、同じことを達成する方法として、字幅やサイドベアリングを一切書き換えないダミー的な'palt'と実際に必要なカーニングの情報を入れた'kern'をもつフォントを作ることは可能ではないかとも書きました。(この方法が実際に現実のアプリケーションの実装上で期待通りに動くかどうかはわかりませんが、理屈の上では可能なので述べた次第です。)この方法が使えれば、無意味な'palt'を付け足すだけで「間違っている」フォントが「間違っていない」フォントに変わります。

Nat, please add your comments and correct any points in my comments, as necessary. Thanks.

山本
アドビ

From: MURATA Makoto <eb2m-mrt@asahi-net.or.jp>
Sent: Friday, April 14, 2023 5:35 AM
To: Koji Ishii <kojii@chromium.org>
Cc: Taro Yamamoto <tyamamot@adobe.com>; 木田泰夫 <kida@mac.com>; Nat McCully <nmccully@adobe.com>; Shinyu MURAKAMI <murakami@vivliostyle.org>; 敏 小林 <binn@k.email.ne.jp>; JLReq TF 日本語 <public-i18n-japanese@w3.org>
Subject: Re: CJKフォントのpalt(詰め組)とkernの関係


EXTERNAL: Use caution when clicking on links or opening attachments.




村田さん、互換性の問題がある場所は、paltを持つCJKフォントで、太郎さんの意図に沿ったフォントにおいては、kernの解釈を以下のようにする必要があります(私が誤解していなければ、ですが。)

  *   適用対象がCJK全角文字である場合には、paltも指定されていれば適用するが、そうでない場合には適用しない
  *   適用対象がそれ以外の場合には、常に適用する
このルールを仕様化するために、「CJK全角文字である」という定義が必要になる、というのが私の理解です。

paltがなければkernも適用しないという規則がCJK全角文字のときには
存在すると主張しているわけですね。私が山本さんのメールから
読み取った内容とは違うので、山本さんに確認をお願いします。

村田 真

Received on Friday, 14 April 2023 02:24:06 UTC