Using Y shift in instance


For Noto Sans Tamil I have UI versions that have a y-shift in order to fit the design in prescribed UI heights. I do this by adding a custom parameter to the instances of the UI fonts with Filter = “ Transformations; OffsetY: 51; Origin: 4; “. This works… almost. In the generated OTFs that Glyphs has created, the alignment zones for the hints have not not been shifted along with the outlines and are doing more harm than good. It would be nice if this oversight is fixed.


The zones are not effected by the transform parameter. The Transformations filter is not supposed to change the zones. There is currently not way to change the zones per instance. I’ll see what I can do.

You will have to touch the alignment zones when instances are interpolated. That seems an entry point to apply to the instance whatever font wide transformation is applied which effects y coordinates.


I wonder what these prescribed heights are, and if there is not a better way to solve this, like adapting the OS/2 ascender and descender entries.

And for that, you could use parameters.

The UI elements of an operating system, Android for example, position text that assumes a certain maximum character height for a given size. Within that height there is a fixed ratio of ascender and descender, assuming the Latin script (and within Latin usually the characters used for English). For scripts that require a large descender it is an option to mutilate elements below the baseline, making a font look silly. But more elegant to ‘shift the baseline’, by moving all characters up by a certain amount. But that is not a good idea for when the typeface is used outside the UI. So there is a normal document version and a shifted UI version.

Regardless of my particular requirements. At the moment Glyphs gives the option to apply a transformation through instance parameters, everything that has coordinates has to be subject to the transformation, just as much as everything has to be interpolated.