summaryrefslogtreecommitdiff
path: root/misc/fontbuild
diff options
context:
space:
mode:
authorRasmus <rasmus@notion.se>2022-05-26 21:20:06 +0300
committerGitHub <noreply@github.com>2022-05-26 21:20:06 +0300
commit07960766590650e516a75ce6ceba91b68a5fa551 (patch)
treef0c82cd40cb68950bf8229d14cbc850fec41e5ba /misc/fontbuild
parent633839ad550073f9d12e6cea7964a30523974b68 (diff)
downloadinter-07960766590650e516a75ce6ceba91b68a5fa551.tar.xz
UPM 2048 and opsz axis (#462)
- UPM is adjusted to 2048 - Additional opsz VF axis (multi master) added which will eventually replace the separate Display family - New tooling that uses fontmake instead of Inter's own fontbuild toolchain. (The old toolchain is still supported, i.e. `make -f Makefile_v1.make ...`)
Diffstat (limited to 'misc/fontbuild')
-rwxr-xr-xmisc/fontbuild32
1 files changed, 20 insertions, 12 deletions
diff --git a/misc/fontbuild b/misc/fontbuild
index d51bb48df..68d26d4a4 100755
--- a/misc/fontbuild
+++ b/misc/fontbuild
@@ -13,6 +13,7 @@ import logging
import re
import signal
import subprocess
+import defcon
from fontTools.designspaceLib import DesignSpaceDocument
from mutatorMath.ufo.document import DesignSpaceDocumentReader
@@ -445,7 +446,7 @@ class Main(object):
source.styleName = "Thin Italic"
source.name = "thinitalic"
source.font.info.styleName = source.styleName
- else:
+ elif source.styleName:
# name "Black" => "black"
source.name = source.styleName.lower().replace(' ', '')
@@ -521,8 +522,9 @@ class Main(object):
verbose=True
)
- designspace = DesignSpaceDocument()
- designspace.read(designspace_file)
+ designspace = DesignSpaceDocument.fromfile(designspace_file)
+
+ master0_ufo = defcon.Font(designspace.sources[0].path)
# Generate UFOs for instances
instance_weight = dict()
@@ -544,29 +546,35 @@ class Main(object):
if len(instances) > 0:
fatal('unknown style(s): %s' % ', '.join(list(instances)))
- ufos = apply_instance_data(designspace_file, instance_files)
+ ufos = apply_instance_data(designspace, instance_files)
# patch ufos (list of defcon.Font instances)
italicAngleKey = 'com.schriftgestaltung.customParameter.' +\
'InstanceDescriptorAsGSInstance.italicAngle'
- for font in ufos:
+ for ufo in ufos:
+ # set metrics
+ ufo.info.ascender = master0_ufo.info.ascender
+ ufo.info.capHeight = master0_ufo.info.capHeight
+ ufo.info.descender = master0_ufo.info.descender
+ ufo.info.xHeight = master0_ufo.info.xHeight
+
# move italicAngle from lib to info
- italicAngle = font.lib.get(italicAngleKey)
+ italicAngle = ufo.lib.get(italicAngleKey)
if italicAngle != None:
italicAngle = float(italicAngle)
- del(font.lib[italicAngleKey])
- font.info.italicAngle = italicAngle
+ del(ufo.lib[italicAngleKey])
+ ufo.info.italicAngle = italicAngle
# clear anchors
if EXCLUDE_ANCHORS:
- for g in font:
+ for g in ufo:
g.clearAnchors()
# update font info
- weight = instance_weight[basename(font.path)]
- setFontInfo(font, weight)
+ weight = instance_weight[basename(ufo.path)]
+ setFontInfo(ufo, weight)
- font.save()
+ ufo.save()
def checkfont(self, fontfile, q):