[mpeg-OTspec] post table: Macintosh "standard" glyph names?

Adam Twardoch (List) list.adam at twardoch.com
Mon Sep 16 21:21:30 CEST 2013


There are several aspects for this:

1. Adobe has created AGL (the Adobe Glyph List) and AGLFN (the Adobe 
Glyph List For New fonts). These lists [1] are accompanied by an Adobe 
spec [3] which describes how "good" glyph names should be created. Their 
primary purpose was to create support text extraction out of PDF 
documents if Unicode information is lost (i.e. if the font in the PDF 
has been embedded as Type 1 or raw CFF, without "cmap" or /ToUnicode PDF 
resource)

2. Apple has created their list [5] as part of the TrueType spec. If the 
Apple names are used, then the explicit glyph name is not stored. So 
it's a sort of "compressed" glyph name storage. They are used in "post" 
table versions 1.0 and 2.0.

3. In the OpenType spec, Microsoft references the WGL4 character set 
from the "post" table spec [4], which, as it seems, conflicts with the 
Apple list. Microsoft also uses slightly different names in the OT spec 
recommendations [2].

It's details, but it's confusing. Some font tools use the Apple list, 
others use the AGLFN/AGL lists, yet others use some hybrid lists which 
are custom-created and have been created this way as a compromise 
(notably FontLab with its standard.nam).

I'm discussing the differences between the Apple, Adobe, Microsoft and 
FontLab names below. Specifically, there are 8 or 9 glyphs involved.

At FontLab, we'd be interested in a FINAL community / normative decision 
as to how to best name these glyphs in both TT and CFF-flavored fonts. 
It really has been bugging many font developers for a long time now. 
Ideally, we should decide, and then Adobe, Apple, Microsoft, and tool 
makers such as FontLab, should adjust their tables and specs accordingly.

Best,
Adam


==

1. Big problems:

* .null (U+0000)

Is not in AGL on AGLFN [1], but it is in the Apple list [5] and in the 
MS recommendations [2]. The older Adobe spec recommended that only 
".notdef" can start with a "." but the current Adobe spec [3] no longer 
says that. Some font vendors have been using "NULL" or "NUL" instead of 
".null". Others have used "uni0000" as it resolves to U+0000 per the 
Adobe spec. Currently, at FontLab, we use "NULL" by default.

* nonmarkingreturn (U+000D)

Is not in AGL or AGLFN, but it is in the Apple list. But "controlCR" is 
in AGL. Some font vendors have used "CR". Others have used "uni000D" 
because it resolves per Adobe spec. Currently, at FontLab, we use "CR" 
by default.

* nonbreakingspace (U+00A0)

Is not in AGLFN but is in AGL and in the Apple list. Some font vendors 
have used "uni00A0". Currently, at FontLab, we use "uni00A0" by default.

At FontLab, we'd be interested in a FINAL community decision as to how 
to best name these glyphs in both TT and CFF-flavored fonts.

2. Mid-sized problems

* onesuperior (U+00B9), twosuperior (U+00B2), threesuperior (U+00B3)

Are not in AGLFN but are in AGL and in the Apple list. I haven't seen 
fonts which would use "uniXXXX" for those. Currently, at FontLab, we use 
"onesuperior", "twosuperior", "threesuperior" by default.

* fi (U+FB01), fl (U+FB02)

Are not in AGLFN but are in AGL and in the Apple list. Some font vendors 
use "uniFB01", "uniFB02" for those if they provide separate glyph copies 
for use in OpenType Layout. Others who provide unified glyphs use "f_i" 
and "f_l". Currently, at FontLab, we use "fi", "fl" by default.

3. Minor problem

* apple (U+F8FF)

Is not in AGLFN but is in AGL and in the Apple list. Since it's PUA, 
it's not so important. Also, since it's an Apple trademark, many vendors 
have used "uniF8FF". At FontLab, we use "uniF8FF" by default.

At FontLab, we think it's best to stick to "uniF8FF" for this.

[1] http://sourceforge.net/projects/aglfn.adobe/
[2] http://www.microsoft.com/typography/otspec/recom.htm
[3] http://sourceforge.net/adobe/aglfn/wiki/AGL%20Specification/
[4] https://www.microsoft.com/typography/otspec/post.htm
[5] Apple list provided below

0.notdef
1.null
2nonmarkingreturn
3space
4exclam
5quotedbl
6numbersign
7dollar
8percent
9ampersand
10quotesingle
11parenleft
12parenright
13asterisk
14plus
15comma
16hyphen
17period
18slash
19zero
20one
21two
22three
23four
24five
25six
26seven
27eight
28nine
29colon
30semicolon
31less
32equal
33greater
34question
35at
36A
37B
38C
39D
40E
41F
42G
43H
44I
45J
46K
47L
48M
49N
50O
51P
52Q
53R
54S
55T
56U
57V
58W
59X
60Y
61Z
62bracketleft
63backslash
64bracketright
65asciicircum
66underscore
67grave
68a
69b
70c
71d
72e
73f
74g
75h
76i
77j
78k
79l
80m
81n
82o
83p
84q
85r
86s
87t
88u
89v
90w
91x
92y
93z
94braceleft
95bar
96braceright
97asciitilde
98Adieresis
99Aring
100Ccedilla
101Eacute
102Ntilde
103Odieresis
104Udieresis
105aacute
106agrave
107acircumflex
108adieresis
109atilde
110aring
111ccedilla
112eacute
113egrave
114ecircumflex
115edieresis
116iacute
117igrave
118icircumflex
119idieresis
120ntilde
121oacute
122ograve
123ocircumflex
124odieresis
125otilde
126uacute
127ugrave
128ucircumflex
129udieresis
130dagger
131degree
132cent
133sterling
134section
135bullet
136paragraph
137germandbls
138registered
139copyright
140trademark
141acute
142dieresis
143notequal
144AE
145Oslash
146infinity
147plusminus
148lessequal
149greaterequal
150yen
151mu
152partialdiff
153summation
154product
155pi
156integral
157ordfeminine
158ordmasculine
159Omega
160ae
161oslash
162questiondown
163exclamdown
164logicalnot
165radical
166florin
167approxequal
168Delta
169guillemotleft
170guillemotright
171ellipsis
172nonbreakingspace
173Agrave
174Atilde
175Otilde
176OE
177oe
178endash
179emdash
180quotedblleft
181quotedblright
182quoteleft
183quoteright
184divide
185lozenge
186ydieresis
187Ydieresis
188fraction
189currency
190guilsinglleft
191guilsinglright
192fi
193fl
194daggerdbl
195periodcentered
196quotesinglbase
197quotedblbase
198perthousand
199Acircumflex
200Ecircumflex
201Aacute
202Edieresis
203Egrave
204Iacute
205Icircumflex
206Idieresis
207Igrave
208Oacute
209Ocircumflex
210apple
211Ograve
212Uacute
213Ucircumflex
214Ugrave
215dotlessi
216circumflex
217tilde
218macron
219breve
220dotaccent
221ring
222cedilla
223hungarumlaut
224ogonek
225caron
226Lslash
227lslash
228Scaron
229scaron
230Zcaron
231zcaron
232brokenbar
233Eth
234eth
235Yacute
236yacute
237Thorn
238thorn
239minus
240multiply
241onesuperior
242twosuperior
243threesuperior
244onehalf
245onequarter
246threequarters
247franc
248Gbreve
249gbreve
250Idotaccent
251Scedilla
252scedilla
253Cacute
254cacute
255Ccaron
256ccaron
257dcroat





More information about the mpeg-otspec mailing list