mirror of
https://github.com/rsms/inter.git
synced 2024-12-13 12:14:53 +03:00
49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
import sys
|
|
import defcon
|
|
|
|
def ufo_set_wws(ufo):
|
|
# Fix missing WWS entries for Display fonts:
|
|
# See https://github.com/googlefonts/glyphsLib/issues/820
|
|
subfamily = ufo.info.styleName
|
|
if subfamily.find("Display") == -1:
|
|
return
|
|
subfamily = subfamily[len("Display"):].strip()
|
|
if subfamily == "":
|
|
# "Display" -> "Regular"
|
|
subfamily = "Regular"
|
|
ufo.info.openTypeNameWWSFamilyName = "Inter Display"
|
|
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:
|
|
w = int(round(g.width))
|
|
# set twice to work around bug or weird behavior in defcon.
|
|
# If we don't do this, then fractional widths with .0 fraction are
|
|
# not updated to integer values.
|
|
g.width = w + 1
|
|
g.width = w
|
|
|
|
|
|
def main(argv):
|
|
ufo_file = argv[1]
|
|
|
|
# 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)
|
|
|
|
if ufo_file.find("Display") != -1:
|
|
ufo_set_wws(ufo)
|
|
|
|
fix_fractional_advance_width(ufo)
|
|
|
|
ufo.save(ufo_file)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main(sys.argv)
|