Posted 25 November, 2016
All axes in variable fonts work in a piecewise linear manner, including their effect on metrics. However, it may turn out to be useful for variable font clients to know something more about the way a particular axis affects a font’s metrics.
I therefore propose the following four classes — all subcategories of piecewise linear, of course — reflecting different ways that metrics can change as an axis is adjusted. Once a client has determined which type of metrics-effect the axis has, it might offer a more suitable user interface for axis adjustment, or switch to a more efficient algorithm.
wdthaxes work this way. b) The metrics get narrower in proportion to the axis setting. A
wdthaxis that worked in the (b) manner would be perverse. We need to know if we are talking about all glyphs adjusting at the same rate, or just that the axis is linear on a per-glyph basis.
wdthaxes work in the (a) manner: every increase in the axis results in either an increase or no change in metrics. A
wdthaxis that worked in the (b) manner would be perverse.
Note that each category is a superset of the previous categories.
Using this categorization in practice:
wdthaxis. In general, all fonts made with just one set of
gvardeltas for the metrics are linear on a per-glyph basis (in other words, fonts with no intermediate masters… in other words, fonts where the default instance is at the axis’s minimum or maximum).
wdthaxes and most
wghtaxes would be expected to behave this way.
2b and 3b: The optical size axis often acts this way.
Storing some of this information inside the font is a potential next step. For example, it may turn out to be very useful to know that an axis
does not affect metrics at all. There exist unused flags in the
fvar table’s axis records, and one of them might be used to declare
“this axis is thanatometric”. A client reading the flag would then be free to avoid potentially expensive text reflow when the relevant axis was adjusted.
Finding the flag set could be a cue that the font is suitable for animation (like Zycon) or layering (like Jam and Lab).
In October I started a discussion on TypeDrawers about including the bit for thanatometry (which I called “static metrics”) in
fvar axis records:
Hrant Papazian notes that “thanatometric” is an awkward term for category 1. True, I didn’t really think it would catch on. Another candidate might be “static metrics”. But most established, perhaps, is “uniwidth”, as used by David Sudweeks in his excellent review of the history of these typefaces and why they are are useful, Uniwidth Typefaces, written for FontShop in 2015.