|
|
name -
Naming Table
The naming table allows multilingual strings to be associated with the
OpenTypeTM font file.
These strings can represent copyright notices, font names, family names,
style names, and so on. To keep this table short, the font manufacturer
may wish to make a limited set of entries in some small set of languages;
later, the font can be "localized" and the strings translated or added.
Other parts of the OpenType font file that require these strings can then
refer to them simply by their index number. Clients that need a particular
string can look it up by its platform ID, character encoding ID, language
ID and name ID. Note that some platforms may require single byte character
strings, while others may require double byte strings.
For historical reasons, some applications which install fonts perform
version control using Macintosh platform (platform ID
1) strings from the 'name' table. Because of this, we strongly recommend that the 'name' table of all fonts include Macintosh platform
strings and that the syntax of the version number (name id 5) follows the
guidelines given in this document.
The Naming Table is organized as follows:
Type |
Name |
Description |
USHORT |
format |
Format selector (=0). |
USHORT |
count |
Number of name records. |
USHORT |
stringOffset |
Offset to start of string storage (from
start of table). |
NameRecord |
nameRecord[count] |
The name records where count is the number of records. |
(Variable) |
|
Storage for the actual string
data. |
Each NameRecord looks like this:
Type |
Name |
Description |
USHORT |
platformID |
Platform ID. |
USHORT |
encodingID |
Platform-specific encoding ID. |
USHORT |
languageID |
Language ID. |
USHORT |
nameID |
Name ID. |
USHORT |
length |
String length (in bytes). |
USHORT |
offset |
String offset from start of storage area
(in bytes). |
Following are the descriptions of the four kinds of ID. Note that the
specific values listed here are the only ones that are predefined; new
ones may be added by registry with Apple Developer Technical Support.
Similar to the character encoding table, the NameRecords are sorted by
platform ID, then platform-specific ID, then language ID, and then by name
ID.
Platform IDs, Platform-specific
encoding IDs and Language IDs
Note that platform ID 2 (ISO) has been deprecated as of OpenType
Specification v1.3. It was intended to represent ISO/IEC 10646, as opposed
to Unicode; both standards have identical character code assignments.
Platform ID values 240 through 255 are reserved for user-defined
platforms. The DTS registry will never assign these values to a registered
platform.
Unicode platform-specific encoding IDs (platform ID =
0)
Encoding ID |
Description |
0 |
Unicode 1.0 semantics |
1 |
Unicode 1.1 semantics |
2 |
ISO 10646 semantics |
3 |
Unicode 2.0 and onwards semantics, Unicode BMP only. |
4 |
Unicode 2.0 and onwards semantics, Unicode full repertoire. |
5 |
Unicode Variation Sequences |
A new encoding ID for the Unicode platform will be assigned if a new
version of Unicode moves characters, in order to properly specify
character code semantics. The distinction between Unicode
platform-specific encoding IDs 1 and 2 is for historical reasons only;
the Unicode Standard is in fact identical in repertoire and encoding to ISO
10646.
Unicode platform encoding ID 5 can be used for encodings in the ‘cmap’ table but not for strings in the ‘name’ table.
Microsoft platform-specific encoding IDs (platform ID= 3)
Platform ID |
Encoding ID |
Description |
3 |
0 |
Symbol |
3 |
1 |
Unicode BMP only |
3 |
2 |
ShiftJIS |
3 |
3 |
PRC |
3 |
4 |
Big5 |
3 |
5 |
Wansung |
3 |
6 |
Johab |
3 |
7 |
Reserved |
3 |
8 |
Reserved |
3 |
9 |
Reserved |
3 |
10 |
Unicode full repertoire |
When building a Unicode font for Windows, the platform ID should be 3
and the encoding ID should be 1. When building a symbol font for Windows,
the platform ID should be 3 and the encoding ID should be 0. When building
a font that will be used on the Macintosh, the platform ID should be 1 and
the encoding ID should be 0.
Microsoft Language IDs (platform ID = 3)
The language ID (LCID in the table below) refers to a value which
identifies the language in which a particular string is written.
Language ID's assigned by Microsoft are listed below.
Primary Language |
Region |
LCID |
Afrikaans |
South Africa |
0436 |
Albanian |
Albania |
041C |
Alsatian |
France |
0484 |
Amharic |
Ethiopia |
045E |
Arabic |
Algeria |
1401 |
Arabic |
Bahrain |
3C01 |
Arabic |
Egypt |
0C01 |
Arabic |
Iraq |
0801 |
Arabic |
Jordan |
2C01 |
Arabic |
Kuwait |
3401 |
Arabic |
Lebanon |
3001 |
Arabic |
Libya |
1001 |
Arabic |
Morocco |
1801 |
Arabic |
Oman |
2001 |
Arabic |
Qatar |
4001 |
Arabic |
Saudi Arabia |
0401 |
Arabic |
Syria |
2801 |
Arabic |
Tunisia |
1C01 |
Arabic |
U.A.E. |
3801 |
Arabic |
Yemen |
2401 |
Armenian |
Armenia |
042B | >
Assamese |
India |
044D |
Azeri (Cyrillic) |
Azerbaijan |
082C |
Azeri (Latin) |
Azerbaijan |
042C |
Bashkir |
Russia |
046D |
Basque |
Basque |
042D |
Belarusian |
Belarus |
0423 |
Bengali |
Bangladesh |
0845 |
Bengali |
India |
0445 |
Bosnian (Cyrillic) |
Bosnia and Herzegovina |
201A |
Bosnian (Latin) |
Bosnia and Herzegovina |
141A |
Breton |
France |
047E |
Bulgarian |
Bulgaria |
0402 |
Catalan |
Catalan |
0403 |
Chinese |
Hong Kong S.A.R. |
0C04 |
Chinese |
Macao S.A.R. |
1404 |
Chinese |
People's Republic of China |
0804 |
Chinese |
Singapore |
1004 |
Chinese |
Taiwan |
0404 |
Corsican |
France |
0483 |
Croatian |
Croatia |
041A |
Croatian (Latin) |
Bosnia and Herzegovina |
101A |
Czech |
Czech Republic |
0405 |
Danish |
Denmark |
0406 |
Dari |
Afghanistan |
048C |
Divehi |
Maldives |
0465 |
Dutch |
Belgium |
0813 |
Dutch |
Netherlands |
0413 |
English |
Australia |
0C09 |
English |
Belize |
2809 |
English |
Canada |
1009 |
English |
Caribbean |
2409 |
English |
India |
4009 |
English |
Ireland |
1809 |
English |
Jamaica |
2009 |
English |
Malaysia |
4409 |
English |
New Zealand |
1409 |
English |
Republic of the Philippines |
3409 |
English |
Singapore |
4809 |
English |
South Africa |
1C09 |
English |
Trinidad and Tobago |
2C09 |
English |
United Kingdom |
0809 |
English |
United States |
0409 |
English |
Zimbabwe |
3009 |
Estonian |
Estonia |
0425 |
Faroese |
Faroe Islands |
0438 |
Filipino |
Philippines |
0464 |
Finnish |
Finland |
040B |
French |
Belgium |
080C |
French |
Canada |
0C0C |
French |
France |
040C |
French |
Luxembourg |
140c |
French |
Principality of Monoco |
180C |
French |
Switzerland |
100C |
Frisian |
Netherlands |
0462 |
Galician |
Galician |
0456 |
Georgian |
Georgia |
0437 |
German |
Austria |
0C07 |
German |
Germany |
0407 |
German |
Liechtenstein |
1407 |
German |
Luxembourg |
1007 |
German |
Switzerland |
0807 |
Greek |
Greece |
0408 |
Greenlandic |
Greenland |
046F |
Gujarati |
India |
0447 |
Hausa (Latin) |
Nigeria |
0468 |
Hebrew |
Israel |
040D |
Hindi |
India |
0439 |
Hungarian |
Hungary |
040E |
Icelandic |
Iceland |
040F |
Igbo |
Nigeria |
0470 |
Indonesian |
Indonesia |
0421 |
Inuktitut |
Canada |
045D |
Inuktitut (Latin) |
Canada |
085D |
Irish |
Ireland |
083C |
isiXhosa |
South Africa |
0434 |
isiZulu |
South Africa |
0435 |
Italian |
Italy |
0410 |
Italian |
Switzerland |
0810 |
Japanese |
Japan |
0411 |
Kannada |
India |
044B |
Kazakh |
Kazakhstan |
043F |
Khmer |
Cambodia |
0453 |
K'iche |
Guatemala |
0486 |
Kinyarwanda |
Rwanda |
0487 |
Kiswahili |
Kenya |
0441 |
Konkani |
India |
0457 |
Korean |
Korea |
0412 |
Kyrgyz |
Kyrgyzstan |
0440 |
Lao |
Lao P.D.R. |
0454 |
Latvian |
Latvia |
0426 |
Lithuanian |
Lithuania |
0427 |
Lower Sorbian |
Germany |
082E |
Luxembourgish |
Luxembourg |
046E |
Macedonian (FYROM) |
Former Yugoslav Republic of Macedonia |
042F |
Malay |
Brunei Darussalam |
083E |
Malay |
Malaysia |
043E |
Malayalam |
India |
044C |
Maltese |
Malta |
043A |
Maori |
New Zealand |
0481 |
Mapudungun |
Chile |
047A |
Marathi |
India |
044E |
Mohawk |
Mohawk |
047C |
Mongolian (Cyrillic) |
Mongolia |
0450 |
Mongolian (Traditional) |
People's Republic of China |
0850 |
Nepali |
Nepal |
0461 |
Norwegian (Bokmal) |
Norway |
0414 |
Norwegian (Nynorsk) |
Norway |
0814 |
Occitan |
France |
0482 |
Oriya |
India |
0448 |
Pashto |
Afghanistan |
0463 |
Polish |
Poland |
0415 |
Portuguese |
Brazil |
0416 |
Portuguese |
Portugal |
0816 |
Punjabi |
India |
0446 |
Quechua |
Bolivia |
046B |
Quechua |
Ecuador |
086B |
Quechua |
Peru |
0C6B |
Romanian |
Romania |
0418 |
Romansh |
Switzerland |
0417 |
Russian |
Russia |
0419 |
Sami (Inari) |
Finland |
243B |
Sami (Lule) |
Norway |
103B |
Sami (Lule) |
Sweden |
143B |
Sami (Northern) |
Finland |
0C3B |
Sami (Northern) |
Norway |
043B |
Sami (Northern) |
Sweden |
083B |
Sami (Skolt) |
Finland |
203B |
Sami (Southern) |
Norway |
183B |
Sami (Southern) |
Sweden |
1C3B |
Sanskrit |
India |
044F |
Serbian (Cyrillic) |
Bosnia and Herzegovina |
1C1A |
Serbian (Cyrillic) |
Serbia |
0C1A |
Serbian (Latin) |
Bosnia and Herzegovina |
181A |
Serbian (Latin) |
Serbia |
081A |
Sesotho sa Leboa |
South Africa |
046C |
Setswana |
South Africa |
0432 |
Sinhala |
Sri Lanka |
045B |
Slovak |
Slovakia |
041B |
Slovenian |
Slovenia |
0424 |
Spanish |
Argentina |
2C0A |
Spanish |
Bolivia |
400A |
Spanish |
Chile |
340A |
Spanish |
Colombia |
240A |
Spanish |
Costa Rica |
140A |
Spanish |
Dominican Republic |
1C0A |
Spanish |
Ecuador |
300A |
Spanish |
El Salvador |
440A |
Spanish |
Guatemala |
100A |
Spanish |
Honduras |
480A |
Spanish |
Mexico |
080A |
Spanish |
Nicaragua |
4C0A |
Spanish |
Panama |
180A |
Spanish |
Paraguay |
3C0A |
Spanish |
Peru |
280A |
Spanish |
Puerto Rico |
500A |
Spanish (Modern Sort) |
Spain |
0C0A |
Spanish (Traditional Sort) |
Spain |
040A |
Spanish |
United States |
540A |
Spanish |
Uruguay |
380A |
Spanish |
Venezuela |
200A |
Sweden |
Finland |
081D |
Swedish |
Sweden |
041D |
Syriac |
Syria |
045A |
Tajik (Cyrillic) |
Tajikistan |
0428 |
Tamazight (Latin) |
Algeria |
085F |
Tamil |
India |
0449 |
Tatar |
Russia |
0444 |
Telugu |
India |
044A |
Thai |
Thailand |
041E |
Tibetan |
PRC |
0451 |
Turkish |
Turkey |
041F |
Turkmen |
Turkmenistan |
0442 |
Uighur |
PRC |
0480 |
Ukrainian |
Ukraine |
0422 |
Upper Sorbian |
Germany |
042E |
Urdu |
Islamic Republic of Pakistan |
0420 |
Uzbek (Cyrillic) |
Uzbekistan |
0843 |
Uzbek (Latin) |
Uzbekistan |
0443 |
Vietnamese |
Vietnam |
042A |
Welsh |
United Kingdom |
0452 |
Wolof |
Senegal |
0448 |
Yakut |
Russia |
0485 |
Yi |
PRC |
0478 |
Yoruba |
Nigeria |
046A |
Macintosh platform-specific encoding IDs (script
manager codes), (platform ID = 1)
Code |
Script |
Code |
Script |
0 |
Roman |
17 |
Malayalam |
1 |
Japanese |
18 |
Sinhalese |
2 |
Chinese (Traditional) |
19 |
Burmese |
3 |
Korean |
20 |
Khmer |
4 |
Arabic |
21 |
Thai |
5 |
Hebrew |
22 |
Laotian |
6 |
Greek |
23 |
Georgian |
7 |
Russian |
24 |
Armenian |
8 |
RSymbol |
25 |
Chinese (Simplified) |
9 |
Devanagari |
26 |
Tibetan |
10 |
Gurmukhi |
27 |
Mongolian |
11 |
Gujarati |
28 |
Geez |
12 |
Oriya |
29 |
Slavic |
13 |
Bengali |
30 |
Vietnamese |
14 |
Tamil |
31 |
Sindhi |
15 |
Telugu |
32 |
Uninterpreted |
16 |
Kannada |
|
|
Macintosh language IDs (platform ID = 1)
Code |
Language |
Code |
Language |
0 |
English |
59 |
Pashto |
1 |
French |
60 |
Kurdish |
2 |
German |
61 |
Kashmiri |
3 |
Italian |
62 |
Sindhi |
4 |
Dutch |
63 |
Tibetan |
5 |
Swedish |
64 |
Nepali |
6 |
Spanish |
65 |
Sanskrit |
7 |
Danish |
66 |
Marathi |
8 |
Portuguese |
67 |
Bengali |
9 |
Norwegian |
68 |
Assamese |
10 |
Hebrew |
69 |
Gujarati |
11 |
Japanese |
70 |
Punjabi |
12 |
Arabic |
71 |
Oriya |
13 |
Finnish |
72 |
Malayalam |
14 |
Greek |
73 |
Kannada |
15 |
Icelandic |
74 |
Tamil |
16 |
Maltese |
75 |
Telugu |
17 |
Turkish |
76 |
Sinhalese |
18 |
Croatian |
77 |
Burmese |
19 |
Chinese (Traditional) |
78 |
Khmer |
20 |
Urdu |
79 |
Lao |
21 |
Hindi |
80 |
Vietnamese |
22 |
Thai |
81 |
Indonesian |
23 |
Korean |
82 |
Tagalong |
24 |
Lithuanian |
83 |
Malay (Roman
script) |
25 |
Polish |
84 |
Malay (Arabic
script) |
26 |
Hungarian |
85 |
Amharic |
27 |
Estonian |
86 |
Tigrinya |
28 |
Latvian |
87 |
Galla |
29 |
Sami |
88 |
Somali |
30 |
Faroese |
89 |
Swahili |
31 |
Farsi/Persian |
90 |
Kinyarwanda/Ruanda |
32 |
Russian |
91 |
Rundi |
33 |
Chinese (Simplified) |
92 |
Nyanja/Chewa |
34 |
Flemish |
93 |
Malagasy |
35 |
Irish
Gaelic |
94 |
Esperanto |
36 |
Albanian |
128 |
Welsh |
37 |
Romanian |
129 |
Basque |
38 |
Czech |
130 |
Catalan |
39 |
Slovak |
131 |
Latin |
40 |
Slovenian |
132 |
Quenchua |
41 |
Yiddish |
133 |
Guarani |
42 |
Serbian |
134 |
Aymara |
43 |
Macedonian |
135 |
Tatar |
44 |
Bulgarian |
136 |
Uighur |
45 |
Ukrainian |
137 |
Dzongkha |
46 |
Byelorussian |
138 |
Javanese (Roman script) |
47 |
Uzbek |
139 |
Sundanese (Roman script) |
48 |
Kazakh |
140 |
Galician |
49 |
Azerbaijani (Cyrillic script) |
141 |
Afrikaans |
50 |
Azerbaijani (Arabic
script) |
142 |
Breton |
51 |
Armenian |
14 |
Inuktitut |
52 |
Georgian |
144 |
Scottish Gaelic |
53 |
Moldavian |
145 |
Manx Gaelic |
54 |
Kirghiz |
146 |
Irish Gaelic (with dot above) |
55 |
Tajiki |
147 |
Tongan |
56 |
Turkmen |
148 |
Greek (polytonic) |
57 |
Mongolian (Mongolian
script) |
149 |
Greenlandic |
58 |
Mongolian (Cyrillic script) |
150 |
Azerbaijani (Roman script) |
|
ISO specific encodings (platform ID=2) [Deprecated]
Code |
ISO encoding |
0 |
7-bit ASCII |
1 |
ISO
10646 |
2 |
ISO
8859-1 |
There are no ISO-specific language
IDs.
Custom platform-specific encoding
IDs (platform ID = 4)
ID |
Custom encoding |
0-255 |
OTF Windows NT
compatibility mapping |
In cases where a custom platform cmap is present for OTF Windows NT
compatibility, the encoding ID must be set to the Windows charset value
(in the range 0 to 255, inclusive) present in the .PFM file of the
original Type 1 font. See the 'cmap' table for more details on the OTF Windows NT compatibility cmap.
There are currently no language IDs defined for the Custom platform.
This means that it can be used for encodings in the 'cmap' table but not
for strings in the 'name' table.
Name IDs
The following name IDs are pre-defined, and they apply to all platforms
unless indicated otherwise. Name IDs 23 to 255, inclusive, are reserved
for future standard names. Name IDs 256 to 32767, inclusive, are reserved
for font-specific names such as those referenced by a font's layout
features.
Code |
Meaning |
0 |
Copyright notice. |
1 |
Font Family name. Up to four fonts can share the Font Family name, forming a font style linking group (regular, italic, bold, bold italic - as defined by OS/2.fsSelection bit settings). |
2 |
Font Subfamily name. The Font Subfamily name distiguishes the font in a group with the same Font Family name (name ID 1). This is assumed to address style (italic, oblique) and
weight (light, bold, black, etc.). A font with no
particular differences in weight or style (e.g. medium weight, not
italic and fsSelection bit 6 set) should have the string "Regular"
stored in this position. |
3 |
Unique font identifier |
4 |
Full font name; this should be a
combination of strings 1 and 2. Exception: if the font is "Regular"
as indicated in string 2, then use only the family name contained in
string 1. An exception to the above definition of Full font name is for
Microsoft platform strings for CFF OpenType fonts: in this case, the
Full font name string must be identical to the PostScript FontName in the CFF Name INDEX. |
5 |
Version string. Should begin with the syntax
'Version <number>.<number>' (upper case, lower case, or mixed, with a space
between "Version" and the number).
The string must contain a version
number of the following form: one or more digits (0-9) of value less than 65,535, followed by a
period, followed by one or more digits of value less than 65,535. Any character other than a digit will terminate the minor number. A character such as ";" is helpful to separate different pieces of version information. The first such match in the
string can be used by installation software to compare font
versions. Note that some installers may require the string to
start with "Version ", followed by a version number as above.
|
6 |
Postscript name for the font; Name ID 6 specifies a string which is used to invoke a
PostScript language font that corresponds to this OpenType font. If
no name ID 6 is present, then there is no defined method for
invoking this font on a PostScript interpreter. OpenType fonts
which include a name with name ID of 6 shall include these two names
with name ID 6, and characteristics as follows:
- Platform: 1 [Macintosh]; Platform-specific encoding: 0
[Roman]; Language: 0 [English].
- Platform: 3 [Microsoft]; Platform-specific encoding: 1
[Unicode]; Language: 0x409 [English (American)].
Names
with name ID 6 other than the above two, if present, must be
ignored.
When translated to ASCII, these two name strings
must be identical; no longer than 63 characters; and restricted to
the printable ASCII subset, codes 33 through 126, except for the 10
characters: '[', ']', '(', ')', '{', '}', '<', '>', '/',
'%'.
In CFF OpenType fonts, these two name strings, when
translated to ASCII, must also be identical to the font name as
stored in the CFF's Name INDEX.
The term "PostScript Name"
here means a string identical to the two identical name ID 6 strings
described above.
Depending on the particular font format that
PostScript language font uses, the invocation method for the
PostScript font differs, and the semantics of the resulting
PostScript language font differ. The method used to invoke this font
depends on the presence of name ID 20.
If a name ID 20 is
present in this font, then the default assumption should be that the
PostScript Name defined by name ID 6 should be used with the
"composefont" invocation. This PostScript Name is then the name of a
PostScript language CIDFont resource which corresponds to the glyphs
of the OpenType font. This name is valid to pass, with an
appropriate PostScript language CMap reference, and an instance
name, to the PostScript language "composefont" operator.
If
no name ID 20 is present in this font, then the default assumption
should be that the PostScript Name defined by name ID 6 should be
used with the "findfont" invocation, for locating the font in the
context of a PostScript interpreter. This PostScript Name is then
the name of a PostScript language Font resource which corresponds to
the glyphs of the OpenType font. This name is valid to pass to the
PostScript language "findfont" operator. Note that this does
not necessarily imply that the resulting font dictionary
accepts an /Encoding array, such as when the font referenced is a
Type 0 PostScript font.
Note that this specification applies
only to data fork OpenType fonts. Macintosh resource-fork TrueType
and other Macintosh sfnt-wrapped fonts supply the PostScript font
name to be used with the "findfont" invocation, in order to invoke
the font in a PostScript interpreter, in the FOND resource
style-mapping table.
Developers may choose to ignore the
default usage when appropriate. For example, PostScript printers
whose version is earlier than 2015 cannot process CID font
resources, and a CJK OpenType/CFF-CID font can be downloaded only as
a set of Type 1 PostScript fonts. Legacy CJK TrueType fonts, which
do not have a name ID 20, may still be most effectively downloaded
as a CID font resource. Definition of the full set of situations in
which the defaults should not be followed is outside the scope of
this document.
|
7 |
Trademark; this is used to save any
trademark notice/information for this font. Such information should
be based on legal advice. This is distinctly separate from
the copyright. |
8 |
Manufacturer Name. |
9 |
Designer; name of the designer of the
typeface. |
10 |
Description; description of the typeface.
Can contain revision information, usage recommendations, history,
features, etc. |
11 |
URL Vendor; URL of font vendor (with
protocol, e.g., http://, ftp://). If a unique serial number is
embedded in the URL, it can be used to register the font. |
12 |
URL Designer; URL of typeface designer
(with protocol, e.g., http://, ftp://). |
13 |
License Description; description of how the
font may be legally used, or different example scenarios for
licensed use. This field should be written in plain language, not
legalese. |
14 |
License Info URL; URL where additional
licensing information can be found. |
15 |
Reserved; Set to zero. |
16 |
Preferred Family; For
historical reasons, font families have contained a maximum of four styles, but
font designers may group more than four fonts to a single family.
The Preferred Family allows font designers to include the preferred family grouping which contains
more than four fonts. This ID is only present if it is different from ID 1. |
17 |
Preferred Subfamily; Allows font designers to include the preferred subfamily grouping that is
more descriptive than ID 2. This ID is only present if it is different from ID 2 and must be
unique for the the Preferred Family. |
18 |
Compatible Full (Macintosh only); On the
Macintosh, the menu name is constructed using the FOND resource.
This usually matches the Full Name. If you want the name of the font
to appear differently than the Full Name, you can insert the
Compatible Full Name in ID 18. |
19 |
Sample text; This can
be the font name, or any other text that the designer thinks is the
best sample to display the font in.
|
20 |
PostScript CID findfont
name; Its presence in a font means that the nameID 6 holds a
PostScript font name that is meant to be used with the "composefont"
invocation in order to invoke the font in a PostScript interpreter.
See the definition of name ID 6.
The value held in the name
ID 20 string is interpreted as a PostScript font name that is meant
to be used with the "findfont" invocation, in order to invoke the
font in a PostScript interpreter.
If the name ID 20 is
present in a font, there must be one name ID 20 record for every
Macintosh platform cmap subtable in that font. A particular name ID
20 record is associated with the encoding specified by the matching
cmap subtable. A name ID 20 record is matched to a cmap subtable
when they have the same platform and platform-specific encoding IDs,
and corresponding language/version IDs. Name ID 20 records are meant
to be used only with Macintosh cmap subtables. The version field for
a cmap subtable is one more than the language ID value for the
corresponding name ID 20 record, with the exception of the cmap
subtable version field 0. This version field, meaning "not
language-specific", corresponds to the language ID value 0xFFFF, or
decimal 65535, for the corresponding name ID 20 record.
When
translated to ASCII, this name string must be restricted to the
printable ASCII subset, codes 33 through 126, except for the 10
characters: '[', ']', '(', ')', '{', '}', '<', '>', '/',
'%'.
Note that this specification applies only to data fork
OpenType fonts. Macintosh resource-fork TrueType and other Macintosh
sfnt-wrapped fonts supply the PostScript font name to be used with
the "findfont" invocation, in order to invoke the font in a
PostScript interpreter, in the FOND resource style-mapping
table.
Note that a particular Name ID 20 string always
corresponds to a particular Macintosh cmap subtable. However, some
host OpenType/TTF fonts also contain a post table, format 4, which
provides a mapping from glyph ID to encoding value, and also
corresponds to a particular Macintosh cmap subtable. Unfortunately,
the post table format 4 contains no provision for identifying which
Macintosh cmap subtable it matches, nor for providing more than one
mapping. Host fonts which contain a post table format 4, should also
contain only a single Macintosh cmap subtable, and a single Name ID
20 string. In the case where there is more than one Macintosh cmap
subtable and more than one Name ID 20 string, there is no definition
of which one matches the post table format 4.
|
21 |
WWS Family Name. Used to provide a WWS-conformant family name in case the entries for IDs 16 and 17 do not conform to the WWS model. (That is, in case the entry for ID 17 includes qualifiers for some attribute other than weight, width or slope.) If bit 8 of the fsSelection field is set, a WWS Family Name entry should not be needed and should not be included. Conversely, if an entry for this ID is include, bit 8 should not be set. (See OS/2 'fsSelection' field for details.) Examples of name ID 21: "Minion Pro Caption" and "Minion Pro Display". (Name ID 16 would be "Minion Pro" for these examples.)
|
22 |
WWS Subfamily Name. Used in conjunction with ID 21, this ID provides a WWS-conformant subfamily name (reflecting only weight, width and slope attributes) in case the entries for IDs 16 and 17 do not conform to the WWS model. As in the case of ID 21, use of this ID should correlate inversely with bit 8 of the fsSelection field being set. Examples of name ID 22: "Semibold Italic", "Bold Condensed". (Name ID 17 could be "Semibold Italic Caption", or "Bold Condensed Display", for example.)
|
Note that while both Apple and Microsoft support the same set of name
strings, the interpretations may be somewhat different. But since name
strings are stored by platform, encoding and language (placing separate
strings for both Apple and MS platforms), this should not present a
problem.
The key information for this table for MS fonts relates to the use of
strings 1, 2 and 4. To better help understand, some examples of name usage, weight class and style flags have been created.
Note that OS/2 and Windows both require that all name strings be
defined in Unicode. Thus all 'name' table strings for platform ID = 3
(Microsoft) will require two bytes per character. Macintosh fonts require
single byte strings.
Note that, for a typographic family that includes non-WWS variations, some of the member faces will differ from Regular in relation to attributes other than weight, width or slope, but there will likely also be some member faces that differ only in relation to these three attributes. IDs 21 and 22 should be used only in those fonts that differ from the Regular face in terms of an attribute other than weight, width or slope.
Examples of how these strings might be defined:
0. The copyright string from the font vendor. © Copyright the
Monotype Corporation plc, 1990
1. The name the user sees. Times New Roman
2. The name of the style. Bold
3. A unique identifier that applications can store to identify the font
being used. Monotype: Times New Roman Bold:1990
4. The complete, hopefully unique, human readable name of the font.
This name is used by Windows. Times New Roman Bold
(If this were the Microsoft platform string for a CFF OpenType font,
then the value would be TimesNewRoman-Bold, as described in the
definition of name ID 4 above.)
5. Release and version information from the font vendor. Version
1.00 June 1, 1990, initial release
6. The name the font will be known by on a PostScript printer.
TimesNewRoman-Bold
7. Trademark string. Times New Roman is a registered trademark of
the Monotype Corporation.
8. Manufacturer. Monotype Corporation plc
9. Designer. Stanley Morison
10. Description. Designed in 1932 for the Times of London newspaper.
Excellent readability and a narrow overall width, allowing more words per
line than most fonts.
11. URL of Vendor. http://www.monotype.com
12. URL of Designer. http://www.monotype.com
13. License Description. This font may be installed on all of your
machines and printers, but you may not sell or give these fonts to anyone
else.
14. License Info URL. http://www.monotype.com/license/
15. Reserved. Set to zero.
16. Preferred Family. No name string present, since it
is the same as name ID 1 (Font Family name).
17. Preferred Subfamily. No name string present, since
it is the same as name ID 2 (Font Subfamily name).
18. Compatible Full (Macintosh only). No name string present, since it
is the same as name ID 4 (Full name).
19. Sample text. The quick brown fox jumps over the
lazy dog.
20. PostScript CID findfont name. No name string present. Thus, the
PostScript Name defined by name ID 6 should be used with the "findfont"
invocation for locating the font in the context of a PostScript
interpreter.
21. WWS family name: Since Times New Roman is a WWS font, this field does not need to be specified. If the font contained styles such as "caption", "display", "handwriting", etc, that would be noted here.
22. WWS subfamily name: Since Times New Roman is a WWS font, this field does not need to be
specified.
The following is an example of only name IDs 6 and 20 in the CFF
OpenType Japanese font Kozuka Mincho Std Regular (other name IDs are also
present in this font):
6. PostScript name: KozMinStd-Regular.
Since a name ID 20 is present in the font (see below), then the PostScript
name defined by name ID 6 should be used with the "composefont" invocation
for locating the font in the context of a PostScript interpreter. 20.
PostScript CID findfont name: KozMinStd-Regular-83pv-RKSJ-H, in a
name record of Platform 1 [Macintosh], Platform-specific script 1
[Japanese], Language: 0xFFFF [English]. This name string is a PostScript
name that should be used with the "findfont" invocation for locating the
font in the context of a PostScript interpreter, and is associated with
the encoding specified by the following cmap subtable, which must be
present in the font: Platform: 1 [Macintosh]; Platform-specific encoding:
1 [Japanese]; Language: 0 [not language-specific].
The following is an example of family/subfamily naming for an extended, WWS-only family. Consider Adobe Caslon Pro, with six members: upright and italic versions of regular, semibold and bold weights. (Bit 8 of the fsSelection field of the OS/2 table, version 4, should be set for all six fonts, and none should include ‘name’ entries for IDs 21 or 22.)
Adobe Caslon Pro Regular:
Name ID 1: Adobe Caslon Pro
Name ID 2: Regular
Adobe Caslon Pro Italic:
Name ID 1: Adobe Caslon Pro
Name ID 2: Italic
Adobe Caslon Pro Semibold:
Name ID 1: Adobe Caslon Pro
Name ID 2: Bold
Name ID 16: Adobe Caslon Pro
Name ID 17: Semibold
Adobe Caslon Pro Semibold Italic:
Name ID 1: Adobe Caslon Pro
Name ID 2: Bold Italic
Name ID 16: Adobe Caslon Pro
Name ID 17: Semibold Italic
Adobe Caslon Pro Bold:
Name ID 1: Adobe Caslon Pro Bold
Name ID 2: Regular
Name ID 16: Adobe Caslon Pro
Name ID 17: Bold
Adobe Caslon Pro Bold Italic:
Name ID 1: Adobe Caslon Pro Bold
Name ID 2: Italic
Name ID 16: Adobe Caslon Pro
Name ID 17: Bold Italic
The following is an example of family/subfamily naming for an extended, non-WWS family. Consider Minion Pro Opticals, with 32 member fonts: upright and italic versions of regular, medium, semibold and bold weights in each of four optical sizes: regular, caption, display and subhead. The following show names for a sampling of the fonts in this family. (Bit 8 of the fsSelection field in the OS/2 table, version 4, should be set in those fonts that do not include ‘name’ entries for IDs 21 or 22, and only in those fonts.)
Minion Pro Regular:
Name ID 1: Minion Pro
Name ID 2: Regular
Minion Pro Italic:
Name ID 1: Minion Pro
Name ID 2: Italic
Minion Pro Semibold:
Name ID 1: Minion Pro SmBd
Name ID 2: Regular
Name ID 16: Minion Pro
Name ID 17: Semibold
Minion Pro Semibold Italic:
Name ID 1: Minion Pro SmBd
Name ID 2: Italic
Name ID 16: Minion Pro
Name ID 17: Semibold Italic
Minion Pro Caption:
Name ID 1: Minion Pro Capt
Name ID 2: Regular
Name ID 16: Minion Pro
Name ID 17: Caption
Name ID 21: Minion Pro Caption
Name ID 22: Regular
Minion Pro Semibold Italic Caption:
Name ID 1: Minion Pro SmBd Capt
Name ID 2: Italic
Name ID 16: Minion Pro
Name ID 17: Semibold Italic Caption
Name ID 21: Minion Pro Caption
Name ID 22: Semibold Italic
this page was last updated 29 January 2008 ©
2008 Microsoft Corporation. All rights reserved. Terms of
use. comments to the MST group:
how to contact us.
|
|