O'Reilly logo

Fonts & Encodings by Yannis Haralambous

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

C.7. CID Fonts (Types 9–11, 32)

The idea behind CID fonts is very simple. Over the past 10 years, Adobe has defined "character collections" (incorrectly named character collections, although they concern glyphs, not characters), containing numbered glyphs: typically we have one character collection for traditional Chinese glyphs, another collection for simplified Chinese glyphs, a collection of Korean glyphs, a collection of Japanese glyphs, etc. CIDs are fonts whose glyphs have no names but are described in relation to a character collection.

A member of a character collection is identified by a number called "CID" (glyph identifier), whence the name of this type of font: the glyphs are identified by the CID numbers of a given character collection.

For a CID font, at least two files (or two PostScript resources) are needed:

  • The first is called CMap (for "character map"), and it establishes the correspondence between characters (as read by the PostScript show operator) and glyphs, in a character collection. Thus it is a somewhat peculiar font encoding: instead of using glyph names as its basis, as do the Type 1 font encodings, it uses CID—i.e., the glyph numbers in a given character collection.

  • The second is called CIDFont, and it is a sort of Type 1 font with up to 65,536 glyphs that are indexed not by glyph names but by CID numbers.

The traditional findfont operator establishes the connection between CIDFont and CMap: put together, these data form a CID font. Thus we can have ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required