<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body>
<div>
<div dir="ltr">
<div dir="ltr">Thanks for the comments. </div>
<div dir="ltr"><br>
</div>
<div dir="ltr">Adobe apps do implement palt and kern together when you select “metrics” kerning (also called “auto”. Fonts that set kerning values on kana glyphs set the kern amount as a delta from the ‘palt’ widths, so it actually would be incorrect only to
 turn ‘kern’ without also turning on ‘palt’. However this is problematic as a default value for Japanese, so we defined a new “Roman only kerning” setting that is the default and only kerns non-CJK glyphs and leaves CJK monospaced. </div>
<div dir="ltr"><br>
</div>
<div dir="ltr">Most applications set kerning on by default. If you do not do the above complex thing the Japanese fonts that have kerning values for kana glyphs will not kern enough, and will not be monospaced by default, which makes it difficult to get a quality
 or desired result out of the box. </div>
</div>
</div>
<div id="ms-outlook-mobile-signature">
<div><br>
</div>
<div style="direction: ltr;">—Nat</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> mpeg-otspec <mpeg-otspec-bounces@lists.aau.at> on behalf of Peter Constable via mpeg-otspec <mpeg-otspec@lists.aau.at><br>
<b>Sent:</b> Wednesday, February 21, 2024 5:04:19 PM<br>
<b>To:</b> Josh Hadley <johadley@adobe.com>; mpeg-otspec@lists.aau.at <mpeg-otspec@lists.aau.at><br>
<b>Cc:</b> kida@mac.com <kida@mac.com><br>
<b>Subject:</b> Re: [MPEG-OTSPEC] OpenType 'palt' and 'kern' Documentation Revision Proposal</font>
<div> </div>
</div>
<style>
<!--
@font-face
        {font-family:"Cambria Math"}
@font-face
        {font-family:Calibri}
@font-face
        {font-family:Aptos}
p.x_MsoNormal, li.x_MsoNormal, div.x_MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif}
a:link, span.x_MsoHyperlink
        {color:#0563C1;
        text-decoration:underline}
span.x_EmailStyle19
        {font-family:"Aptos",sans-serif;
        color:windowtext}
.x_MsoChpDefault
        {font-size:10.0pt}
@page WordSection1
        {margin:1.0in 1.0in 1.0in 1.0in}
div.x_WordSection1
        {}
-->
</style>
<div lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<p><span style="font-size:14px; color:rgb(0,0,0)"><strong>EXTERNAL: Use caution when clicking on links or opening attachments.</strong></span></p>
<p><br>
</p>
<div>
<div class="x_WordSection1">
<p class="x_MsoNormal"><span style="font-family:"Aptos",sans-serif">This was reported last fall as an issue on the OpenType spec:</span></p>
<p class="x_MsoNormal"><span style="font-family:"Aptos",sans-serif"> </span></p>
<p class="x_MsoNormal"><a href="https://github.com/MicrosoftDocs/typography-issues/issues/1069" originalsrc="https://github.com/MicrosoftDocs/typography-issues/issues/1069" shash="qt0Whpynr2IMCDWfHf1UaY1rTQ01+za2a5VUcer6CSVHQ7sWbcxIeQRn9L/977bcgaWjNskoqR8zqDCzNVlKbgE8of4ReHJtfPsYFieag6C/uKeY2kCTGoiKN0l7AhsnydtMMnJTfzGXbWAW9Z09ePY8LHNtPIMj7KBRpdp2fds=">'kern'
 and 'palt' UI suggestions and feature interaction descriptions are confusing for CJK · Issue #1069 · MicrosoftDocs/typography-issues (github.com)</a></p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">I’ve added comments in the discussion for that issue.</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">I’m leery about feature descriptions recommending complex feature-application behaviours that are unlikely to get implemented in applications. I have that concern in this case.</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">The ‘palt’ feature was defined by Adobe in early 1998. The earliest description (OpenType 1.1) didn’t mention interaction with ‘kern’. Here’s an excerpt:</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">—————</p>
