From 887e45766a226dae8c38a63ef78f75c72424763b Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sun, 23 Jul 2023 15:47:03 -0600 Subject: [PATCH] Start adding width axis planning --- Lib/fontTools/varLib/avarPlanner.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/Lib/fontTools/varLib/avarPlanner.py b/Lib/fontTools/varLib/avarPlanner.py index 7d26b9c3a..180736883 100644 --- a/Lib/fontTools/varLib/avarPlanner.py +++ b/Lib/fontTools/varLib/avarPlanner.py @@ -218,14 +218,19 @@ def main(args=None): help="Space-separate list of glyphs to use for sampling.", ) parser.add_argument( - "--design-units", + "--weight-design-units", type=str, - help="min:default:max in design units.", + help="min:default:max in design units for the `wght` axis.", ) parser.add_argument( - "--pins", + "--width-design-units", type=str, - help="Space-separate list of before:after pins.", + help="min:default:max in design units for the `wdth` axis.", + ) + parser.add_argument( + "--weight-pins", + type=str, + help="Space-separate list of before:after pins. for the `wght` axis.", ) parser.add_argument( "-p", "--plot", action="store_true", help="Plot the resulting mapping." @@ -250,11 +255,12 @@ def main(args=None): log.error("Not a variable font.") sys.exit(1) fvar = font["fvar"] - wghtAxis = None + wghtAxis = wdthAxis = None for axis in fvar.axes: if axis.axisTag == "wght": wghtAxis = axis - break + elif axis.axisTag == "wdth": + wdthAxis = axis if "avar" in font: existingMapping = font["avar"].segments["wght"] @@ -282,14 +288,14 @@ def main(args=None): else: glyphs = None - if options.design_units is not None: - designUnits = [float(d) for d in options.design_units.split(":")] + if options.weight_design_units is not None: + designUnits = [float(d) for d in options.weight_design_units.split(":")] else: designUnits = None - if options.pins is not None: + if options.weight_pins is not None: pins = {} - for pin in options.pins.split(): + for pin in options.weight_pins.split(): before, after = pin.split(":") pins[float(before)] = float(after) else: