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 ...`)
This commit is contained in:
parent
633839ad55
commit
0796076659
29 changed files with 368192 additions and 287323 deletions
53
misc/tools/subset-designspace.py
Normal file
53
misc/tools/subset-designspace.py
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
#!/usr/bin/env python
|
||||
import sys, os
|
||||
from os.path import dirname, basename, abspath, relpath, join as pjoin
|
||||
from fontTools.designspaceLib import DesignSpaceDocument
|
||||
|
||||
|
||||
def subset_designspace(designspace, filename):
|
||||
italic = filename.find('italic') != -1
|
||||
|
||||
rmlist = []
|
||||
for a in designspace.axes:
|
||||
if a.tag == "slnt" or a.tag == "ital" or a.tag == "opsz":
|
||||
rmlist.append(a)
|
||||
for a in rmlist:
|
||||
designspace.axes.remove(a)
|
||||
|
||||
rmlist = []
|
||||
hasDefault = not italic
|
||||
for source in designspace.sources:
|
||||
isitalic = source.name.find('Italic') != -1
|
||||
if italic != isitalic or source.name.endswith('Display') or source.name.endswith('opsz'):
|
||||
rmlist.append(source)
|
||||
elif italic and not hasDefault:
|
||||
source.copyLib = True
|
||||
source.copyInfo = True
|
||||
source.copyGroups = True
|
||||
source.copyFeatures = True
|
||||
hasDefault = True
|
||||
for source in rmlist:
|
||||
designspace.sources.remove(source)
|
||||
|
||||
rmlist = []
|
||||
for instance in designspace.instances:
|
||||
isitalic = instance.name.find('Italic') != -1
|
||||
if italic != isitalic:
|
||||
rmlist.append(instance)
|
||||
for instance in rmlist:
|
||||
designspace.instances.remove(instance)
|
||||
|
||||
print("write %s" % relpath(filename, os.getcwd()))
|
||||
designspace.write(filename)
|
||||
|
||||
|
||||
def main(argv):
|
||||
src_designspace_file = argv[1]
|
||||
dst_designspace_file = argv[2]
|
||||
designspace = DesignSpaceDocument.fromfile(src_designspace_file)
|
||||
designspace.lib.clear()
|
||||
subset_designspace(designspace, dst_designspace_file)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv)
|
||||
Reference in a new issue