<p class="x_MsoNormal">Tag: "kern"</p>
<p class="x_MsoNormal">…</p>
<p class="x_MsoNormal">UI suggestion: This feature should be active by default. Applications may wish to allow users to add further manually-specified adjustments to suit specific needs and tastes.</p>
<p class="x_MsoNormal">Script/language sensitivity: None.</p>
<p class="x_MsoNormal">Feature interaction: May be used in addition to any other feature.</p>
<p class="x_MsoNormal">…</p>
<p class="x_MsoNormal">Tag: "palt"</p>
<p class="x_MsoNormal">…</p>
<p class="x_MsoNormal">UI suggestion: This feature would be off by default.</p>
<p class="x_MsoNormal">Script/language sensitivity: Used mostly in CJKV fonts.</p>
<p class="x_MsoNormal">Feature interaction: This feature overrides the results of all other width features.</p>
<p class="x_MsoNormal">—————</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">In OpenType 1.2 (October 1998), the relationship to ‘kern’ was recognized (emphasis added):</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">—————</p>
<p class="x_MsoNormal">Feature interaction: This feature overrides the results of all other glyph-width features.
<b>Applying this feature should also activate the kern feature.</b></p>
<p class="x_MsoNormal">—————</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">Some of the early Adobe feature descriptions are worded in ways that might suggest a wrong expectation that features in a font can control activation of other features in the font. I don’t know if that’s what the author of that description
 was assuming at the time. It’s worth pointing out, however, that the desired outcome of the above recommendation doesn’t require activating any other feature when ‘palt’ is activated: the lookups that implement kerning actions could simply be referenced by
 the ‘palt’ feature table directly.</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">By OpenType 1.3 (2000?), more subtle interaction between ‘kern’ and ‘palt’ was called out, though it appears the idea was emerging subtle that interaction between ‘palt’ and ‘kern’ could be more subtle, though the feature descriptions
 weren’t consistent with each other:</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">—————</p>
<p class="x_MsoNormal">Tag: 'kern'</p>
<p class="x_MsoNormal">…</p>
<p class="x_MsoNormal"><i>UI suggestion:</i> This feature should be active by default for horizontal text setting. Applications may wish to allow users to add further manually-specified adjustments to suit specific needs and tastes.</p>
<p class="x_MsoNormal">…</p>
<p class="x_MsoNormal"><i>Feature interaction:</i> If 'kern' is activated, 'palt' must also be activated if it exists. (<b>If 'palt' is activated, there is no requirement that 'kern' must also be activated.</b>) May be used in addition to any other feature
 except those which result in fixed (uniform) advance widths (e.g. fwid, halt, hwid, qwid and twid)</p>
<p class="x_MsoNormal">…</p>
<p class="x_MsoNormal">Tag: 'palt'</p>
<p class="x_MsoNormal">…</p>
<p class="x_MsoNormal"><i>Feature interaction:</i> This feature is mutually exclusive with all other glyph-width features (e.g. fwid, halt, hwid, pwid, qwid and twid), which should be turned off when it's applied.
<b>Applying this feature should activate the kern feature.</b> See also vpal.</p>
<p class="x_MsoNormal">—————</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">By OpenType 1.5 (May 2008) the ‘palt’ description was updated to match interaction described in the ‘kern’ description.</p>
<p class="x_MsoNormal">—————</p>
<p class="x_MsoNormal">Tag: 'palt'</p>
<p class="x_MsoNormal">…</p>
<p class="x_MsoNormal"><i>Feature interaction:</i> This feature is mutually exclusive with all other glyph-width features (e.g. fwid, halt, hwid, qwid and twid), which should be turned off when it’s applied.
<b>If palt is activated, there is no requirement that kern must also be activated.</b> If kern is activated, palt must also be activated if it exists. See also vpal.</p>
<p class="x_MsoNormal">—————</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">Since 2008, these feature descriptions have not changed in these regards.</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">So, it’s over 25 years since Adobe first registered ‘palt’, and at least 15 years since they recommended applications implement more subtle interaction between ‘palt’ and ‘kern’.
</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">Now it’s proposed that applications should implement behaviour that’s even more involved, detecting whether glyphs are proportional or monospace and
<i>requiring </i>that 'kern' “[by] default shall not be activated on monospaced glyphs, but may be activate on any proportional-width glyphs”. I’m not even sure how an app is expected to distinguish monospaced glyphs from proportional glyphs.
</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">But even without this proposed revision, there’s been an assumption for over 15 years that apps would have some interaction between application of ‘palt’ and of ‘kern’. Does any app today implement that?
</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">If any app does, I expect Adobe, which proposed ‘palt’, would have done so at some point in the past 25 years. I don’t see a way in InDesign to control ‘palt’—here are the options I see in InDesign with the Yu Gothic font, which implements
 both ‘palt’ and ‘kern’ in GPOS under the default language system for ‘hani, ‘kana’, ‘latn’ and other scripts:</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"><span style=""><img border="0" width="171" height="338" id="x_Picture_x0020_1" src="cid:image001.png@01DA64ED.6C963120" alt="A screenshot of a computer

