1,111,998 to 1 → Adobe Blank 2

Well, it’s April 1st, which represents an ideal time to release and introduce Adobe Blank 2, which is a new version of the popular Adobe Blank font.

Both fonts map 1,111,998 Unicode code points to non-spacing and non-marking glyphs. Adobe Blank maps ranges of 2,048 contiguous Unicode code points to 2,048 such glyphs via the Format 12 (Segmented coverage) 'cmap' subtable. The original article explains why the number of glyphs is important, because a balance must be struck between the number of glyphs and the size of the 'cmap' table. I eventually found that 2,048 glyphs resulted in the smallest footprint when using conventional 'cmap' formats, which are broadly supported.

Adobe Blank 2 takes this idea a step further by using a somewhat non-conventional 'cmap' format, Format 13 (Many-to-one range mappings), which can map large ranges of UTF-32 code points to a single glyph. In other words, the number of functional glyphs can be reduced to only one, specifically CID+1. (CID+0 serves as the mandatory .notdef glyph.) The Format 13 'cmap' subtable was built by specifying the actual binary data in a ttx file (XML), and was inspired by the tofudetector project, but was tailored to exclude specific code points and code point ranges, specifically the 2,048 High and Low Surrogates (U+D800 through U+DFFF), the two noncharacters in the BMP and in each of the 16 Supplementary Planes (FFFE and FFFF), and the 32 noncharacters in the range U+FDD0 through U+FDEF.

The main benefit of using the Format 13 'cmap' subtable is that only a single functional glyph is necessary, which results in smaller 'CFF ' and 'cmap' tables, shrinking the size of the font to about 10% of the size of the original Adobe Blank font.

Both projects are kept separate because there are some environments that cannot yet consume the Format 13 'cmap' subtable.

Despite it being April 1st, Adobe Blank 2 is completely genuine and serious. ☺

Comments are closed.