- From: MURATA Makoto <eb2m-mrt@asahi-net.or.jp>
- Date: Sun, 16 Apr 2023 11:15:18 +0900
- To: Nat McCully <nmccully@adobe.com>
- Cc: Taro Yamamoto <tyamamot@adobe.com>, Shinyu MURAKAMI <murakami@vivliostyle.org>, Koji Ishii <kojii@chromium.org>, 木田泰夫 <kida@mac.com>, 敏 小林 <binn@k.email.ne.jp>, JLReq TF 日本語 <public-i18n-japanese@w3.org>
- Message-ID: <CALvn5EByvHx+G7HK87+jKC7z3kqD0Bwe1MHq6Pn7uKns_xnSCA@mail.gmail.com>
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
Received on Sunday, 16 April 2023 02:16:02 UTC