Description automatically generated" style="width:1.7833in; height:3.525in"></span></p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">PhotoShop appears to be exposing ‘palt’ in UI, but it’s set on with no way to toggle it off:</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"><span style=""><img border="0" width="297" height="301" id="x_Picture_x0020_2" src="cid:image002.png@01DA64EE.96A0DE10" alt="A screenshot of a computer menu

Description automatically generated" style="width:3.0916in; height:3.1333in"></span></p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">In both apps, it’s not exactly clear to me how kerning UI interacts with the ‘kern’ feature. By default kerning is set to “Metrics”, which I’m guessing uses ‘kern’ (and I assume it’s deactivated by selecting the “0” option):</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"><span style=""><img border="0" width="116" height="265" id="x_Picture_x0020_4" src="cid:image004.png@01DA64F0.61D3A580" alt="A screenshot of a computer

Description automatically generated" style="width:1.2083in; height:2.7583in"></span></p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">If that’s the case, then the default is that both ‘palt’ and ‘kern’ are activated by default for both Latin and CJK runs, with no way to disable ‘palt’ (that I’ve found).</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"><span style=""><img border="0" width="411" height="353" id="x_Picture_x0020_3" src="cid:image003.png@01DA64EF.0C75A990" style="width:4.2833in; height:3.675in"></span></p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">Peter Constable</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"><span style="font-family:"Aptos",sans-serif"> </span></p>
<div>
<div style="border:none; border-top:solid #E1E1E1 1.0pt; padding:3.0pt 0in 0in 0in">
<p class="x_MsoNormal"><b><span style="">From:</span></b><span style=""> mpeg-otspec <mpeg-otspec-bounces@lists.aau.at>
<b>On Behalf Of </b>Josh Hadley via mpeg-otspec<br>
<b>Sent:</b> Wednesday, February 21, 2024 11:45 AM<br>
<b>To:</b> mpeg-otspec@lists.aau.at<br>
<b>Cc:</b> kida@mac.com<br>
<b>Subject:</b> [EXTERNAL] [MPEG-OTSPEC] OpenType 'palt' and 'kern' Documentation Revision Proposal</span></p>
</div>
</div>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">(I’m posting this on behalf of Nat McCully for discussion at the next AHG meeting; he’s unavailable right now but wanted to get it on the agenda)</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">Vlad & AHG members,</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">Please consider the proposal posted at <a href="https://github.com/jcitpc/CJKFont/blob/main/docs/palt_kern.md" originalsrc="https://github.com/jcitpc/CJKFont/blob/main/docs/palt_kern.md" shash="An83F6c33ExPJr2u/duUrgX8kBzlkFMeR/UPEp2Sa/nerJlyZ6xHbTo/I30FnODk5m1QCgmRCs3WQRrxDlOYG89KcQGk9bk42v8lH8lNZuH03IFmIgiWAiMbdoydFx1nPQQv8fV2fopm+BB146fdB2ftnJZrVKiMFpNmN1iQXjc=">
https://github.com/jcitpc/CJKFont/blob/main/docs/palt_kern.md</a> for addition to the next AHG meeting agenda.</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">Thanks,</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">Josh Hadley</p>
<p class="x_MsoNormal"> </p>
</div>
</div>
</div>
</body>
</html>