Skip to main content

Applies STAT information from a Stylespace to a variable font.

Project description

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.7.

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.

Q: I'm getting errors about how statmake doesn't like the way I wrote the Stylespace, but I want the data to be that way?

Use a custom script with the https://fonttools.readthedocs.io/en/latest/otlLib/builder.html#fontTools.otlLib.builder.buildStatTable API instead.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

statmake-0.6.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

statmake-0.6.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file statmake-0.6.0.tar.gz.

File metadata

  • Download URL: statmake-0.6.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.11.0 Linux/5.15.0-1023-azure

File hashes

Hashes for statmake-0.6.0.tar.gz
Algorithm Hash digest
SHA256 b3353ddc344fc8013960c6f45565f701ffe7cfbfb7ec91a69020945371fc486c
MD5 c774d56019e2815c42b37b57d5df0c13
BLAKE2b-256 5348af7ad7214f6b90ae4f396e93e2053e7056ebe6b5ef04b5bbc255ad44ec7e

See more details on using hashes here.

File details

Details for the file statmake-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: statmake-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.11.0 Linux/5.15.0-1023-azure

File hashes

Hashes for statmake-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 37718cc7b4776877f6847ed457943489d6b674bbd305ece2ee6931172b137d38
MD5 73c7e00002f9da61bac8d07c1c714cea
BLAKE2b-256 8586beef05605ca6d316906406151cc2b8969fe92d8e24f78bb7850bd42c38bc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page