mirror of
https://github.com/rsms/inter.git
synced 2024-11-28 22:13:40 +03:00
workaround for bug in glyphslib/fontmake that generates UFO glyphs with fractional widths. Closes #508
This commit is contained in:
parent
4fd701d529
commit
adf3654b33
15
misc/tools/find-ufo-frac-advance-widths.sh
Executable file
15
misc/tools/find-ufo-frac-advance-widths.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script finds UFO glyphs with fractional advance width, which is invalid.
|
||||
# See https://github.com/rsms/inter/issues/508
|
||||
#
|
||||
cd "$(dirname "$0")"/../../build/ufo
|
||||
ADVANCES=$(rg 'advance width'|awk 'BEGIN {FS=" "} {print $2}')
|
||||
NOTREALLYFLOATS=$((rg '\.0\b'|wc -l) <<< "$ADVANCES")
|
||||
FLOATS=$((rg '\.\d+'|wc -l) <<< "$ADVANCES")
|
||||
INTS=$((rg -v '\.'|wc -l) <<< "$ADVANCES")
|
||||
|
||||
printf "Total: $((INTS+FLOATS)) (sanity: $(wc -l <<< "$ADVANCES"))\nFloats: $((FLOATS-NOTREALLYFLOATS))\nInts: $((INTS+NOTREALLYFLOATS))\n"
|
||||
|
||||
echo "Occurance Fraction"
|
||||
(rg -o '\.\d{1,12}'|sort|uniq -c) <<< "$ADVANCES"
|
@ -15,12 +15,27 @@ def ufo_set_wws(ufo):
|
||||
ufo.info.openTypeNameWWSSubfamilyName = subfamily
|
||||
|
||||
|
||||
# See https://github.com/rsms/inter/issues/508
|
||||
# TODO: Remove when https://github.com/googlefonts/glyphsLib/issues/821 is fixed
|
||||
def fix_fractional_advance_width(ufo):
|
||||
for g in ufo:
|
||||
g.width = round(g.width)
|
||||
|
||||
|
||||
def main(argv):
|
||||
ufo_file = argv[1]
|
||||
if ufo_file.find("Display") == -1:
|
||||
return # skip fonts of "default" family
|
||||
|
||||
# TODO: Uncomment when https://github.com/googlefonts/glyphsLib/issues/821 is fixed
|
||||
# if ufo_file.find("Display") == -1:
|
||||
# return # skip fonts of "default" family
|
||||
|
||||
ufo = defcon.Font(ufo_file)
|
||||
ufo_set_wws(ufo)
|
||||
|
||||
if ufo_file.find("Display") != -1:
|
||||
ufo_set_wws(ufo)
|
||||
|
||||
fix_fractional_advance_width(ufo)
|
||||
|
||||
ufo.save(ufo_file)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user