[mpeg-OTspec] [OpenType] TrueType-flavored ".otf"

Ken Lunde lunde at adobe.com
Wed Jan 16 00:18:33 CET 2013


John,

The "First Four Glyphs in Fonts" section applies only to TrueType-flavor OpenType, and it explicitly states so.

At least in our OpenType/CFF CJK fonts, we have been mapping the entire low ASCII range, and not only the NULL and CR characters, to the glyph for "space" (U+0020), which happens to be CID+1 (GID+1) in our public ROSes. Here is some "spot" output from the Format 12 'cmap' subtable of one of our CJK fonts:

[00000000]=<\1> 
[00000001]=<\1> 
[00000002]=<\1> 
[00000003]=<\1> 
[00000004]=<\1> 
[00000005]=<\1> 
[00000006]=<\1> 
[00000007]=<\1> 
[00000008]=<\1> 
[00000009]=<\1> 
[0000000A]=<\1> 
[0000000B]=<\1> 
[0000000C]=<\1> 
[0000000D]=<\1> 
[0000000E]=<\1> 
[0000000F]=<\1> 
[00000010]=<\1> 
[00000011]=<\1> 
[00000012]=<\1> 
[00000013]=<\1> 
[00000014]=<\1> 
[00000015]=<\1> 
[00000016]=<\1> 
[00000017]=<\1> 
[00000018]=<\1> 
[00000019]=<\1> 
[0000001A]=<\1> 
[0000001B]=<\1> 
[0000001C]=<\1> 
[0000001D]=<\1> 
[0000001E]=<\1> 
[0000001F]=<\1> 
[00000020]=<\1> 

If I look at some of our non-CJK fonts, which are name-keyed, it seems that we don't map from U+0000 through U+001F at all, meaning that they are rendered using GID+0:

[0020]=<space>

And yes, I am aware that many of today's font editors force GIDs 0 through 3 to be present and with specific glyph names, but my point is that they may be doing so unnecessarily.

Regards...

-- Ken

On Jan 15, 2013, at 3:01 PM, "John Hudson " <john at tiro.ca> wrote:

> Message from OpenType list:
> 
> 
> On 15/01/13 2:47 PM, Ken Lunde wrote:
> 
>> Of course, there's no harm, but continuing to include such
>> recommendations, particularly when they're no longer being enforced,
>> doesn't seem to make much sense today. Consider converting
>> PostScript-based fonts into TrueType. I work primarily with very large
>> (in terms of the number of glyphs) CID-keyed fonts, and for such fonts,
>> only CID+0 (GID+0) is fixed. All other glyphs are arbitrary. The benefit
>> is that the GIDs can be preserved during the conversion process, which
>> allows many of the tables, such as GSUB, GPOS, and cmap to name a few,
>> to be used as-is. By enforcing GIDs 1 through 3, it requires that these
>> tables be touched. Preserving GIDs makes the conversion cleaner, and
>> *much* easier to test.
> 
> Just so I understand: you already had CID-keyed fonts in which only the 
> first glyph = .notdef restriction was implemented, prior to conversion 
> of the Adobe library to OpenType? I've wondered why Adobe decided to 
> make their OT fonts contrary to the then sfnt recommendation.
> 
> When we made the Adobe Arabic, Hebrew and Thai fonts, we found that the 
> Unicode cmaps were being written by VOLT in a way that presumed the 
> first-four-glyph rule. I believe it was Read Roberts who had to provide 
> us with a list of mappings for the first portion of the cmap, which we 
> then had to implement in the fonts, post-VOLT, using TTX. As Behdad 
> says, this as a workflow issue is irrelevant to the value of the 
> published recommendation. But in the absence of the NULL and CR glyphs, 
> what is the recommendation for mapping low ASCII control characters in 
> cmap tables?
> 
> 
> JH
> 
> 
> 
> -- 
> 
> Tiro Typeworks        www.tiro.com
> Gulf Islands, BC      tiro at tiro.com
> 
> The criminologist's definition of 'public order
> crimes' comes perilously close to the historian's
> description of 'working-class leisure-time activity.'
>  - Sidney Harring, _Policing a Class Society_
> 
> 
> 
> List archive: http://www.indx.co.uk/biglistarchive/
> 
> subscribe: opentype-migration-sub at indx.co.uk
> unsubscribe: opentype-migration-unsub at indx.co.uk
> messages: opentype-migration-list at indx.co.uk
> 
> 




More information about the mpeg-otspec mailing list