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.7
or later.
The package is listed in the Python Package Index (PyPI), so you can
install it with [pip]:
Changelog
~~~~~~~~~
4.28.1 (released 2021-11-08)
----------------------------
- [subset] Fixed AttributeError while traversing a color glyph's Paint
graph when there is no
LayerList, which is optional (#2441).
4.28.0 (released 2021-11-05)
----------------------------
- Dropped support for EOL Python 3.6, require Python 3.7 (#2417).
- [ufoLib/glifLib] Make filename-clash checks faster by using a set instead
of a list (#2422).
- [subset] Don't crash if optional ClipList and LayerList are None (empty)
(#2424, 2439).
- [OT-SVG] Removed support for old deprecated version 1 and embedded color
palettes,
which were never officially part of the OpenType SVG spec. Upon compile,
reuse offsets
to SVG documents that are identical (#2430).
- [feaLib] Added support for Variable Feature File syntax. This is
experimental and subject
to change until it is finalized in the Adobe FEA spec (#2432).
- [unicodedata] Update Scripts/ScriptExtensions/Blocks to UnicodeData 14.0
(#2437).
4.27.1 (released 2021-09-23)
----------------------------
- [otlLib] Fixed error when chained contextual lookup builder overflows
(#2404, #2411).
- [bezierTools] Fixed two floating-point bugs: one when computing `t` for a
point
lying on an almost horizontal/vertical line; another when computing the
intersection
point between a curve and a line (#2413).
4.27.0 (released 2021-09-14)
----------------------------
- [ttLib/otTables] Cleaned up virtual GID handling: allow virtual GIDs in
Coverage
and ClassDef readers; removed unused allowVID argument from TTFont
constructor, and requireReal argument in ``TTFont.getGlyphID`` method.
Make ``TTFont.setGlyphOrder`` clear reverse glyphOrder map, and assume
glyphOrder
internal attribute is never modified outside setGlyphOrder; added
``TTFont.getGlyphNameMany
and getGlyphIDMany`` (#1536, #1654, #2334, #2398).
- [py23] Dropped internal use of ``fontTools.py23`` module to fix
deprecation warnings
in client code that imports from fontTools (#2234, #2399, #2400).
- [subset] Fix subsetting COLRv1 clip boxes when font is loaded lazily
(#2408).
4.26.2 (released 2021-08-09)
----------------------------
- [otTables] Added missing ``CompositeMode.PLUS`` operator (#2390).
4.26.1 (released 2021-08-03)
----------------------------
- [transform] Added transformVector and transformVectors methods to the
Transform class. Similar to transformPoint but ignore the translation
part (#2386).
4.26.0 (released 2021-08-03)
----------------------------
- [xmlWriter] Default to ``"\n" for newlinestr`` instead of
|