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

I forgot to say one thing.

John Stuart Mill argued that "The only
purpose for which power can be rightfully
exercised over any member of a civilized
community, against his will, is to prevent
harm to others."  As a standardization
expert, I would like to point out that the
same applies to standardization. For example,
OFF does not have to prevent ugly fonts.

Regards,
Makoto

2023年4月16日(日) 11:15 MURATA Makoto <eb2m-mrt@asahi-net.or.jp>:

> Nat,
>
> Do you agree on my (3), shown below?
>
> (3) When a font specifies the 'kern'
> feature as well as the 'palt' feature for
> a given glyph, the abstract font engine
> shall not use the 'kern' feature for
> rendering this glyph without using the
> 'palt' feature as well.
>
> Regards,
> Makoto
>
> 2023年4月16日(日) 10:31 Nat McCully <nmccully@adobe.com>:
>
>> Answers inline (on my phone anyway)
>>
>> —Nat
>> ------------------------------
>> *From:* Taro Yamamoto <tyamamot@adobe.com>
>> *Sent:* Saturday, April 15, 2023 8:09 PM
>> *To:* Nat McCully <nmccully@adobe.com>; Shinyu MURAKAMI <
>> murakami@vivliostyle.org>; Makoto MURATA <eb2m-mrt@asahi-net.or.jp>
>> *Cc:* Koji Ishii <kojii@chromium.org>; 木田泰夫 <kida@mac.com>; 敏 小林 <
>> binn@k.email.ne.jp>; JLReq TF 日本語 <public-i18n-japanese@w3.org>
>> *Subject:* RE: CJKフォントのpalt(詰め組)とkernの関係
>>
>>
>> Nat,
>>
>>
>>
>> Thank you for your response, but your descriptions seemed to be a bit
>> vague and incomplete.
>>
>> Does the following scheme that I made based on what you wrote matches
>> your idea?
>>
>>
>> *Given condition:* The user wants to apply pair-kerning to a text.
>>
>> *[BTW, I think it’s risky to automatically kern Japanese characters by
>> default, even if the font used has both the ‘palt’ and ‘kern’ information
>> sufficiently.]*
>>
>>
>>
>> *Nat: I agree. My description is not for any default behavior. It is
>> intended for when the user chooses to turn kerning on for the text. For cjk
>> the default should be "only kern Latin". *
>>
>>
>> *On the font side:*
>>
>> If ‘palt’ information exists:
>>
>> Then:
>>
>> The ‘palt’ information is applied to the text, so that the text becomes
>> pseudo-proportional.
>>
>> *                        It is assumed that the font is a Japanese font.*
>>
>> If ‘kern’ information exists:
>>
>> Then:
>>
>> The ‘kern’ information is applied, and the text is correctly set kerned.
>>
>>                         Else:
>>
>> The text is set pseudo-proportionally with the ‘palt’ information.
>> But, because of the lack of the ‘kern’ information, kerning is not
>> applied.
>>
>>             Else:
>>
>> If ‘kern’ information exists:
>>
>> Then:
>>
>> The ‘kern’ information is applied, and the text is correctly set kerned.
>>
>> *                                    It is assumed that the font is a
>> Latin proportional font or a Japanese true-proportional font.*
>>
>>                         Else:
>>
>> Neither the ‘palt’ nor the ‘kern’ information is available in the font.
>> No alternative metrics and pair-kerning adjustments are made to the
>> characters.
>>
>> *                                    Any kind of fonts can reach this
>> point unless alternative metrics and/or pair-kerning are/is supported.*
>>
>>
>>
>> *Nat: the above seems correct to me. *
>>
>>
>>
>> *Recommendation to the font maker:*
>>
>> *            Font makers should set kerning pair values based on
>> proportional widths not monospaced widths. Japanese fonts including
>> monospaced characters to which alternative proportional metrics or
>> pair-kerning may be applied optionally with the user’s explicit instruction
>> must have alternative metrics data for the ‘palt’ feature, and if
>> pair-kerning also may be applied, such fonts must have pair-kerning data
>> for the ‘kern’ feature.*
>>
>>
>>
>> *Nat: this is the key understanding all font makers should have about how
>> much kern they set on pairs of Kana etc that are normally monospaced by
>> default. I hope they understand the engines assume kern pair amounts are
>> deltas off the proportional widths not the monospaced widths. The engines
>> first apply palt so the kern amounts set in the kern pairs of Kana etc are
>> correct. *
>>
>>
>> *On the text engine side:*
>>
>>             It applies the ‘palt’ feature.
>>
>>             If ‘palt’ information does NOT exist in the font:
>>
>>             Then:
>>
>>                         The ‘palt’ feature applied does not work.
>>
>>                         (Okay, it’s not surprising . . . this font seems
>> to be a proportional font.)
>>
>>             Else:
>>
>>                         The ‘palt’ feature applied works.
>>
>>                         (Hmm . . . this font seems to be a Japanese font.
>> Now, the characters become proportional!)
>>
>>
>>
>>             It applies the ‘kern’ feature.
>>
>>             If ‘kern’ information does NOT exist in the font:
>>
>>             Then:
>>
>>                         The ‘kern’ feature applied does not work.
>>
>>                         (Unfortunately, I have to give up kerning. . . .)
>>
>>             Else:
>>
>>                         The ‘kern’ feature applied works.
>>
>>                         (Done!)
>>
>>
>>  *Nat: the above seems correct to me. *
>>
>>
>> *Recommendation to the text engine maker:*
>>
>> *Engines must apply proportional widths and kerning pairs no matter what
>> font is applied.*
>>
>>
>>
>> *Nat: to be clear, this is in the case of auto kern everything and not
>> the default behavior for cjk. *
>>
>>
>> *Question 1:*
>>
>> I just want to confirm one point here. So, if *kerning* is applied to a
>> text by using a Japanese font with ‘palt’ but without ‘kern’ information,
>> only ‘palt’ is applied, and the affected characters become proportional. *I
>> think this is reasonable*, but is this understanding correct
>>
>>
>> *Nat: in Adobe apps "auto" or "metrics" kern means apply both palt and
>> kern. "Latin-only kern" mode means apply palt and kern only to non-CJK
>> (non-SJIS 由来の全角). With those features applied we ask the font engine for
>> glyphs and positions. If the font lacks one of those features it is
>> ignored. *
>>
>>
>>
>> *Question 2:*
>>             All the assumptions and recommendations written above in*
>> blue italicized lines *can be just *informative* for the standard, and
>> also some of them are just what we are usually expecting or assuming, but
>> all these are fine as they themselves are. But in this discussion, *the
>> latest question is whether the following points written by Mr. Murakami
>> based on Mr. Murata’s previous  explanations are all reasonable or not.*
>> What do you think?
>>
>> Mr. Murakami wrote:
>>
>> 個々のグリフごとに、
>>
>> ・そのグリフにpaltがない場合、kernを有効にする
>>
>> ・そのグリフにpaltがある場合、paltを有効にしないかぎりkernを有効にしない
>>
>> なるほどこれであれば、CJK全角かどうかの判定は要りません。
>>
>>
>>
>> これをブラウザに実装するのは難しいでしょうか?
>>
>>
>> *Nat: we generally do not check the font for the presence of a feature to
>> make decisions about other features. So, the engine will apply palt if the
>> user chooses "proportional widths". If the user chooses a kerning mode, the
>> engine applies palt and kern both. Engines that do not apply palt whenever
>> they apply kern are not correct according to the standard and to our
>> understanding of kern amounts set in the kern feature for cjk glyph pairs. *
>>
>>
>>
>> Regards,
>>
>>
>>
>> --Taro
>>
>> 山本
>>
>> アドビ
>>
>>
>>
>> Normally the font determines the behavior and the text engine applies
>> features according to text attributes or controls set by the user.
>>
>>
>>
>> User: I want all text kerned. Turn on Auto Kerning
>>
>> Engine: Auto Kerning UI results in turning on palt and kern (vpal and
>> vkrn in vertical), so any font in the selection will be proportional and
>> also kerned.
>>
>> Layout step: Font is queried for glyphs, positions according to having
>> palt and kern selected.
>>
>>
>>
>> So, the advice for font makers is different from the advice for engine
>> developers. Engines must apply proportional widths and kerning pairs no
>> matter what font is applied. Font makers must set kerning pair values based
>> on proportional widths not monospaced widths. If the font is already
>> proportional there is no palt feature present so the palt set by the engine
>> is ignored. But if the user switches fonts the palt feature is applied and
>> the text will kern correctly.
>>
>>
>>
>> —Nat
>>
>>
>>
>
>
> --
> Regards,
> Makoto
>


-- 
Regards,
Makoto

Received on Sunday, 16 April 2023 02:19:15 UTC