Skip to main content

statmake

statmake takes a user-written Stylespace that defines OpenType STAT information for an entire font family and then (potentially subsets and) applies it to a specific variable font. This spares users from having to deal with raw TTX dumps and juggling with nameIDs.

Installation

The easiest way is by installing it with pip. You need at least Python 3.6.

pip3 install statmake

Usage

External Stylespace file, stand-alone or referenced from a Designspace file

If you are producing more than one variable font (i.e. you have multiple Designspace files), you can avoid duplicated information by writing a single all-encompassing Stylespace file which statmake will subset for each variable font.

Attention: A STAT table is supposed to describe a font's relationship to the entire family. If you have separate upright and italic variable fonts with a wght axis each, you need to mark each font's position on the ital axis in the Designspace lib org.statmake.additionalLocations key. The Designspace <axes> elements are not supposed to hold this information, so it must be done in a separate lib key.

  1. Write a Stylespace file that describes each stop of all axes available in the entire family. See tests/data/Test.stylespace for an annotated example. You can also use it as a starting point.
  2. You can have the file stand-alone or use the Designspace lib's org.statmake.stylespacePath key to store the path to the Stylespace file relative to the Designspace file. See tests/data/TestExternalStylespace.designspace for an example.
  3. If you have one or more Designspace files which do not define all axes available to the family, you have to annotate them with the missing axis locations to get a complete STAT table. See the lib key at the bottom of tests/data/Test_Wght_Upright.designspace and tests/data/Test_Wght_Italic.designspace for an example.
  4. Generate the variable font(s) as normal
  5. If...
    1. ... you store the Stylespace file stand-alone: run statmake --designspace variable_font.designspace --stylespace your.stylespace variable_font.ttf.
    2. ... you store the Stylespace inline in the Designspace file or as a stand-alone file and added the relative path to it in the Designspace's org.statmake.stylespacePath key: run statmake --designspace variable_font.designspace variable_font.ttf

Be sure to use the Designspace file that was used to generate the font to get the correct missing axis location definitions.

Designspace file with inline Stylespace data

If you are producing a single variable font containing an entire family, this approach will save you an external file.

  1. Write the file as above, point 1.
  2. Insert it into the Designspace file's lib under the org.statmake.stylespace key. See tests/data/TestInlineStylespace.designspace for an example.
  3. Proceed from point 3 above.

Q: Can I please have something other than a .plist file?

Yes, but you have to convert it to .plist yourself, as statmake currently only read .plist files. One possible converter is Adam Twardoch's yaplon.

Release files for statmake 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for statmake 0.2.0
File Size Uploaded
statmake-0.2.0.tar.gz 8.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for statmake 0.2.0
File Interpreter ABI Platform
statmake-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.9 kB

Release files / statmake-0.2.0.tar.gz

Download URL statmake-0.2.0.tar.gz
Size 8.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2f41a60e952c5f0c3775000c530794046f1708129496096a73462178ea94d90c
BLAKE2b-256 checksum
How to use checksums
0dd93314df50693eab5c0b3e966c352d304169ca9bca4b7ab580b98145f3d009
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.17 CPython/3.6.7 Linux/4.15.0-1028-gcp

Release files / statmake-0.2.0-py3-none-any.whl

Download URL statmake-0.2.0-py3-none-any.whl
Size 9.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8546c1d724e22de0063c23f37048bac70ec361aa1cd2f0f1cded5faf29e47d6e
BLAKE2b-256 checksum
How to use checksums
3b721af26ad3c7a76d41586e11b12460fd3146d150f108a5702d45c77b8f251c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.17 CPython/3.6.7 Linux/4.15.0-1028-gcp

Release history Release notifications | RSS feed

2.0.1

2 release files

2.0.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

This release

0.2.0 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page