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.54.1 (released 2024-09-24)
----------------------------
- [unicodedata] Update to Unicode 16
- [subset] Escape ``\\`` in doc string
4.54.0 (released 2024-09-23)
----------------------------
- [Docs] Small docs cleanups by @n8willis (#3611)
- [Docs] cleanup code blocks by @n8willis (#3627)
- [Docs] fix Sphinx builds by @n8willis (#3625)
- [merge] Minor fixes to documentation for merge by @drj11 (#3588)
- [subset] Small tweaks to pyftsubset documentation by @RoelN (#3633)
- [Tests] Do not require fonttools command to be available by @behdad
(#3612)
- [Tests] subset_test: add failing test to reproduce issue #3616 by
@anthrotype (#3622)
- [ttLib] NameRecordVisitor: include whole sequence of character variants'
UI labels, not just the first by @anthrotype (#3617)
- [varLib.avar] Reconstruct mappings from binary by @behdad (#3598)
- [varLib.instancer] Fix visual artefacts with partial L2 instancing by
@Hoolean (#3635)
- [varLib.interpolatable] Support discrete axes in .designspace by @behdad
(#3599)
- [varLib.models] By default, assume OpenType-like normalized space by
@behdad (#3601)
4.53.1 (released 2024-07-05)
----------------------------
- [feaLib] Improve the sharing of inline chained lookups (#3559)
- [otlLib] Correct the calculation of OS/2.usMaxContext with reversed
chaining contextual single substitutions (#3569)
- [misc.visitor] Visitors search the inheritance chain of objects they are
visiting (#3581)
4.53.0 (released 2024-05-31)
----------------------------
- [ttLib.removeOverlaps] Support CFF table to aid in downconverting CFF2
fonts (#3528)
- [avar] Fix crash when accessing not-yet-existing attribute (#3550)
- [docs] Add buildMathTable to otlLib.builder documentation (#3540)
- [feaLib] Allow UTF-8 with BOM when reading features (#3495)
- [SVGPathPen] Revert rounding coordinates to two decimal places by default
(#3543)
- [varLib.instancer] Refix output filename decision-making (#3545, #3544,
#3548)
4.52.4 (released 2024-05-27)
----------------------------
- [varLib.cff] Restore and deprecate convertCFFtoCFF2 that was removed in
4.52.0
release as it is used by downstream projects (#3535).
4.52.3 (released 2024-05-27)
----------------------------
- Fixed a small syntax error in the reStructuredText-formatted NEWS.rst
file
which caused the upload to PyPI to fail for 4.52.2. No other code
changes.
4.52.2 (released 2024-05-27)
----------------------------
- [varLib.interpolatable] Ensure that scipy/numpy output is
|