<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#1E66AE;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#1E66AE;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
span.cat
        {mso-style-name:cat;}
span.ct
        {mso-style-name:ct;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
p.attach, li.attach, div.attach
        {mso-style-name:attach;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:7.0pt;
        font-family:"Arial","sans-serif";}
p.bold, li.bold, div.bold
        {mso-style-name:bold;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:8.0pt;
        font-family:"Arial","sans-serif";
        font-weight:bold;}
p.green, li.green, div.green
        {mso-style-name:green;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:#628C2A;}
p.replbq, li.replbq, div.replbq
        {mso-style-name:replbq;
        margin:2.4pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.ad, li.ad, div.ad
        {mso-style-name:ad;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.underline, li.underline, div.underline
        {mso-style-name:underline;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.yshortcuts
        {mso-style-name:yshortcuts;}
p.ad1, li.ad1, div.ad1
        {mso-style-name:ad1;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.ad2, li.ad2, div.ad2
        {mso-style-name:ad2;
        mso-margin-top-alt:auto;
        margin-right:0in;
        margin-bottom:6.0pt;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.underline1, li.underline1, div.underline1
        {mso-style-name:underline1;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        text-decoration:underline;}
span.yshortcuts1
        {mso-style-name:yshortcuts1;
        font-family:"Verdana","sans-serif";
        font-weight:bold;}
span.yshortcuts2
        {mso-style-name:yshortcuts2;
        font-family:"Verdana","sans-serif";
        font-weight:normal;}
span.EmailStyle36
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:1258052871;
        mso-list-template-ids:1520986234;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=EN-US link="#1E66AE" vlink="#1E66AE">

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Dear all,<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Please review the proposal from Sairus and Behdad, and voice your
opinions. Based on the concerns expressed by users and our prior discussions on
these threads - I believe it would be useful to include clarifications and/or
recommendation on the usage of kern table and GPOS-based kerning, interactions
between them, and recommended preferred solutions / best practices. I would
like to ask you to consider adding these clarifications in the current round of
spec corrections (making it part of the corrigendum document we are going to
put together by the end of this week (Japan time, +1 day). <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>If we reach a consensus on the suggested wording, I will add it
to the draft corrigendum. According to the ISO process, once the draft is
finalized it will be under three months approval ballot. We will have a chance
to review the suggested language and comment on it – modifying the text (or
even striking some parts of it) if necessary through the ballot comments. I
strongly suggest to consider adding clarifications related to kerning in the
current draft – it would be easy to modify it via the ballot process. Not
saying anything now is also an option, but it’s easier to change the language
of the existing published draft rather than add a completely new text later.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Thank you and best regards,<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Vladimir<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
mpeg-OTspec@yahoogroups.com [mailto:mpeg-OTspec@yahoogroups.com] <b>On Behalf
Of </b>Sairus Patel<br>
<b>Sent:</b> Tuesday, January 12, 2010 9:46 PM<br>
<b>To:</b> Behdad Esfahbod<br>
<b>Cc:</b> mpeg-OTspec@yahoogroups.com; multiple recipients of OpenType - sent
by<br>
<b>Subject:</b> RE: [mpeg-OTspec] Interaction between kern table and GPOS table<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>  <o:p></o:p></p>

<div id=ygrp-mlmsg>

<div id=ygrp-msg>

<div id=ygrp-text>

<p>Hello Behdad, <br>
<br>
> Doesn't this belong to the OpenType list though? <br>
<br>
I was hesitant to send it to both lists: I thought/hoped there would be
sufficient overlap by now, and didn't want to clog folks' Inboxes with
duplicates. But I'm happy to cc the OT list on this thread now, and perhaps in
the future err on the side of clogging Inboxes rather than leaving some folks
out of the discussion. <br>
<br>
> I'm leaning towards not applying 'kern' if the font has any 'GPOS' table
though. <br>
<br>
Reasons not to do as you suggest: <br>
1. We've seen fonts with "stub" or empty GPOS tables, I believe produced
by VOLT. If we do not apply the kern table in this case, no kerning would occur
in OT layout. <br>
2. MS had revised Arial and Times New Roman in Vista to add a GPOS table with
only non-kern features in it; the kern table remained. If we do not apply the
kern table in this case, no kerning would occur in OT layout. <br>
<br>
Best, <br>
Sairus <br>
<br>
<br>
-----Original Message----- <br>
From: Behdad Esfahbod [mailto:<a href="mailto:behdad.esfahbod%40gmail.com">behdad.esfahbod@gmail.com</a>]
On Behalf Of Behdad Esfahbod <br>
Sent: Tuesday, January 12, 2010 3:49 PM <br>
To: Sairus Patel <br>
Cc: <a href="mailto:mpeg-OTspec%40yahoogroups.com">mpeg-OTspec@yahoogroups.com</a>
<br>
Subject: Re: [mpeg-OTspec] Interaction between kern table and GPOS table <br>
<br>
Hi Sairus, <br>
<br>
Thanks for bringing this up. Doesn't this belong to the OpenType list though? <br>
<br>
I'm leaning towards not applying 'kern' if the font has any 'GPOS' table
though. <br>
<br>
That said, from a technical point of view, it's also worth noting that GPOS is <br>
applied on the logical glyph string while 'kern' is applied on the visual <br>
string (ie. after reversing for RTL runs). <br>
<br>
behdad <br>
<br>
On 01/12/2010 06:31 PM, Sairus Patel wrote: <br>
> <br>
> <br>
> Reason: <br>
> <br>
> Sometimes a font can have both a kern table and a GPOS table, and the <br>
> GPOS may or may not have a kern feature for some scripts and language <br>
> systems. How is an OFF layout engine to decide which source of kern <br>
> data, if any, to apply? This proposal specifies this. Question: It is <br>
> proposed to be in the Recommendations section; is there a better place <br>
> in the specification for something like this? <br>
> <br>
> Proposal: <br>
> <br>
> ADD the following paragraphs to the end of the 'kern' Table sub-section <br>
> in the Recommendations section: <br>
> <br>
> When a kern table and GPOS table are both present in a font, and an OFF <br>
> layout engine is requested to apply kerning to a run of text of a <br>
> particular script and language system: (a) If the number of kern feature <br>
> lookups in the resolved language system in the GPOS table is zero, then <br>
> the kern table must be applied, followed by any remaining GPOS features <br>
> requested. (b) If the number of kern feature lookups in the resolved <br>
> language system in the GPOS table is non-zero, then all GPOS lookups, <br>
> including the kern lookups, must be applied in the usual way and the <br>
> kern table data ignored. <br>
> <br>
> If a kern table but no GPOS table is present in the font, then an OFF <br>
> layout engine must apply the kern table to the text, regardless of the <br>
> resolved language system of the text. <br>
> <br>
> If compatibility with legacy environments is not a concern, vendors are <br>
> encouraged to use the GPOS table, and not the kern table, for kerning. <br>
> <br>
> Sairus <br>
> <br>
> <o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='color:white'><o:p></o:p></span></p>

</div>

</div>

</div>

</body>

</html>