1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
3 NAMEBASE= python-statmake
7 SDESC[py37]= Applies STAT information from a Stylespace (PY 37)
8 SDESC[py38]= Applies STAT information from a Stylespace (PY 38)
9 HOMEPAGE= https://github.com/daltonmaag/statmake
10 CONTACT= Python_Automaton[python@ironwolf.systems]
13 SITES[main]= PYPI/s/statmake
14 DISTFILE[1]= statmake-0.2.2.tar.gz:main
19 OPTIONS_AVAILABLE= PY38 PY37
20 OPTIONS_STANDARD= none
21 VOPTS[py37]= PY38=OFF PY37=ON
22 VOPTS[py38]= PY38=ON PY37=OFF
24 DISTNAME= statmake-0.2.2
28 [PY37].BUILDRUN_DEPENDS_ON= python-attrs:single:py37
29 python-cattrs:single:py37
30 python-fonttools:single:py37
31 [PY37].USES_ON= python:py37
33 [PY38].BUILDRUN_DEPENDS_ON= python-attrs:single:py38
34 python-cattrs:single:py38
35 python-fonttools:single:py38
36 [PY38].USES_ON= python:py38
38 [FILE:3473:descriptions/desc.single]
41 `statmake` takes a user-written Stylespace that defines [OpenType `STAT`
42 information](https://docs.microsoft.com/en-us/typography/opentype/spec/stat
43 ) for an entire font family and then (potentially subsets and) applies it
44 to a specific variable font. This spares users from having to deal with
45 [raw TTX dumps](https://github.com/fonttools/fonttools/) and juggling with
50 The easiest way is by installing it with `pip`. You need at least Python
60 ### External Stylespace file, stand-alone or referenced from a Designspace
63 If you are producing more than one variable font (i.e. you have multiple
64 Designspace files), you can avoid duplicated information by writing a
65 single all-encompassing Stylespace file which statmake will subset for
68 **Attention:** A `STAT` table is supposed to describe a font's
69 relationship to the _entire_ family. If you have separate upright and
70 italic variable fonts with a `wght` axis each, you need to mark each
71 font's position on the `ital` axis _in the Designspace lib
72 `org.statmake.additionalLocations` key_. The Designspace `<axes>` elements
73 are not supposed to hold this information, so it must be done in a
76 1. Write a Stylespace file that describes each stop of all axes available
77 in the entire family. See
78 [tests/data/Test.stylespace](tests/data/Test.stylespace) for an annotated
79 example. You can also use it as a starting point.
80 2. You can have the file stand-alone or use the Designspace lib's
81 `org.statmake.stylespacePath` key to store the path to the Stylespace file
82 relative to the Designspace file. See
83 [tests/data/TestExternalStylespace.designspace](tests/data/TestExternalStyl
84 espace.designspace) for an example.
85 3. If you have one or more Designspace files which do not define all axes
86 available to the family, you have to annotate them with the missing axis
87 locations to get a complete `STAT` table. See the lib key at the bottom of
88 [tests/data/Test_Wght_Upright.designspace](tests/data/Test_Wght_Upright.des
90 [tests/data/Test_Wght_Italic.designspace](tests/data/Test_Wght_Italic.desig
91 nspace) for an example.
92 4. Generate the variable font(s) as normal
94 1. ... you store the Stylespace file stand-alone: run `statmake
95 --designspace variable_font.designspace --stylespace your.stylespace
97 2. ... you store the Stylespace inline in the Designspace file or as a
98 stand-alone file and added the relative path to it in the Designspace's
99 `org.statmake.stylespacePath` key: run `statmake --designspace
100 variable_font.designspace variable_font.ttf`
102 Be sure to use the Designspace file that was used to generate the font to
103 get the correct missing axis location definitions.
105 ### Designspace file with inline Stylespace data
107 If you are producing a single variable font containing an entire family,
108 this approach will save you an external file.
110 1. Write the file as above, point 1.
111 2. Insert it into the Designspace file's lib under the
112 `org.statmake.stylespace` key. See
113 [tests/data/TestInlineStylespace.designspace](tests/data/TestInlineStylespa
114 ce.designspace) for an example.
115 3. Proceed from point 3 above.
117 ## Q: Can I please have something other than a .plist file?
119 Yes, but you have to convert it to `.plist` yourself, as statmake
120 currently only read `.plist` files. One possible converter is Adam
121 Twardoch's [yaplon](https://pypi.org/project/yaplon/).
126 98f1db0dc2c8d1c39efb5173370adb948555f3294f760bdef572323d0534bd16 9051 statmake-0.2.2.tar.gz