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

フォント分科会の方もご意見あると思うので日本語で。

# 木田さん、このMLってフォント分科会の方も入っていらっしゃるのでしょうか?
# 一応、太郎さんを別に入れておきます

以前にフォント分科会で少し話題になったpaltとkernの関係について、CSSWGに上がっています。
[css-fonts] Improve implementation guidance for font-kerning #7958
<https://github.com/w3c/csswg-drafts/issues/7958>

今回気が付きましたが、同じ件についてNatからも以前に上げてあるようです。
[css-fonts-4] font-kerning:normal and CJK fonts with kerning pairs for
fullwidth not well defined #6723
<https://github.com/w3c/csswg-drafts/issues/6723>

私なりの理解では要点は、OpenType "palt" には以下の記述がある
<https://learn.microsoft.com/en-us/typography/opentype/spec/features_pt#tag-palt>
ことから来ているようです。

If 'kern' is activated, 'palt' must also be activated if it exists.
"kern" がオンなら "palt" もオンにしなければならない


素直に従うとしたら、現在のブラウザーではカーニングがオンなので、"palt" もオン、ということになります。ただ、デフォルトで "palt"
オン(つまり詰め組)というのは望まれる挙動ではない、というのはご同意いただけるのではないかと思っています。

もうちょっと細かく読んでいくと、いくつか細かい違いが見えてきます。
まず、Natは「この条件は全角文字(fullwidth CJK glyphs)に対してのみ適用される」と書いています。
また、Mozillaにこの件を上げた人は「CJK文字に対してはカーニングはデフォルトでオフであるべきである(for CJK text, kerning
should not be used by default
<https://github.com/w3c/csswg-drafts/issues/7958#issuecomment-1293408331>
)」という意見のようです。
これを受けてMozillaでは、このルールを「文字のUnicodeスクリプトがCJKだったら」かつ「カーニングがデフォルトの『自動』だったら」適用する、と解釈した模様です。ページ製作者がカーニングを「自動」でなく「オン」に設定したら、"palt"
もオン(詰め組)に切り替えるようです。

これについてJLTFとしての意見をまとめられたらと思っています。

いくつかの異なる観点があると思います。以前に太郎さんが「日本語全角文字の "kern" は "palt"
がオンの前提で設計している」というお話をされていましたので、少なくともAdobeフォントにおいては、今日現在、フォント製作者の意図通りに表示されていない可能性があります。

逆に、以前にいくつかのフォントを調べた時に、「す。」などにカーニングを設定しているフォントがありました。こういったフォントは、この変更を入れると、フォント製作者の意図通りに表示されなくなります。

また、ブラウザー以外に、OSや他のアプリをどうするか、という点も気になります。ブラウザーとOSや他のアプリで基本的な文字の表示が違うのは避けたいと私は思っていますし、他の方からも同様の意見を聞きます。

ちょと細かい技術的な話になりますが、Natの条件が、Mozillaの説明と微妙に異なるのも気になります。「全角文字(fullwidth CJK
glyphs)」というのを厳密にはどう判定するのか。簡単そうですが、今のOpenTypeでは厳密に定義されていないため、特にブラウザーに実装する観点で考えると、実は非常に難しい判定です。おそらくもっと下のレベルのOSレベル(DirectWrite/CoreText/HarfBuzz)に実装するか、Mozillaのように微妙に異なる簡易判定で済ませるか、のいずれかになるかと思います。

なんらかの方法を確立して、すべてのアプリで同じ表示になるようにするのか、OpenTypeやCSSの仕様を変更するリクエストを上げるのか、あるいは他のアプリやOSを含めるならどの仕様で議論するべきなのか、など様々な可能性を含め、まずは幅広い観点で色々ご意見いただけると幸いです。

よろしくお願いします。

Received on Thursday, 17 November 2022 08:57:04 UTC