Releases: fonttools/fonttools
Releases · fonttools/fonttools
3.12.0
- [cffLib.specializer] Added new ``specializer`` module to optimize CFF charstrings, used by the T2CharStringPen (#948). - [varLib.mutator] Sort glyphs by component depth before calculating composite glyphs' bounding boxes to ensure deltas are correctly caclulated (#945). - [_g_l_y_f] Fixed loss of precision in GlyphCoordinates by using 'd' (double) instead of 'f' (float) as ``array.array`` typecode (#963, #964).
3.11.0
- [t2CharStringPen] Initial support for specialized Type2 path operators: vmoveto, hmoveto, vlineto, hlineto, vvcurveto, hhcurveto, vhcurveto and hvcurveto. This should produce more compact charstrings (#940, #403). - [Doc] Added Sphinx sources for the documentation. Thanks @gferreira (#935). - [fvar] Expose flags in XML (#932) - [name] Add helper function for building multi-lingual names (#921) - [varLib] Fixed kern merging when a PairPosFormat2 has ClassDef1 with glyphs that are NOT present in the Coverage (1b5e1c4, #939). - [varLib] Fixed non-deterministic ClassDef order with PY3 (f056c12, #927). - [feLib] Throw an error when the same glyph is defined in multiple mark classes within the same lookup (3e3ff00, #453).
3.10.0
- [varLib] Added support for building ``avar`` table, using the designspace ``<map>`` elements. - [varLib] Removed unused ``build(..., axisMap)`` argument. Axis map should be specified in designspace file now. We do not accept nonstandard axes if ``<axes>`` element is not present. - [varLib] Removed "custom" axis from the ``standard_axis_map``. This was added before when glyphsLib was always exporting the (unused) custom axis. - [varLib] Added partial support for building ``MVAR`` table; does not implement ``gasp`` table variations yet. - [pens] Added FilterPen base class, for pens that control another pen; factored out ``addComponent`` method from BasePen into a separate abstract DecomposingPen class; added DecomposingRecordingPen, which records components decomposed as regular contours. - [TSI1] Fixed computation of the textLength of VTT private tables (#913). - [loggingTools] Added ``LogMixin`` class providing a ``log`` property to subclasses, which returns a ``logging.Logger`` named after the latter. - [loggingTools] Added ``assertRegex`` method to ``CapturingLogHandler``. - [py23] Added backport for python 3's ``types.SimpleNamespace`` class. - [EBLC] Fixed issue with python 3 ``zip`` iterator.
3.9.2
- [pens] Added pen to draw glyphs using WxPython ``GraphicsPath`` class: https://wxpython.org/docs/api/wx.GraphicsPath-class.html - [varLib.merger] Fixed issue with recombining multiple PairPosFormat2 subtables (#888) - [varLib] Do not encode gvar deltas that are all zeroes, or if all values are smaller than tolerance. - [ttLib] _TTGlyphSet glyphs now also have ``height`` and ``tsb`` (top side bearing) attributes from the ``vmtx`` table, if present. - [glyf] In ``GlyphCoordintes`` class, added ``__bool__`` / ``__nonzero__`` methods, and ``array`` property to get raw array. - [ttx] Support reading TTX files with BOM (#896) - [CFF2] Fixed the reporting of the number of regions in the font.
3.9.1
- [varLib.merger] Fixed issue while recombining multiple PairPosFormat2 subtables if they were split because of offset overflows (9798c30). - [varLib.merger] Only merge multiple PairPosFormat1 subtables if there is at least one of the fonts with a non-empty Format1 subtable (0f5a46b). - [varLib.merger] Fixed IndexError with empty ClassDef1 in PairPosFormat2 (aad0d46). - [varLib.merger] Avoid reusing Class2Record (mutable) objects (e6125b3). - [varLib.merger] Calculate ClassDef1 and ClassDef2's Format when merging PairPosFormat2 (23511fd). - [macUtils] Added missing ttLib import (b05f203).
3.9.0
- [feaLib] Added (partial) support for parsing feature file comments ``# ...`` appearing in between statements (#879). - [feaLib] Cleaned up syntax tree for FeatureNames. - [ttLib] Added support for reading/writing ``CFF2`` table (thanks to @readroberts at Adobe), and ``TTFA`` (ttfautohint) table. - [varLib] Fixed regression introduced with 3.8.0 in the calculation of ``NumShorts``, i.e. the number of deltas in ItemVariationData's delta sets that use a 16-bit representation (b2825ff).
3.8.0
- New pens: MomentsPen, StatisticsPen, RecordingPen, and TeePen. - [misc] Added new ``fontTools.misc.symfont`` module, for symbolic font statistical analysis; requires ``sympy`` (http://www.sympy.org/en/index.html) - [varLib] Added experimental ``fontTools.varLib.interpolatable`` module for finding wrong contour order between different masters - [varLib] designspace.load() now returns a dictionary, instead of a tuple, and supports <axes> element (#864); the 'masters' item was renamed 'sources', like the <sources> element in the designspace document - [ttLib] Fixed issue with recalculating ``head`` modified timestamp when saving CFF fonts - [ttLib] In TupleVariation, round deltas before compiling (#861, fixed #592) - [feaLib] Ignore duplicate glyphs in classes used as MarkFilteringSet and MarkAttachmentType (#863) - [merge] Changed the ``gasp`` table merge logic so that only the one from the first font is retained, similar to other hinting tables (#862) - [Tests] Added tests for the ``varLib`` package, as well as test fonts from the "Annotated OpenType Specification" (AOTS) to exercise ``ttLib``'s table readers/writers (<https://github.com/adobe-type-tools/aots>)
3.7.2
- [subset] Keep advance widths when stripping ".notdef" glyph outline in CID-keyed CFF fonts (#845) - [feaLib] Zero values now produce the same results as makeotf (#633, #848) - [feaLib] More compact encoding for “Contextual positioning with in-line single positioning rules” (#514)
3.7.1
- [subset] Fixed issue with ``--no-hinting`` option whereby advance widths in Type 2 charstrings were also being stripped (#709, #343) - [feaLib] include statements now resolve relative paths like makeotf (#838) - [feaLib] table ``name`` now handles Unicode codepoints beyond the Basic Multilingual Plane, also supports old-style MacOS platform encodings (#842) - [feaLib] correctly escape string literals when emitting feature syntax (#780)
3.7.0
- [ttx, mtiLib] Preserve ordering of glyph alternates in GSUB type 3 (#833). - [feaLib] Glyph names can have dashes, as per new AFDKO syntax v1.20 (#559). - [feaLib] feaLib.Parser now needs the font's glyph map for parsing. - [varLib] Fix regression where GPOS values were stored as 0. - [varLib] Allow merging of class-based kerning when ClassDefs are different