Skip to content
Compare
Choose a tag to compare
  • [svgPathPen] Continuation of #2471: make sure all occurrences of str() are now replaced with user-defined ntos callable.
  • [merge] Refactored code into submodules, plus several bugfixes and improvements (#2473, #2475, #2476):
    • fixed duplicate-glyph-resolution GSUB-lookup generation code;
    • use tolerance in glyph comparison for empty glyph's width; ignore space of default ignorable glyphs;
    • downgrade duplicates-resolution missing-GSUB from assert to warn;
    • added --drop-tables option.
Compare
Choose a tag to compare
  • [merge] Merge GDEF marksets in Lookups properly (#2474).
  • [feaLib] Have fontTools feaLib script exit with error code when build fails (#2459)
  • [svgPathPen] Added ntos option to customize number formatting (e.g. rounding) (#2471).
  • [subset] Speed up subsetting of large CFF fonts (#2467).
  • [otTables] Speculatively promote lookups to extension to speed up compilation. If the offset to lookup N is too big to fit in a ushort, the offset to lookup N+1 is going to be too big as well, so we promote to extension all lookups from lookup N onwards (#2465).
Compare
Choose a tag to compare
  • [subset] Fixed bug while subsetting COLR table, whereby incomplete layer records pointing to missing glyphs were being retained leading to struct.error upon compiling. Make it so that glyf glyph closure, which follows the COLR glyph closure, does not influence the COLR table subsetting (#2461, #2462).
  • [docs] Fully document the cmap and glyf tables (#2454, #2457).
  • [colorLib.unbuilder] Fixed CLI by deleting no longer existing parameter (180bb18).
4.28.2
Compare
Choose a tag to compare
  • [otlLib] Remove duplicates when building coverage (#2433).
  • [docs] Add interrogate configuration (#2443).
  • [docs] Remove comment about missing “start” optional argument to calcChecksum (#2448).
  • [cu2qu/cli] Adapt to the latest ufoLib2.
  • [subset] Support subsetting SVG table and remove it from the list of drop by default tables (#534).
  • [subset] add --pretty-svg option to pretty print SVG table contents (#2452).
  • [merge] Support merging CFF tables (CID-keyed CFF is still not supported) (#2447).
  • [merge] Support --output-file (#2447).
  • [docs] Split table docs into individual pages (#2444).
  • [feaLib] Forbid empty classes (#2446).
  • [docs] Improve documentation for fontTools.ttLib.ttFont (#2442).
Compare
Choose a tag to compare
  • [subset] Fixed AttributeError while traversing a color glyph's Paint graph when there is no LayerList, which is optional (#2441).
Compare
Choose a tag to compare
  • 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).
Compare
Choose a tag to compare
  • [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).
Compare
Choose a tag to compare
  • [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 (#2232, #2399, #2400).
  • [subset] Fix subsetting COLRv1 clip boxes when font is loaded lazily (#2408).
Compare
Choose a tag to compare
  • [otTables] Added missing CompositeMode.PLUS operator (#2390).
Compare
Choose a tag to compare
  • [transform] Added transformVector and transformVectors methods to the Transform class. Similar to transformPoint but ignore the translation part (#2386).