- open the variable font in VTT
Tools
↦Autohint
↦Light Latin
- clean up the hints
Tools
↦Recalc MAXP
- use
fonttools
varLib
to make instances (instance-[reg|cond].sh
in/tools
) - open your new instance in VTT and autohint it again
- do not save it
- copy the
cpgm
into a text file and save that - close the instance and do not save it
- open the
cpgm
in a text editor - add
GROUP Hebrew
to the top, right below the/* ACT generated...
line - copy the Hebrew height CVT section from the source VF: it should be something very similar to the below
Hebrew
SquareHeight
106: 1290
ASM("SVTCA[Y]")
ASM("CALL[], 106, 89")
108: 0 /* base line */
ASM("SVTCA[Y]")
ASM("CALL[], 108, 89")
RoundHeight
107: 20 ~ 106 @ 42 /* overshoot height */
109: -4 ~ 108 @ 60 /* overshoot baseline */
110: -492 /* descender */
-
paste it into the new instance's
cpgm
between theFigure ...
andOther ...
sections -
change each Hebrew CVT from 1xx to 3xx: in other words, add 200 to every occurrence of
[106...110]
in that section -
dump the instance's
VTTTalk
to text -
open the
VTTTalk
in a text editor -
regex:
- search for
ResYAnchor\((\d+),106\)
- replace with
ResYAnchor\(\1,306\)
- repeat for
107
&307
and so on - finally, save
- import the
cpgm
andVTTTalk
into the instance - open the instance in VTT
Tools
↦Compile
↦Control values
Tools
↦Compile everything for all glyphs
- you will probably have errors: this is expected
ctrl+3
to open the pre-program- compile it with
ctrl+r
ctrl+7
to open the font program- compile it with
ctrl+r
- compile everything for all again
- if still errors, try to debug
- check your Hebrew CVTs
ctrl+9
to open the glyph palette
- proof them
- make sure the Hebrew heights in particular look good
Tools
↦Recalc MAXP
- you did it, yay