Iosevka/pass1-cleanup.py
2015-08-17 06:52:28 +08:00

28 lines
920 B
Python

import fontforge
import sys
source = sys.argv[1]
font = fontforge.open(source)
font.mergeFeature(sys.argv[2])
# Replace accented characters into references
font.selection.select(("ranges", "unicode", None), 0x1FCD, 0x1FCF, 0x1FDD, 0x1FDF)
font.replaceWithReference(4)
font.selection.none()
font.selection.select(("ranges", "unicode", None), 0x0300, 0x036F)
font.replaceWithReference(4)
font.selection.none()
font.selection.select(("ranges", "unicode", None), 0x0000, 0xFFFF)
font.replaceWithReference(4)
font.selection.none()
font.selection.all()
font.removeOverlap()
font.round()
font.removeOverlap()
font.addExtrema()
font.simplify(2)
font.layers["Fore"].is_quadratic = False
font.addExtrema()
font.simplify(6, ("smoothcurves", "removesingletonpoints", "setstarttoextremum"), 0.2)
font.canonicalContours()
font.canonicalStart()
font.generate(sys.argv[3], flags = ("short-post", "opentype"))