Although Fontlab Ltd. debuted the Photofont technology some 8 years ago, the typographic community did not show much interest for multi-color fonts or typography. In 2013, it changed. Actually, this started a few years ago with Apple introducing the color emoji font into iOS, and then Mac OS X 10.7. Now, all major industry players (Apple, Adobe, Mozilla, Google and Microsoft) have proposed their formats, which aim to extend the OpenType font format by the ability of including color glyph information. The proposals differ in many aspects. Below is a discussion of the proposals along with some personal comments.
This article is very technical. No completeness or correctness of the information presented below, and all views are personal.
The video tutorial by Adam Twardoch accompanies this article by providing a more practical take on color font creation issues.
Theoretically, OpenType PS (.otf) supports fractional coordinates, but there are some technical caveats associated with it. In principle, we could say that the final font formats only support integer coordinates but during the work process, having fractional coordinates would be helpful.
For example, if you have drawn your glyphs on an integer grid, but then you’d like to make some adjustments such as: make it slightly more narrow, then slightly wider, then perhaps slant it by a few degrees and then slant it back, or make some tiny rotations, or maybe scale the glyph down and then up again — on an integer grid, the result will have accumulated the rounding errors from every one of these operations. On a fractional grid, all your shapes (the positions of the BCPs, the angles, the stem thicknesses etc.) will always remain just as in the original design.
Therefore, a hardwired integer grid such as the one in FontLab Studio does impose a certain limitation onto the type designer. A fractional grid such as the one in Fontographer allows you to avoid those rounding errors. But of course, at the very end, when you decide to generate or ship the font, you’ll need to align your points to an integer grid, or the software will do this for you.