def buildVF(font, opts): for instance in font.instances: print(f" MASTER {instance.name}") build(instance, opts) if instance.name == "Regular": regular = instance ds = DesignSpaceDocument() for axisDef in font.customParameters["Axes"]: axis = ds.newAxisDescriptor() axis.tag = axisDef["Tag"] axis.name = axisDef["Name"] axis.maximum = max(i.axes[axis.tag] for i in font.instances) axis.minimum = min(i.axes[axis.tag] for i in font.instances) axis.default = regular.axes[axis.tag] ds.addAxis(axis) for instance in font.instances: source = ds.newSourceDescriptor() source.font = instance.font source.familyName = instance.familyName source.styleName = instance.name source.name = instance.fullName source.location = {a.name: instance.axes[a.tag] for a in ds.axes} ds.addSource(source) print(f" MERGE {font.familyName}") otf, _, _ = merge(ds) return otf
def buildVF(opts): font = GSFont(opts.glyphs) glyphOrder = buildAltGlyphs(font) prepare(font) for instance in font.instances: print(f" MASTER {instance.name}") build(instance, opts, glyphOrder) if instance.name == "Regular": regular = instance ds = DesignSpaceDocument() for i, axisDef in enumerate(font.axes): axis = ds.newAxisDescriptor() axis.tag = axisDef.axisTag axis.name = axisDef.name axis.maximum = max(x.axes[i] for x in font.instances) axis.minimum = min(x.axes[i] for x in font.instances) axis.default = regular.axes[i] ds.addAxis(axis) for instance in font.instances: source = ds.newSourceDescriptor() source.font = instance.font source.familyName = instance.familyName source.styleName = instance.name source.name = instance.fullName source.location = { a.name: instance.axes[i] for i, a in enumerate(ds.axes) } ds.addSource(source) print(f" MERGE {font.familyName}") otf, _, _ = merge(ds) subroutinize(otf) if not opts.debug: otf["post"].formatType = 3.0 return otf
source = doc.newSourceDescriptor() source.font = master.naked() source.location = dict(Width = width) if width == 1 and thickness == 50 : source.copyLib = True doc.addSource(source) minW = 1 maxW = 9 minT = 1 maxT = 50 doc = DesignSpaceDocument() axisW = doc.newAxisDescriptor() axisW.name = "Width" axisW.tag = "wdth" axisW.minimum = minW axisW.default = 1 axisW.maximum = maxW doc.addAxis(axisW) axisT = doc.newAxisDescriptor() axisT.name = "Thickness" axisT.tag = "thcknss" axisT.minimum = minT axisT.default = 1 axisT.maximum = maxT doc.addAxis(axisT)