Microsoft HomeProductsSearchSupportShopWrite Us Microsoft Home

Microsoft Typography | Developer... | OpenType specification | OpenType tables | The name table


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. 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 or multi-byte strings.

For historical reasons, some applications which install fonts perform version control using values in the Mac 'name' table. Because of this, we strongly recommend that a Mac 'name' table exist in all fonts 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 Description
USHORT Format selector (=0).
USHORT Number of NameRecords that follow n.
USHORT Offset to start of string storage (from start of table).
n NameRecords The NameRecords.
(Variable) Storage for the actual string data.


Each NameRecord looks like this:

Type Description
USHORT Platform ID.
USHORT Platform-specific encoding ID.
USHORT Language ID.
USHORT Name ID.
USHORT String length (in bytes).
USHORT 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 is sorted by platform ID, then platform-specific ID, then language ID, and then by name ID.


Platform ID

ID Platform Specific encoding
0 Apple Unicode none
1 Macintosh Script manager code
2 ISO ISO encoding
3 Microsoft Microsoft encoding

The values 240 through 255 are reserved for user-defined platforms. The DTS registry will never assign these values to a registered platform.


Microsoft platform-specific encoding IDs (platform ID= 3)

Code Description
0 Undefined character set or indexing scheme
1 Unicode indexing

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.

The language ID (LCID in the table below) refers to a value which identifies the language in which a particular string is written. Fifty of the language ID's assigned by Microsoft are listed below, along with their corresponding code pages. There are 85 additional language ID's assigned. For a full list, please see http://www.microsoft.com/typography/otspec/lcid-cp.txt.


Primary Language Locale Name LCID Win CP OEM CP
Albanian Albania (041c; SQI)    
Basque Basque (042D; EUQ) 1252 850
Byelorussian Byelorussia (0423, BEL) 1251 866
Bulgarian Bulgaria (0402, BGR) 1251 866
Catalan Catalan (0403; CAT) 1252 850
Croatian Croatian (041a, SHL) 1250 852
Czech Czech (0405; CSY) 1250 852
Danish Danish (0406; DAN) 1252 865
Dutch (2): Dutch (Standard) (0413; NLD) 1252 850
Dutch (2): Belgian (Flemish) (0813; NLB) 1252 850
English (6): American (0409; ENU) 1252 437
English (6): British (0809; ENG) 1252 850
English (6): Australian (0c09; ENA) 1252 850
English (6): Canadian (1009; ENC) 1252 850
English (6): New Zealand (1409; ENZ) 1252 850
English (6): Ireland (1809; ENI) 1252 850
Estonian Estonia (0425, ETI) 1257 775
Finnish Finnish (040b; FIN) 1252 850
French French (Standard) (040c; FRA) 1252 850
French Belgian (080c; FRB) 1252 850
French Canadian (0c0c; FRC) 1252 850
French Swiss (100c; FRS) 1252 850
French Luxembourg (140c; FRL) 1252 850
German German (Standard) (0407; DEU) 1252 850
German Swiss (0807; DES) 1252 850
German Austrian (0c07; DEA) 1252 850
German Luxembourg (1007; DEL) 1252 850
German Liechtenstein (1407; DEC) 1252 850
Greek Greek (0408; ELL) 1253 737 or 8694
Hungarian Hungarian (040e; HUN) 1250 852
Icelandic Icelandic (040F; ISL) 1252 850
Italian (2): Italian (Standard) (0410; ITA) 1252 850
Italian (2): Swiss (0810; ITS) 1252 850
Latvian Latvia (0426, LVI) 1257 775
Lithuanian Lithuania (0427, LTH) 1257 775
Norwegian (2): Norwegian (Bokmal) (0414; NOR) 1252 850
Norwegian (2): Norwegian (Nynorsk) (0814; NON) 1252 850
Polish Polish (0415; PLK) 1250 852
Portuguese (2): Portuguese (Brazilian) (0416; PTB) 1252 850
Portuguese (2): Portuguese (Standard) (0816; PTG) 1252 850
Romanian (2): Romania (0418, ROM) 1250 852
Russian Russian (0419; RUS) 1251 866
Slovak Slovak (041b; SKY) 1250 852
Slovenian Slovenia (0424, SLV) 1250 852
Spanish (3): Spanish (Traditional Sort) (040a; ESP) 1252 850
Spanish (3): Mexican (080a; ESM) 1252 850
Spanish (3): Spanish (Modern Sort) (0c0a; ESN) 1252 850
Swedish Swedish (041D; SVE) 1252 850
Turkish Turkish (041f; TRK) 1254 857
Ukrainian Ukraine (0422, UKR) 1251 866

4737 is default, but 869 (IBM Greek) will be available at setup time through the selection of a bogus Greek locale in Custom Setup.


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 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 Maldivian
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 Uninterp
16 Kannada    


Macintosh language IDs:

Code Language Code Language
0 English 12 Arabic
1 French 13 Finnish
2 German 14 Greek
3 Italian 15 Icelandic
4 Dutch 16 Maltese
5 Swedish 17 Turkish
6 Spanish 18 Yugoslavian
7 Danish 19 Chinese
8 Portuguese 20 Urdu
9 Norwegian 21 Hindi
10 Hebrew 22 Thai
11 Japanese    


ISO specific encodings (platform ID=2)

Code ISO encoding
0 7-bit ASCII
1 ISO 10646
2 ISO 8859-1

There are not any ISO-specific language IDs.

The following name IDs are defined, and they apply to all platforms.


Name IDs

Code Meaning
0 Copyright notice.
1 Font Family name
2 Font Subfamily name; for purposes of definition, this is assumed to address style (italic, oblique) and weight (light, bold, black, etc.) only. 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. This is the font name that Windows will expose to users.
5 Version string. Must begin with the syntax 'Version n.nn ' (upper case, lower case, or mixed, with a space following the number).
6 Postscript name for the font.
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 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.
14 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.
15 Reserved; Set to zero.
16 Preferred Family (Windows only); In Windows, the Family name is displayed in the font menu; the Subfamily name is presented as the Style name. 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 and Preferred Subfamily IDs allow font designers to include the preferred family/subfamily groupings. These IDs are only present if they are different from IDs 1 and 2.
17 Preferred Subfamily (Windows only); In Windows, the Family name is displayed in the font menu; the Subfamily name is presented as the Style name. 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 and Preferred Subfamily IDs allow font designers to include the preferred family/subfamily groupings. These IDs are only present if they are different from IDs 1 and 2.
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.

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 in 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 0, 1, 2 and 4. Some examples:

Helvetica Narrow Oblique 1 = Helvetica Narrow
2 = Oblique
4 = Helvetica Narrow Oblique
Helvetica Narrow 1 = Helvetica Narrow
2 = Regular
4 = Helvetica Narrow
Helvetica Narrow Light Italic 1 = Helvetica Narrow
2 = Light Italic
4 = Helvetica Narrow Light Italic

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.

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

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.



this page was last updated 30 July 1998
© 1998 Microsoft Corporation. All rights reserved. Terms of use.
comments to the MST group: ttwsite@microsoft.com

 

Microsoft Typography | Developer... | OpenType specification | OpenType tables | The NAME table