The “cidfontinfo” File

I realized today, thanks to a tweet by @mashabow, that we have never fully documented the “cidfontinfo” file.

This file started out as the primary control file for our first-generation CIDFont resource compiler, called mkcidfont, which ran only on SunOS.

The “cidfontinfo” file then served as one of the control files for the makeotf tool, which is the industrial-strength OpenType font compiler that is included with AFDKO. The original version of makeotf ran on SunOS, but the current version that is included in AFDKO runs on Mac OS X and Windows. Of course, not all of this file’s entries are used by the makeotf tool, which I’ll get to later in this brief blog post.

Finally, the “cidfontinfo” file serves as the primary control file for our current-generation CIDFont resource compiler, called makeCIDFont, which is a command-line tool that runs on Mac OS X and Windows. Note that this tool is not bundled with AFDKO, and is thus proprietary. However, much of its functionality is built into the mergeFonts tool, which is included in AFDKO. In fact, makeCIDFont is nothing more than a tool that carefully and cleverly scripts other tools that are included in AFDKO, such as mergeFonts, rotateFont, tx, and autohint.

In summary, the “cidfontinfo” file acts as a control file for multiple contemporary font development tools, such as makeCIDFont (proprietary), mergeFonts, and makeotf. And, not all lines are used by each font development tool. To help explain this, the current “cidfontinfo” file for KazurakiSP2N-Light is shown below as an example. The use of “mergeFonts” or “makeotf” as comments following the “#” character indicates which lines are used or recognized by which AFDKO tool (because the makeCIDFont tool is proprietary, it is not indicated below):

FontName (KazurakiSP2N-Light) # mergeFonts (/CIDFontName)
FullName (Kazuraki SP2N OpenType Light) # mergeFonts (/FontInfo dictionary's /FullName string)
FamilyName (Kazuraki SP2N OpenType)
Weight (Light)
version (4.001) # mergeFonts (/CIDFontVersion)
Registry (Adobe) # mergeFonts (/CIDSystemInfo dictionary's /Registry string)
Ordering (Identity) # mergeFonts (/CIDSystemInfo dictionary's /Ordering string)
Supplement 0 # mergeFonts (/CIDSystemInfo dictionary's /Supplement integer value)
Layout (AI0-KazurakiSP2N)
XUID [1 11 9273828] # mergeFonts (/XUID array)
AdobeCopyright (Copyright 2006-2010 Adobe Systems Incorporated. All Rights Reserved.)
Trademark (Kazuraki is either a registered trademark or trademark of Adobe Systems Incorporated in the United States and/or other countries.) # mergeFonts (/FontInfo dictionary's /Notice string)
FSType 8
Language (Japanese)
isFixedPitch false
Serif true
IsBoldStyle false # makeotf
IsItalicStyle false # makeotf
PreferOS/2TypoMetrics true # makeotf
IsOS/2WidthWeigthSlopeOnly true # makeotf
IsOS/2OBLIQUE false # makeotf
UseOldNameID4 false # makeotf
LicenseCode ADOBE # makeotf

It is useful to point out that the “cidfontinfo” file is completely optional for the makeotf tool, and its entries merely serve as a convenience, so that particular options need not be specified as command-line arguments, and can instead be encapsulated in a file. For example, the settings for ‘PreferOS/2TypoMetrics’, ‘IsOS/2WidthWeigthSlopeOnly’, and ‘IsOS/2OBLIQUE’ as shown in the above “cidfontinfo” file could also be specified as part of the makeotf command line, as follows:

-osbOn 7 -osbOn 8 -osbOff 9

I hope that this brief explanation is useful for some developers.

Comments are closed.