<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Ken,<div><br></div><div>My response are below.</div><div><br></div><div>Tony</div><div><br><div><div>On Apr 4, 2010, at 9:22 AM, Ken Lunde wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
<div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; ">
<span style="display:none"> </span>
<div id="ygrp-text"><p>Jim,<br>
<br>
You wrote:<br>
<br>
>>>>>> "KL" == Ken Lunde <<a href="mailto:lunde%40adobe.com">lunde@adobe.<wbr>com</a>> writes:<br>
> <br>
> KL> In any case, this brings up a good point in that when mapping from<br>
> KL> code points to glyphs, such as when the cmapOverride is invoked, there<br>
> KL> should be a distinction between GID and CID. Of course, CIDs matter<br>
> KL> only to CID-keyed fonts, which are typically CJK, and are<br>
> KL> PostScript-based. For CID-keyed fonts, as long as all of the CIDs are<br>
> KL> contiguous, GID equals CID. If even one CID is excluded, making the<br>
> KL> CIDs no longer contiguous, there is a GID/CID mismatch that starts<br>
> KL> from the first CID that is excluded.<br>
> <br>
> Yes, I should have thought of CID, too. For component fonts which are<br>
> CID keyed, it seems clear that any cmap override should use them rather<br>
> that use GIDs. Just for robustness' sake.<br>
<br>
I can go along with this. The main reason I suggested a separate attribute for CID, such as characterRefID, is because it is possible to query a CID-keyed OpenType/CFF font using GIDs or CIDs, and getting different results if the GIDs are not equal to CIDs. Making this distinction more explicit may have some merit.<br></p></div></div></div></div></blockquote><div><br></div>CID is a defunct encoding that only Adobe uses. Here we are concentrating on Unicode coverage thus I have unicode (character) to glyph mapping to override the cmap. The main idea is to be able to using a posing font specific cmap for the component. CID instead of glyphs sounds like a bit off, but may be an optionl override independent of the cmap-override.</div><div><br><blockquote type="cite"><div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; "><div id="ygrp-mlmsg" style="position:relative;"><div id="ygrp-msg" style="z-index: 1;"><div id="ygrp-text"><p>
<br>
> KL> the use of glyphRefID may make specifying the version of the<br>
> KL> ComponentDef font a required thing.<br>
> <br>
> I occurs to me that there isn't even any guarantee of GID consistancy<br>
> between different compiles of a given version of a font. That may<br>
> matter less for customers of commercial foundries and for customers/<br>
> users of binary distributions than for users of source distributions,<br>
> but it could still become an issue.<br>
> <br>
> And then there is the issue that fonts are occasionally updates without<br>
> chaning their version field.<br>
> <br>
> I have no idea how significant of an issue it will be in practice. It<br>
> may well compare to a cryto break which works in 2^110 time and/or space;<br>
> better than the 2^127 time a brute-force attach will average, but still<br>
> well beyond practical.<br>
> <br>
> Or it may lead to hordes of support calls.<br>
> <br>
> Probably somewhere in between. :)<br>
<br>
What David wrote echoes my feelings about this matter, specifically that version-control is very important, and fonts that use the same version number across multiple and differing instances of the same font can be considered malformed or otherwise defective.<br>
<br>
I can confidently state that all of the OpenType CJK fonts I have built thus far have unique version numbers, as expressed in the head.fontRevision field. Of course, I cannot speak for other type foundries.<br>
<br>
Simply making the version of the corresponding ComponentDef font resource a required attribute is the best that can probably be done, short of fingerprinting font resources outside the context of a version number.<br></p></div></div></div></div></blockquote><div><br></div>Ken, the key here is to NOT require the extra attributes.</div><div><br></div><div>If the designer of the splice font is require to be specific version, a version attribute should be added to the component description along with other attributes such as DSIG, checksum, finger-print, DNA-code-sequence..., the implementer can deal with the rest. </div><div><br></div><div>To the implementer, the art is in how to make the best result with less specifics. We should not mandate anything. One example I had in the past is people ask to just display some alphabets instead of boxes if you don't have the font (or any font?).</div><div><br></div><div><br><blockquote type="cite"><div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; "><div id="ygrp-mlmsg" style="position:relative;"><div id="ygrp-msg" style="z-index: 1;"><div id="ygrp-text"><p>
<br>
Regards<br>
<br>
-- Ken<br><img src="http://geo.yahoo.com/serv?s=97359714/grpId=12860955/grpspId=1706030389/msgId=454/stime=1270398160/nc1=4507179/nc2=3848643/nc3=5191955" width="1" height="1"> </p></div></div></div>
<div style="color: #fff; height: 0;"></div>
</div>
<!-- end group email -->
</blockquote></div><br></div><div><br></div><div>PS: There was a talk of the name types being a number rather than the name, this was simply in the merits of the name table specification of TrueType (OpenType) fonts, the enum value are identical to the id's in the name table. I meant to make a list of aliases but didn't quite get arround for that. It may be good to spell out the name type. </div></body></html>