single |
|CI Build Status| |Coverage Status| |PyPI| |Gitter Chat|
What is this?
~~~~~~~~~~~~~
| fontTools is a library for manipulating fonts, written in Python. The
project includes the TTX tool, that can convert TrueType and OpenType
fonts to and from an XML text format, which is also called TTX. It
supports TrueType, OpenType, AFM and to an extent Type 1 and some
Mac-specific formats. The project has an `MIT open-source
licence `__.
| Among other things this means you can use it free of charge.
[User documentation] and
[developer documentation]
are available at [Read the Docs].
Installation
~~~~~~~~~~~~
FontTools requires [Python] 3.8
or later. We try to follow the same schedule of minimum Python version
support as
NumPy (see [NEP 29]).
The package is listed in the Python Package Index (PyPI), so you can
install it with [pip]:
Changelog
~~~~~~~~~
4.56.0 (released 2025-02-07)
----------------------------
- [varStore] Sort the input todo list with the same sorting key used for
the opimizer's output (#3767).
- [otData] Fix DeviceTable's DeltaValue repeat value which caused a crash
after importing from XML and then compiling a GPOS containing Device tables
(#3758).
- [feaLib] Make FeatureLibError pickleable, so client can e.g. use feaLib
to can compile features in parallel with multiprocessing (#3762).
- [varLib/gvar] Removed workaround for old, long-fixed macOS bug about
composite glyphs with all zero deltas (#1381, #1788).
- [Docs] Updated ttLib documentation, beefed up TTFont and TTGlyphSet
explanations (#3720).
4.55.8 (released 2025-01-29)
----------------------------
- [MetaTools] Fixed bug in buildUCD.py script whereby the first non-header
line of some UCD text file was being skipped. This affected in particular
the U+00B7 (MIDDLE DOT) entry of ScriptExtensions.txt (#3756).
4.55.7 (released 2025-01-28)
----------------------------
- Shorten the changelog included in PyPI package description to accommodate
maximum length limit imposed by Azure DevOps. No actual code changes since
v4.55.6 (#3754).
4.55.6 (released 2025-01-24)
----------------------------
- [glyf] Fixed regression introduced in 4.55.5 when computing bounds of
nested composite glyphs with transformed components (#3752).
4.55.5 (released 2025-01-23)
----------------------------
- [glyf] Fixed recalcBounds of transformed components with unrounded
coordinates (#3750).
- [feaLib] Allow duplicate script/language statements (#3749).
4.55.4 (released 2025-01-21)
----------------------------
- [bezierTools] Fixed splitCubicAtT sometimes not returning identical
start/end points as result of numerical precision (#3742, #3743).
- [feaLib/ast] Fixed docstring of AlternateSubstStatement (#3735).
- [transform] Typing fixes (#3734).
4.55.3 (released 2024-12-10)
----------------------------
- [Docs] fill out ttLib table section [#3716]
- [feaLib] More efficient inline format 4 lookups [#3726]
4.55.2 (released 2024-12-05)
----------------------------
- [Docs] update Sphinx config (#3712)
- [designspaceLib] Allow axisOrdering to be set to zero (#3715)
- [feaLib] Don’t modify variable anchors in place (#3717)
4.55.1 (released 2024-12-02)
----------------------------
- [ttGlyphSet] Support VARC CFF2 fonts (#3683)
- [DecomposedTransform] Document and implement always skewY == 0 (#3697)
- [varLib] "Fix" cython iup issue? (#3704)
|