I like building fonts. I especially like building fonts with a large number of glyphs. Fortunately, my job entails developing OpenType CJK fonts, which means that I need to deal with fonts with thousands or tens of thousands of glyphs.
I built an “extreme” OpenType font last year, and spent the morning making it even more extreme. Given that “extreme” fonts are useful for stress-testing software that consumes fonts, I figured that this post would be a good opportunity to make it available to developers who may benefit by testing with this font.
Did I mention that I like building fonts? ☺
When I first developed this OpenType font, called UnicodeAll, last year, it included the following two “extreme” characteristics:
- The Format 12 (UTF-32) ‘cmap‘ subtable includes mappings for all 1,112,030 Unicode code points. In other words, all of the code points for the BMP (Basic Multilingual Plane) plus the 16 Supplementary Planes, but excluding the 2,048 Surrogates in the BMP, and excluding
0xFFFFin the BMP and in the 16 Supplementary Planes.
- The ‘CFF‘ table includes 256 FDArray elements (aka, hint dictionaries), which is the maximum.
This CID-keyed font advertised the special-purpose Adobe-Identity-0 ROS (/Registry, /Supplement, and /Ordering), and included only 257 glyphs. CID+0 acted as the .notdef glyph, and CIDs 1 through 256 used glyphs that correspond to the geta (下駄; U+3013) character, like this (sans registration marks, of course):
CIDs 1 through 256 were simply mapped from UTF-32 values that ended in
0x00 (CID+1) through
The third “extreme” characteristic that I added to this font today was the following:
- The ‘CFF‘ table includes 65,535 glyphs (CIDs 0 through 65534) are included, which is the maximum number of glyphs for a CIDFont resource.
CID+0 continues to act as the .notdef glyph, and CIDs 1 through 65534 map from their respective code points in the range
0x0000 (CID+1) through
0xFFFD (CID+65534) in the BMP and in each of the 16 Supplementary Planes. The glyphs for CIDs 1 through 65534 are the same, and are still that of the geta character.
I would like to point out that AFDKO tools, specifically tx, mergeFonts, and makeotf, were used to build the CIDFont resource, and the subsequent OpenType font. Of course, a couple of carefully-crafted Perl scripts were used to build some of the datafiles, such as the mergeFonts mapping files and mappings for the CMap resource.
Click here to download this font.