<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 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Helvetica;
panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Aptos;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:12.0pt;
font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
font-size:10.0pt;
font-family:"Courier New";}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;
mso-ligatures:none;}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Aptos",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:11.0pt;
font-family:"Aptos",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></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 lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">It seems to me there’d at least be a compatibility boundary: newer fonts with 1:m cmap mappings wouldn’t produce desired results in older software unless the same effect were also implemented in GSUB lookups.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Peter<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> mpeg-otspec <mpeg-otspec-bounces@lists.aau.at>
<b>On Behalf Of </b>Behdad Esfahbod<br>
<b>Sent:</b> Tuesday, December 12, 2023 8:40 PM<br>
<b>To:</b> Ned Holbrook <ned@apple.com><br>
<b>Cc:</b> mpeg-otspec@lists.aau.at<br>
<b>Subject:</b> [EXTERNAL] Re: [MPEG-OTSPEC] Cmap format to map 1 char to multiple glyphs?<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Fair. I'll do some measurements and report back if I find something interesting.<o:p></o:p></p>
<div>
<p class="MsoNormal"><br clear="all">
<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal">behdad<br>
<a href="http://behdad.org/" target="_blank">http://behdad.org/</a><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Tue, Dec 12, 2023 at 4:01<span style="font-family:"Arial",sans-serif"> </span>PM Ned Holbrook <<a href="mailto:ned@apple.com">ned@apple.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal">My main concern with producing multiple glyphs is that it has substantial API and tooling implications.<o:p></o:p></p>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On Dec 12, 2023, at 10:57<span style="font-family:"Arial",sans-serif"> </span>AM, Behdad Esfahbod <<a href="mailto:behdad@behdad.org" target="_blank">behdad@behdad.org</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">On Tue, Dec 12, 2023 at 11:51 AM John Hudson <<a href="mailto:john@tiro.ca" target="_blank">john@tiro.ca</a>> wrote:<o:p></o:p></span></p>
</div>
<div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">I proposed that to the OT developer list a long while ago, and recall that Kamal had a similar idea, initially in terms of handling Unicode decompositions such that fonts would not need precomposed
diacritics. At the time, Microsoft thought it unlikely to get traction, as it implied significant engineering for unclear benefit, but perhaps the benefit is clearer now? As you say, being able to decompose a Unicode character to an arbitrary sequence of glyphs
is very useful for Arabic, and by-passes the need to handle such decompositions in GSUB prior to other shaping. <o:p></o:p></span></p>
<p><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">I suppose the question is whether there is a significant benefit to doing this outside of GSUB? — or, indeed, if there might be a reason it would be preferable in GSUB?<o:p></o:p></span></p>
<p><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">The inconsistency in dot handling in different joining forms of some Arabic characters means that one doesn’t always want to up-front decompose some characters to base grapheme and combining
dots, but those could be excluded from the cmap and passed to GSUB form decomposition in the joining form features. But that being the case, why not do it all in GSUB?<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">Thanks John. The main benefit in my opinion is not allocating a gid to every precomposed Unicode character, most of them Latin. The Arabic use-case is extra.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">b<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif"><o:p> </o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">JH<o:p></o:p></span></p>
<p><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">On 2023-12-12 9:04 am, Behdad Esfahbod wrote:<o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">Thank you everyone for the very productive meeting.<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">I like to also bring this issue up. If there is interest, I can work on it. I wrote in my reply to Peter earlier:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif"><o:p> </o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">This reminds me of another idea we discussed in, I think, 2019, from Monotype to introduce a `cmap` subtable that would map individual characters to sequences of glyphs.
Then the pre-composed Unicode characters wouldn't need to have their own glyphs. Back then we dropped the idea for backwards-compat reasons. But maybe we can pick it up now?</span></i><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif;color:#500050"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif;color:#500050">This is very useful for Arabic as well...<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif;color:#500050"><o:p> </o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">behdad<br>
<a href="http://behdad.org/" target="_blank">http://behdad.org/</a><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif"><o:p> </o:p></span></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>mpeg-otspec mailing list<o:p></o:p></pre>
<pre><a href="mailto:mpeg-otspec@lists.aau.at" target="_blank">mpeg-otspec@lists.aau.at</a><o:p></o:p></pre>
<pre><a href="https://lists.aau.at/mailman/listinfo/mpeg-otspec" target="_blank">https://lists.aau.at/mailman/listinfo/mpeg-otspec</a><o:p></o:p></pre>
</blockquote>
<pre>-- <o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>John Hudson<o:p></o:p></pre>
<pre>Tiro Typeworks Ltd <a href="http://www.tiro.com/" target="_blank">www.tiro.com</a><o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Tiro Typeworks is physically located on islands <o:p></o:p></pre>
<pre>in the Salish Sea, on the traditional territory <o:p></o:p></pre>
<pre>of the Snuneymuxw and Penelakut First Nations.<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>__________<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>EMAIL HOUR<o:p></o:p></pre>
<pre>In the interests of productivity, I am only dealing <o:p></o:p></pre>
<pre>with email towards the end of the day, typically <o:p></o:p></pre>
<pre>between 4PM and 5PM. If you need to contact me more <o:p></o:p></pre>
<pre>urgently, please use other means.<o:p></o:p></pre>
</div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">_______________________________________________<br>
mpeg-otspec mailing list<br>
<a href="mailto:mpeg-otspec@lists.aau.at" target="_blank">mpeg-otspec@lists.aau.at</a><br>
<a href="https://lists.aau.at/mailman/listinfo/mpeg-otspec" target="_blank">https://lists.aau.at/mailman/listinfo/mpeg-otspec</a><o:p></o:p></span></p>
</blockquote>
</div>
</div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">_______________________________________________<br>
mpeg-otspec mailing list<br>
</span><a href="mailto:mpeg-otspec@lists.aau.at" target="_blank"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">mpeg-otspec@lists.aau.at</span></a><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif"><br>
</span><a href="https://lists.aau.at/mailman/listinfo/mpeg-otspec" target="_blank"><span style="font-size:10.0pt;font-family:"Helvetica",sans-serif">https://lists.aau.at/mailman/listinfo/mpeg-otspec</span></a><o:p></o:p></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</blockquote>
</div>
</div>
</body>
</html>