The CFF table (tag with a trailing space) holds the glyph outlines of
an OpenType font with PostScript outlines, in Adobe’s Compact Font Format version 1.0.
CFF was a font format of its own before OpenType, able to hold a whole set of Type 1 or
CID-keyed fonts; OpenType embeds one such font as a table. The outlines themselves are
Type 2 charstrings. This page follows
Adobe Technical Note #5176 (4 December 2003) and OpenType 1.9.1. For the newer
variable-font form see CFF2.
Rules in OpenType
- The font has
sfntVersionOTTOand noglyforlocatables; see the table directory. - The Name INDEX must hold exactly one entry: one font per table. The name need not
match name ID 6 in the
nametable; applications use thenametable. In a collection oneCFFtable can be shared by several fonts. - The Top DICT must give
CharstringType2 (the default). numGlyphsinmaxp(version 0.5 for CFF fonts) must equal the number of charstrings, and OpenType glyph numbers are CFF glyph numbers.- Advance widths appear twice: in the charstrings and in
hmtx.
Data types and layout
All numbers are big-endian and nothing is aligned, so there is no padding anywhere. Offsets are written relative to a reference point: “(0)” means from the start of the CFF data, “(self)” from the start of the structure holding the offset.
| Type | Range | Meaning |
|---|---|---|
Card8 | 0–255 | 1-byte unsigned number. |
Card16 | 0–65535 | 2-byte unsigned number. |
Offset | varies | 1, 2, 3 or 4-byte offset, its size given by an OffSize field. |
OffSize | 1–4 | 1-byte number giving the size of offsets. |
SID | 0–64999 | 2-byte string identifier; 65000 and above are for implementations’ own use. |
The parts, in their usual order. The first five are always at the start, in this order; the rest are reached by offsets and could be anywhere.
| Part | Notes |
|---|---|
| Header | – |
| Name INDEX | – |
| Top DICT INDEX | – |
| String INDEX | – |
| Global Subr INDEX | – |
| Encodings | – |
| Charsets | – |
| FDSelect | CIDFonts only |
| CharStrings INDEX | Per font |
| Font DICT INDEX | Per font, CIDFonts only |
| Private DICT | Per font |
| Local Subr INDEX | Per font, or per Private DICT in CIDFonts |
| Copyright and trademark notices | – |
Header
| Offset | Type | Name | Description |
|---|---|---|---|
0 | Card8 | major | Major version, 1. |
1 | Card8 | minor | Minor version, 0. |
2 | Card8 | hdrSize | Size of the header in bytes (4). Readers must use it to find the Name INDEX, so that later versions can add fields. |
3 | OffSize | offSize | Size of offsets measured from the start of the CFF data. |
A reader that does not know the major version must reject the data; an unknown minor version means extensions it can safely ignore.
INDEX
An INDEX is an array of variable-length objects.
| Type | Name | Description |
|---|---|---|
Card16 | count | Number of objects. |
OffSize | offSize | Size of each offset. |
Offset × (count + 1) | offset | Offsets from the byte before the object data, so the first is always 1. The extra last offset gives the end of the last object. |
Card8 × varies | data | The objects. Object i runs from offset[i] to offset[i+1]. |
An empty INDEX is just a count of 0: two bytes, with no
offSize or offsets. An INDEX can be skipped by jumping to its last
offset.
DICT encoding
A DICT is a sequence of key–value pairs written as operands followed by an operator, like PostScript. The first byte tells them apart: 0–21 start an operator; 28, 29, 30 and 32–254 start an operand; 22–27, 31 and 255 are reserved. Operator 12 is an escape: the next byte completes a two-byte operator. An operator may have up to 48 operands before it.
Integer operands
| First byte b0 | Size | Range | Value |
|---|---|---|---|
| 32–246 | 1 | −107 to +107 | b0 − 139 |
| 247–250 | 2 | +108 to +1131 | (b0 − 247) × 256 + b1 + 108 |
| 251–254 | 2 | −1131 to −108 | −(b0 − 251) × 256 − b1 − 108 |
| 28 | 3 | −32768 to +32767 | b1 << 8 | b2, signed |
| 29 | 5 | −231 to 231 − 1 | b1 << 24 | b2 << 16 | b3 << 8 | b4, signed |
The 1, 2 and 3-byte forms are the same as in Type 2 charstrings. Examples from the
specification: 0 is 8b; 100 ef; −100 27; 1000
fa 7c; −1000 fe 7c; 10000 1c 27 10; −10000
1c d8 f0; 100000 1d 00 01 86 a0; −100000
1d ff fe 79 60.
Real operands
Byte 30 starts a real number written as decimal digits, two 4-bit nibbles per byte,
high nibble first. It ends with a nibble f, adding a second
f if needed to fill the byte.
| Nibble | Meaning |
|---|---|
0–9 | The digits 0 to 9 |
a | Decimal point |
b | E (exponent follows) |
c | E− (negative exponent follows) |
d | Reserved |
e | Minus sign |
f | End of number |
So −2.25 is 1e e2 a2 5f and 0.140541E−3 is
1e 0a 14 05 41 c3 ff.
Operand types
| Type | Meaning |
|---|---|
| number | An integer or real. |
| boolean | An integer, 0 (false) or 1 (true). |
| SID | A string identifier. |
| array | One or more numbers; the count is the number of operands before the operator. |
| delta | A number, or an array stored as differences: a0, a1 − a0, a2 − a1, … |
Keys that are missing take their default value.
Name INDEX
An INDEX of the PostScript names (FontName or CIDFontName) of the fonts in the set,
sorted by byte value, a name sorting before any longer name it is a prefix of. There
must be at least one; in OpenType, exactly one. For compatibility, names should be at
most 127 characters (63 for Adobe Type Manager) and avoid [ ] ( ) { } < > / %,
NUL, space, tab, CR, LF and form feed; the recommended set is codes 33 to 126. A font
can be deleted from a set without rebuilding it by setting the first byte of its name
to 0.
Top DICT
The Top DICT INDEX holds one DICT per font, in the same order as the Name INDEX. Most keys carry the names of Type 1 font dictionary keys; those marked FontInfo come from Type 1’s FontInfo dictionary.
| Operator | Name | Operands | Default and notes |
|---|---|---|---|
0 | version | SID | FontInfo. |
1 | Notice | SID | FontInfo. |
12 0 | Copyright | SID | FontInfo. |
2 | FullName | SID | FontInfo. |
3 | FamilyName | SID | FontInfo. |
4 | Weight | SID | FontInfo. |
12 1 | isFixedPitch | boolean | 0 (false). FontInfo. |
12 2 | ItalicAngle | number | 0. FontInfo. |
12 3 | UnderlinePosition | number | −100. FontInfo. |
12 4 | UnderlineThickness | number | 50. FontInfo. |
12 5 | PaintType | number | 0. |
12 6 | CharstringType | number | 2. Type 1 charstrings would be 1; OpenType requires 2. |
12 7 | FontMatrix | array | 0.001 0 0 0.001 0 0. |
13 | UniqueID | number | – |
5 | FontBBox | array | 0 0 0 0. Left, bottom, right, top. |
12 8 | StrokeWidth | number | 0. |
14 | XUID | array | – |
15 | charset | number | 0. Offset (0) to the charset, or a predefined charset ID. |
16 | Encoding | number | 0. Offset (0) to the encoding, or a predefined encoding ID. |
17 | CharStrings | number | Offset (0) to the CharStrings INDEX. Required. |
18 | Private | number number | Size and offset (0) of the Private DICT. |
12 20 | SyntheticBase | number | Index of the base font of a synthetic font. |
12 21 | PostScript | SID | Embedded PostScript code. |
12 22 | BaseFontName | SID | FontName of the original multiple master font, added to instances embedded in PDF. |
12 23 | BaseFontBlend | delta | The user design vector used to make that instance. |
CIDFonts add these operators:
| Operator | Name | Operands | Default and notes |
|---|---|---|---|
12 30 | ROS | SID SID number | Registry, Ordering and Supplement. Must be the first operator in a CIDFont’s Top DICT. |
12 31 | CIDFontVersion | number | 0. |
12 32 | CIDFontRevision | number | 0. |
12 33 | CIDFontType | number | 0. |
12 34 | CIDCount | number | 8720. |
12 35 | UIDBase | number | – |
12 36 | FDArray | number | Offset (0) to the Font DICT INDEX. |
12 37 | FDSelect | number | Offset (0) to the FDSelect data. |
12 38 | FontName | SID | The FontName of a Font DICT. |
A synthetic font’s Top DICT starts with SyntheticBase and a CIDFont’s
with ROS; any other first operator means an ordinary name-keyed font, so
the kind can be told without parsing the whole DICT. All one-byte operators not listed
here or under the Private DICT (22–27, 31) and the two-byte
operators 12 15, 12 16, 12 24 to
12 29 and 12 39 to 12 255 are reserved.
Strings
Every string except the font names is stored once, in the String INDEX, and referred to by a SID. SIDs 0 to 390 are the 391 standard strings, which a reader keeps in its own table; SID 391 is the first entry of the String INDEX, SID 392 the second, and so on (entry = SID − 391). A font with no strings of its own has an empty String INDEX.
Glyphs, encodings and charsets
Glyphs are numbered from 0 (GID) in CharStrings order. The charset gives each glyph a
name (a SID; in CIDFonts a CID), and the encoding gives some glyphs a one-byte
character code: think of three parallel arrays indexed by GID. GID 0 is always
.notdef, unencoded, so the charset and encoding arrays start at GID 1.
In an OpenType font, characters are mapped by cmap
and the CFF encoding matters only to PostScript use.
Encodings
The Encoding operand is either a predefined encoding ID or an offset to
an encoding. CIDFonts have no encoding (and the default Standard Encoding is not
applied to them).
| ID | Predefined encoding |
|---|---|
| 0 | Standard Encoding (the default) |
| 1 | Expert Encoding |
A font may use a predefined encoding without having every glyph in it, as long as every glyph it does have is encoded exactly as there. Predefined encodings map codes to SIDs; custom encodings map codes to GIDs. Glyphs that no encoding mentions are unencoded. Fonts can share an encoding by pointing to the same offset.
A custom encoding starts with a format byte. Its low 7 bits give the format; its
high bit (0x80) says supplements follow.
| Format | Type | Name | Description |
|---|---|---|---|
| 0 | Card8 | format | 0 |
Card8 | nCodes | Number of encoded glyphs. | |
Card8 × nCodes | code | The code of GID 1, GID 2, … Suits codes in random order. | |
| 1 | Card8 | format | 1 |
Card8 | nRanges | Number of ranges. | |
Range1 × nRanges | Range1 | Each Card8 first, Card8 nLeft: codes first to first + nLeft for consecutive glyphs. Codes 51 to 55 are 51 4; all 256 codes in order are 0 255. |
Supplements, after either format when the high bit is set, give extra codes for glyphs already encoded:
| Type | Name | Description |
|---|---|---|
Card8 | nSups | Number of supplements. |
Card8 | code | A further code… |
SID | glyph | …for the glyph with this name. (Repeated nSups times.) |
Charsets
The charset operand is either a predefined charset ID or an offset.
The number of glyphs, nGlyphs, is the CharStrings INDEX count; a charset
names nGlyphs − 1 glyphs, skipping .notdef.
| ID | Predefined charset |
|---|---|
| 0 | ISOAdobe (the default) |
| 1 | Expert |
| 2 | ExpertSubset |
A font may use a predefined charset if its first nGlyphs glyphs match
it exactly. CIDFonts must not use predefined charsets.
| Format | Type | Name | Description |
|---|---|---|---|
| 0 | Card8 | format | 0 |
SID × (nGlyphs − 1) | glyph | The name of GID 1, GID 2, … | |
| 1 | Card8 | format | 1 |
| Range1 × varies | Range1 | Each SID first, Card8 nLeft: names first to first + nLeft for consecutive glyphs. Ranges continue until all glyphs are named; there is no count. | |
| 2 | Card8 | format | 2 |
| Range2 × varies | Range2 | As format 1 but with Card16 nLeft, for large ordered sets such as CJK CIDFonts. |
CharStrings INDEX
One charstring per glyph, by GID; the first must be .notdef, and the
count is the number of glyphs. CharstringType 2 means
Type 2 charstrings; type 1 charstrings
are described in Adobe’s Type 1 Font Format book.
Private DICT
The Private DICT holds hinting values and the widths and subroutines the charstrings use. It is required, but may have length 0 if every value is the default.
| Operator | Name | Operands | Default and notes |
|---|---|---|---|
6 | BlueValues | delta | Pairs of alignment zones; the first is the baseline overshoot zone. |
7 | OtherBlues | delta | Further zones below the baseline. Must come after BlueValues. |
8 | FamilyBlues | delta | The family’s regular font’s BlueValues. |
9 | FamilyOtherBlues | delta | The family’s OtherBlues. Must come after FamilyBlues. |
12 9 | BlueScale | number | 0.039625. |
12 10 | BlueShift | number | 7. |
12 11 | BlueFuzz | number | 1. |
10 | StdHW | number | Dominant horizontal stem width. |
11 | StdVW | number | Dominant vertical stem width. |
12 12 | StemSnapH | delta | Common horizontal stem widths. |
12 13 | StemSnapV | delta | Common vertical stem widths. |
12 14 | ForceBold | boolean | false. |
12 17 | LanguageGroup | number | 0. 1 means complex CJK glyphs. |
12 18 | ExpansionFactor | number | 0.06. |
12 19 | initialRandomSeed | number | 0. |
19 | Subrs | number | Offset (self), from the start of this Private DICT, to the local Subr INDEX. Absent if there are none. |
20 | defaultWidthX | number | 0. The width of glyphs whose charstring gives none. |
21 | nominalWidthX | number | 0. Added to a width given in a charstring. |
A glyph whose width equals defaultWidthX leaves it out of its
charstring; any other width is stored as the difference from
nominalWidthX, chosen so most differences fit in one byte. Earlier
versions also had ForceBoldThreshold and lenIV; both were
removed in 2000.
Subroutines
Charstrings can call shared pieces of charstring code. Local subroutines belong to
one font (or, in a CIDFont, one Private DICT) and are found through the
Subrs operator. Global subroutines, in the Global Subr INDEX straight after
the String INDEX, can be used by every font in the set; a set without any has an empty
INDEX. A charstring calls subroutine n with n − bias, so that
small negative numbers are used as well as positive ones. The bias depends on the
number of subroutines in that INDEX:
if (CharstringType == 1) bias = 0;
else if (nSubrs < 1240) bias = 107;
else if (nSubrs < 33900) bias = 1131;
else bias = 32768;
A font maker that wants most calls to take one byte puts the most used subroutines where the bias makes their numbers small. With bias 107, index 0 to 214 is called as −107 to +107 (one byte) and 215 to 1238 as +108 to +1131 (two bytes). With bias 1131, index 1024 to 1238 takes one byte, 0 to 1023 and 1239 to 2262 two, and 2263 to 33898 three. With bias 32768, index 32661 to 32875 takes one byte, 31637 to 32660 and 32876 to 33899 two, and the rest three.
Synthetic fonts
A synthetic font is another font in the set with a different matrix or encoding, such
as an oblique or condensed version. Its Top DICT must begin with
SyntheticBase, the index of the base font, and may also contain only
FullName, ItalicAngle, FontMatrix and
Encoding, which override the base font’s. The base may not be a CIDFont or
another synthetic font. Since OpenType allows one font per table, synthetic fonts do
not occur in OpenType.
CID-keyed fonts
A CIDFont, usually for Chinese, Japanese or Korean, names glyphs by number (CID)
instead of by string, and gets its character mapping from a CMap outside the font (in
OpenType, from cmap). Its Top DICT starts with ROS, and:
FDArraypoints to a Font DICT INDEX. Each Font DICT applies to a group of glyphs and has its ownPrivateoperator, and so its own Private DICT and local subroutines.- The charset maps GIDs to CIDs instead of SIDs. A complete CIDFont has an identity charset (GID = CID), one range starting at CID 1; subsets usually need more ranges.
FDSelectsays which Font DICT each glyph uses.- There is no
Encodingoperator.
FDSelect
| Format | Type | Name | Description |
|---|---|---|---|
| 0 | Card8 | format | 0 |
Card8 × nGlyphs | fds | The Font DICT index of every glyph, .notdef included. | |
| 3 | Card8 | format | 3 |
Card16 | nRanges | Number of ranges. | |
Range3 × nRanges | Range3 | Each Card16 first, Card8 fd: glyphs from first up to, not including, the next range’s first use Font DICT fd. The first range starts at GID 0; ranges are in increasing order. | |
Card16 | sentinel | The number of glyphs, ending the last range. |
Formats 1 and 2 are not defined.
Embedded PostScript and the FontSet wrapper
A Top DICT may have at most one PostScript operator, whose string a
PostScript interpreter runs after building the font dictionary and before
definefont, with that dictionary on the dictionary stack. In a CIDFont it
may also be in a Font DICT, where it runs on that sub-dictionary. Software that does not
run PostScript ignores it. When an OpenType font is converted to bare CFF for embedding
in a document, Adobe recommends recording the embedding permissions this way, for
example /FSType 8 def /OrigFontType /OpenType def.
Outside OpenType, a CFF FontSet sent to a printer is wrapped as a PostScript
resource: %!PS-Adobe-3.0 Resource-FontSet, DSC comments,
/FontSetInit /ProcSet findresource begin, then
/name n StartData, one space and n bytes
of CFF data, whose (0) offsets count from the byte after that space.
Example
The start of the CFF table of Noto Sans Javanese Regular
(NotoSansJavanese-Regular.otf, shipped with macOS), at file offset
2,176:
00000880 01 00 04 02 00 01 01 01 19 4E 6F 74 6F 53 61 6E .........NotoSan
00000890 73 4A 61 76 61 6E 65 73 65 2D 52 65 67 75 6C 61 sJavanese-Regula
000008A0 72 00 01 01 01 33 F9 AE 00 F9 AF 01 F9 B0 0C 00 r....3..........
000008B0 F9 B1 02 F9 B2 03 1D FF FF F9 E1 FE 28 1D 00 00 ............(...
000008C0 08 A1 FA A8 05 1D 00 00 25 75 0F B7 1D 00 00 9E ........%u......
000008D0 CF 12 1D 00 00 25 82 11 01 98 02 00 01 00 05 00 .....%..........
| Table offset | Bytes | Meaning |
|---|---|---|
0 | 01 00 04 02 | Header: version 1.0, 4-byte header, 2-byte (0) offsets. |
4 | 00 01 01 01 19 | Name INDEX: 1 name, 1-byte offsets 1 and 25, so a 24-byte name: NotoSansJavanese-Regular. |
33 | 00 01 01 01 33 | Top DICT INDEX: 1 DICT of 50 bytes. |
38 | F9 AE 00 | (249 − 247) × 256 + 174 + 108 = 794, version: string SID 794. |
41 | F9 AF 01 … F9 B2 03 | Notice 795, Copyright (0C 00) 796, FullName 797, FamilyName 798. |
54 | 1D FF FF F9 E1 FE 28 1D 00 00 08 A1 FA A8 05 | FontBBox −1567 −916 2209 1044. |
69 | 1D 00 00 25 75 0F | charset at 9,589. |
75 | B7 1D 00 00 9E CF 12 | Private: 44 bytes at 40,655. |
82 | 1D 00 00 25 82 11 | CharStrings at 9,602. |
88 | 01 98 02 00 01 00 05 … | String INDEX: 408 strings, 2-byte offsets, so SIDs 391 to 798; the five above are its last five. |
There is no Encoding (so the default 0) and no ROS, so this
is a name-keyed font. The charset at 9,589 is 02 01 87 00 01 00 01 00 00 01 89 01 90:
format 2, SIDs 391–392 (NULL and CR, the first two strings),
SID 1 (space), then SIDs 393–793, naming all 404 glyphs after
.notdef. The CharStrings INDEX starts 01 95 02: 405 glyphs,
which matches numGlyphs in maxp. The Private DICT is:
7C 9A F8 AC 9A F7 5B 9A F7 AB 9A 06 BlueValues −15 15 536 15 199 15 279 15
FC BB 9A 07 OtherBlues −551 15
1E A0 5F 0C 09 BlueScale 0.05
8B 0C 0B BlueFuzz 0
CD 0A StdHW 66
DA 0B StdVW 79
CD 95 0C 0C StemSnapH 66 10
DA 92 0C 0D StemSnapV 79 7
1D 00 00 05 1D 15 nominalWidthX 1309
B7 13 Subrs 44
The deltas decode to blue zones −15 to 0, 536 to 551, 750 to 765 and 1044 to 1059,
another zone −551 to −536, and stem widths 66 and 76, 79 and 86. Subrs 44
means the local Subr INDEX starts right after these 44 bytes. The
charstrings page decodes this
font’s .notdef.
Standard strings
SIDs 0 to 390, ten to a row.
| SID | Strings |
|---|---|
| 0–9 | .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft |
| 10–19 | parenright asterisk plus comma hyphen period slash zero one two |
| 20–29 | three four five six seven eight nine colon semicolon less |
| 30–39 | equal greater question at A B C D E F |
| 40–49 | G H I J K L M N O P |
| 50–59 | Q R S T U V W X Y Z |
| 60–69 | bracketleft backslash bracketright asciicircum underscore quoteleft a b c d |
| 70–79 | e f g h i j k l m n |
| 80–89 | o p q r s t u v w x |
| 90–99 | y z braceleft bar braceright asciitilde exclamdown cent sterling fraction |
| 100–109 | yen florin section currency quotesingle quotedblleft guillemotleft guilsinglleft guilsinglright fi |
| 110–119 | fl endash dagger daggerdbl periodcentered paragraph bullet quotesinglbase quotedblbase quotedblright |
| 120–129 | guillemotright ellipsis perthousand questiondown grave acute circumflex tilde macron breve |
| 130–139 | dotaccent dieresis ring cedilla hungarumlaut ogonek caron emdash AE ordfeminine |
| 140–149 | Lslash Oslash OE ordmasculine ae dotlessi lslash oslash oe germandbls |
| 150–159 | onesuperior logicalnot mu trademark Eth onehalf plusminus Thorn onequarter divide |
| 160–169 | brokenbar degree thorn threequarters twosuperior registered minus eth multiply threesuperior |
| 170–179 | copyright Aacute Acircumflex Adieresis Agrave Aring Atilde Ccedilla Eacute Ecircumflex |
| 180–189 | Edieresis Egrave Iacute Icircumflex Idieresis Igrave Ntilde Oacute Ocircumflex Odieresis |
| 190–199 | Ograve Otilde Scaron Uacute Ucircumflex Udieresis Ugrave Yacute Ydieresis Zcaron |
| 200–209 | aacute acircumflex adieresis agrave aring atilde ccedilla eacute ecircumflex edieresis |
| 210–219 | egrave iacute icircumflex idieresis igrave ntilde oacute ocircumflex odieresis ograve |
| 220–229 | otilde scaron uacute ucircumflex udieresis ugrave yacute ydieresis zcaron exclamsmall |
| 230–239 | Hungarumlautsmall dollaroldstyle dollarsuperior ampersandsmall Acutesmall parenleftsuperior parenrightsuperior twodotenleader onedotenleader zerooldstyle |
| 240–249 | oneoldstyle twooldstyle threeoldstyle fouroldstyle fiveoldstyle sixoldstyle sevenoldstyle eightoldstyle nineoldstyle commasuperior |
| 250–259 | threequartersemdash periodsuperior questionsmall asuperior bsuperior centsuperior dsuperior esuperior isuperior lsuperior |
| 260–269 | msuperior nsuperior osuperior rsuperior ssuperior tsuperior ff ffi ffl parenleftinferior |
| 270–279 | parenrightinferior Circumflexsmall hyphensuperior Gravesmall Asmall Bsmall Csmall Dsmall Esmall Fsmall |
| 280–289 | Gsmall Hsmall Ismall Jsmall Ksmall Lsmall Msmall Nsmall Osmall Psmall |
| 290–299 | Qsmall Rsmall Ssmall Tsmall Usmall Vsmall Wsmall Xsmall Ysmall Zsmall |
| 300–309 | colonmonetary onefitted rupiah Tildesmall exclamdownsmall centoldstyle Lslashsmall Scaronsmall Zcaronsmall Dieresissmall |
| 310–319 | Brevesmall Caronsmall Dotaccentsmall Macronsmall figuredash hypheninferior Ogoneksmall Ringsmall Cedillasmall questiondownsmall |
| 320–329 | oneeighth threeeighths fiveeighths seveneighths onethird twothirds zerosuperior foursuperior fivesuperior sixsuperior |
| 330–339 | sevensuperior eightsuperior ninesuperior zeroinferior oneinferior twoinferior threeinferior fourinferior fiveinferior sixinferior |
| 340–349 | seveninferior eightinferior nineinferior centinferior dollarinferior periodinferior commainferior Agravesmall Aacutesmall Acircumflexsmall |
| 350–359 | Atildesmall Adieresissmall Aringsmall AEsmall Ccedillasmall Egravesmall Eacutesmall Ecircumflexsmall Edieresissmall Igravesmall |
| 360–369 | Iacutesmall Icircumflexsmall Idieresissmall Ethsmall Ntildesmall Ogravesmall Oacutesmall Ocircumflexsmall Otildesmall Odieresissmall |
| 370–379 | OEsmall Oslashsmall Ugravesmall Uacutesmall Ucircumflexsmall Udieresissmall Yacutesmall Thornsmall Ydieresissmall 001.000 |
| 380–389 | 001.001 001.002 001.003 Black Bold Book Light Medium Regular Roman |
| 390 | Semibold |
Predefined encodings and charsets
Standard Encoding (ID 0)
Codes and the SIDs they map to; every other code is .notdef (SID 0).
| Codes | SIDs | From – to |
|---|---|---|
| 32–126 | 1–95 | space – asciitilde |
| 161–175 | 96–110 | exclamdown – fl |
| 177–180 | 111–114 | endash – periodcentered |
| 182–189 | 115–122 | paragraph – perthousand |
| 191 | 123 | questiondown |
| 193–200 | 124–131 | grave – dieresis |
| 202–203 | 132–133 | ring, cedilla |
| 205–208 | 134–137 | hungarumlaut – emdash |
| 225 | 138 | AE |
| 227 | 139 | ordfeminine |
| 232–235 | 140–143 | Lslash – ordmasculine |
| 241 | 144 | ae |
| 245 | 145 | dotlessi |
| 248–251 | 146–149 | lslash – germandbls |
Expert Encoding (ID 1)
| Codes | SIDs | From – to |
|---|---|---|
| 32 | 1 | space |
| 33–34 | 229–230 | exclamsmall, Hungarumlautsmall |
| 36–43 | 231–238 | dollaroldstyle – onedotenleader |
| 44–46 | 13–15 | comma, hyphen, period |
| 47 | 99 | fraction |
| 48–57 | 239–248 | zerooldstyle – nineoldstyle |
| 58–59 | 27–28 | colon, semicolon |
| 60–63 | 249–252 | commasuperior – questionsmall |
| 65–69 | 253–257 | asuperior – esuperior |
| 73 | 258 | isuperior |
| 76–79 | 259–262 | lsuperior – osuperior |
| 82–84 | 263–265 | rsuperior – tsuperior |
| 86 | 266 | ff |
| 87–88 | 109–110 | fi, fl |
| 89–90 | 267–268 | ffi, ffl |
| 91 | 269 | parenleftinferior |
| 93–126 | 270–303 | parenrightinferior – Tildesmall |
| 161–163 | 304–306 | exclamdownsmall – Lslashsmall |
| 166–170 | 307–311 | Scaronsmall – Caronsmall |
| 172 | 312 | Dotaccentsmall |
| 175 | 313 | Macronsmall |
| 178–179 | 314–315 | figuredash, hypheninferior |
| 182–184 | 316–318 | Ogoneksmall – Cedillasmall |
| 188–190 | 158, 155, 163 | onequarter, onehalf, threequarters |
| 191–197 | 319–325 | questiondownsmall – twothirds |
| 200–203 | 326, 150, 164, 169 | zerosuperior, onesuperior, twosuperior, threesuperior |
| 204–223 | 327–346 | foursuperior – commainferior |
| 224–255 | 347–378 | Agravesmall – Ydieresissmall |
ISOAdobe charset (ID 0)
GIDs 1 to 228 are SIDs 1 to 228 in order, space to
zcaron.
Expert charset (ID 1)
SIDs in GID order from GID 1 (165 glyphs): 1, 229–238, 13–15, 99, 239–248, 27–28, 249–266, 109–110, 267–318, 158, 155, 163, 319–325, 326, 150, 164, 169, 327–378.
ExpertSubset charset (ID 2)
SIDs in GID order from GID 1 (86 glyphs): 1, 231–232, 235–238, 13–15, 99, 239–248, 27–28, 249–251, 253–266, 109–110, 267–270, 272, 300–302, 305, 314–315, 158, 155, 163, 320–325, 326, 150, 164, 169, 327–346.