gftools icon indicating copy to clipboard operation
gftools copied to clipboard

Cut instances in the Noto recipe provider

Open simoncozens opened this issue 1 year ago • 2 comments

Now I've done various bits of optimisation, a good chunk of the time of a Noto build is caught up in instantiating UFOs in order to build static TTFs. I'd like to move towards cutting instances from VFs (that's what the front-end does, so it should be acceptable)...

However, this is currently draft because there are some differences between the cut instances and the UFO-instantiated builds, listed below. So we probably need a gftools-cut-instance which fixes up the problems, and use that instead of purely calling hb-subset.

  • winAscent and winDescent are not updated, neither with fontTools varLib.instancer or hb-subset.
  • hb-subset does not correct the macStyle and fsSelection bits for bold weights, leading to problems with style linking. (fontTools OK here)
  • I got multiple .notdef glyphs with hb-subset. (fontTools OK here)
  • hb-subset does not update the name table (fontTools does).

simoncozens avatar Sep 20 '24 11:09 simoncozens

FWIW, I think the win metrics are not supposed to get updated. We have a FB check that complains if members of a family don't share the same win metrics.

yanone avatar Jan 13 '25 12:01 yanone

That's GF policy, yes. But it's not OT spec. If the masters do have varying win metrics, then in general a static instance cutter should update them.

simoncozens avatar Jan 13 '25 13:01 simoncozens