<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:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" 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:"Cordia New";
panose-1:2 11 3 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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",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">
<div class="WordSection1">
<p class="MsoNormal"><a href="https://github.com/MicrosoftDocs/typography-issues/issues/77">https://github.com/MicrosoftDocs/typography-issues/issues/77</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The notation “**” is not understood by some readers. It was reported by one as an error. The spec needs to be unambiguously interpretable by all.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Peter<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Behdad Esfahbod <behdad@behdad.org> <br>
<b>Sent:</b> Sunday, August 30, 2020 7:45 PM<br>
<b>To:</b> Peter Constable <pgcon6@msn.com><br>
<b>Cc:</b> MPEG OT Spec list (mpeg-otspec@lists.aau.at) <mpeg-otspec@lists.aau.at><br>
<b>Subject:</b> Re: [MPEG-OTSPEC] exponentiation (was RE: "font directory" / "offset table" / "table directory"<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<div>
<p class="MsoNormal">On Sun, Aug 30, 2020, 6:53 PM Peter Constable <<a href="mailto:pgcon6@msn.com">pgcon6@msn.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">
<p class="MsoNormal">This describes symbols used in various languages:<br>
<br>
<a href="https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FExponentiation%23In_programming_languages&data=02%7C01%7C%7C6cc6c9ffb7154a51002508d84d57e03f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637344387099775763&sdata=lCnbwtaqMjRC7LHyKu0CsjUehHIJJYRKs4VbRvv%2BOm4%3D&reserved=0" target="_blank">https://en.wikipedia.org/wiki/Exponentiation#In_programming_languages</a><br>
<br>
There isn't a perfect answer. I think the best answer is whatever would be most intuitive / less likely to be mis-interpreted.<o:p></o:p></p>
</blockquote>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Which happens to be "**". What's the problem again?<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>
<div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><br>
-----Original Message-----<br>
From: Peter Constable <<a href="mailto:pgcon6@msn.com" target="_blank">pgcon6@msn.com</a>>
<br>
Sent: Sunday, August 30, 2020 5:43 PM<br>
To: Peter Constable <<a href="mailto:pgcon6@msn.com" target="_blank">pgcon6@msn.com</a>>; Laurence Penney <<a href="mailto:lorp@lorp.org" target="_blank">lorp@lorp.org</a>>; MPEG OT Spec list (<a href="mailto:mpeg-otspec@lists.aau.at" target="_blank">mpeg-otspec@lists.aau.at</a>)
<<a href="mailto:mpeg-otspec@lists.aau.at" target="_blank">mpeg-otspec@lists.aau.at</a>><br>
Subject: exponentiation (was RE: [MPEG-OTSPEC] "font directory" / "offset table" / "table directory"<br>
<br>
Separate topic:<br>
<br>
In the description of cmap format 4, "**" is used as an exponentiation operator in the description of the searchRange field, but it appears some younger readers don't recognize that notation from older programming languages. So, I different notation should
be used, preferably one that would be readily understood by readers who might or might not be familiar different language. (This will apply also to description of a similar field in the table directory (aka offset table).)<br>
<br>
One possibility is to use pow(). E.g., <br>
<br>
2 * pow(2, floor(log2(segCount)))<br>
<br>
<br>
Another is to use "^". E.g., <br>
<br>
2 * (2 ^ floor(log2(segCount)))<br>
<br>
(I'd keep the extra parens to avoid any uncertainty regarding operator precedence.)<br>
<br>
<br>
There may be other possibilities.<br>
<br>
Recommendations?<br>
<br>
<br>
Peter<br>
<br>
-----Original Message-----<br>
From: mpeg-otspec <<a href="mailto:mpeg-otspec-bounces@lists.aau.at" target="_blank">mpeg-otspec-bounces@lists.aau.at</a>> On Behalf Of Peter Constable<br>
Sent: Sunday, August 30, 2020 5:32 PM<br>
To: Laurence Penney <<a href="mailto:lorp@lorp.org" target="_blank">lorp@lorp.org</a>>; MPEG OT Spec list (<a href="mailto:mpeg-otspec@lists.aau.at" target="_blank">mpeg-otspec@lists.aau.at</a>) <<a href="mailto:mpeg-otspec@lists.aau.at" target="_blank">mpeg-otspec@lists.aau.at</a>><br>
Subject: Re: [MPEG-OTSPEC] "font directory" / "offset table" / "table directory"<br>
<br>
I had considered "^", but that is bitwise XOR in C, Python and other languages du jour. I'm open to input, though.<br>
<br>
(This is yet another topic.)<br>
<br>
-----Original Message-----<br>
From: mpeg-otspec <<a href="mailto:mpeg-otspec-bounces@lists.aau.at" target="_blank">mpeg-otspec-bounces@lists.aau.at</a>> On Behalf Of Laurence Penney<br>
Sent: Sunday, August 30, 2020 1:39 PM<br>
To: MPEG OT Spec list (<a href="mailto:mpeg-otspec@lists.aau.at" target="_blank">mpeg-otspec@lists.aau.at</a>) <<a href="mailto:mpeg-otspec@lists.aau.at" target="_blank">mpeg-otspec@lists.aau.at</a>><br>
Subject: Re: [MPEG-OTSPEC] "font directory" / "offset table" / "table directory"<br>
<br>
> On 30 Aug 2020, at 20:43, Peter Constable <<a href="mailto:pgcon6@msn.com" target="_blank">pgcon6@msn.com</a>> wrote:<br>
> <br>
> Separating the fingerprint from the rest of the structure would end up being messy in describing the organization of TTCs … it feels cleaner to say the offsets are to the table directory of each font resource, and that the font resource beings with sfntVersion.<br>
<br>
Yes, that makes sense.<br>
<br>
>> To avoid confusion it may be helpful to provide pseudocode for calculating them.<br>
> <br>
> There are similar fields in cmap format 4, and they are described with formulae. E.g., "2 × (2**floor(log2(segCount)))". Now, one of the issues opened on that chapter is that someone wasn't familiar with the Fortran "**" operator and so misunderstood the
intent. It seems like something less language specific is needed. Taking that in mind, something similar could be done here. E.g., "pow(floor(log2(numTables)), 2) × 16". Or include both prose description and formula.<br>
<br>
Good point, "**" is not clear to whippersnappers.<br>
<br>
BTW the two definitions can be made identical apart from the factors 16 (for table directory) and 2 (for cmap). Please also consider an asterisk (*) over the typographic multiply sign, unless the whole thing uses math typography, and also consider the ascii
circumflex (^) over pow().<br>
<br>
- Laurence<br>
<br>
_______________________________________________<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://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.aau.at%2Fmailman%2Flistinfo%2Fmpeg-otspec&data=02%7C01%7C%7C6cc6c9ffb7154a51002508d84d57e03f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637344387099785764&sdata=AUMOmAVAk8aEOoO%2BCvaXPbIwtOH%2B%2BcREu2jPRt%2FalBQ%3D&reserved=0" target="_blank">https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.aau.at%2Fmailman%2Flistinfo%2Fmpeg-otspec&data=02%7C01%7C%7Cab8f76cb75d54fc434d908d84d46be45%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637344313512313008&sdata=zOeGdidOuD3jmfkz5ABGblbmlkiNH%2FShfsj8kUPXJos%3D&reserved=0</a><br>
_______________________________________________<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://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.aau.at%2Fmailman%2Flistinfo%2Fmpeg-otspec&data=02%7C01%7C%7C6cc6c9ffb7154a51002508d84d57e03f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637344387099795754&sdata=Zpt42pjiDJ8r%2B9z9F8vR0lJHbfkycIKh3h9NSddwfsE%3D&reserved=0" target="_blank">https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.aau.at%2Fmailman%2Flistinfo%2Fmpeg-otspec&data=02%7C01%7C%7Cab8f76cb75d54fc434d908d84d46be45%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637344313512323001&sdata=9ujsTE%2BuUWHq1wwNHc1OZSipr9CUCVV9WN%2FE3gRFwEc%3D&reserved=0</a><br>
_______________________________________________<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://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.aau.at%2Fmailman%2Flistinfo%2Fmpeg-otspec&data=02%7C01%7C%7C6cc6c9ffb7154a51002508d84d57e03f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637344387099815748&sdata=BPF8%2BZJ2SsBJ5Pw6OfJsYSGFJ7zqaUdAhTWEvFFHPio%3D&reserved=0" target="_blank">https://lists.aau.at/mailman/listinfo/mpeg-otspec</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</div>
</div>
</body>
</html>