@anthrotype anthrotype released this Jan 17, 2019

Assets 4
  • [ttx] Added --no-recalc-timestamp option to keep the original font's head.modified timestamp (#1455, #46).
  • [ttx/psCharStrings] Fixed issues while dumping and round-tripping CFF2 table with ttx (#1451, #1452, #1456).
  • [voltLib] Fixed check for duplicate anchors (#1450). Don't try to read past the END operator in .vtp file (#1453).
  • [varLib] Use sentinel value -0x8000 (-32768) to ignore post.underlineThickness and post.underlinePosition when generating MVAR deltas (#1449, googlei18n/ufo2ft#308).
  • [subset] Added --retain-gids option to subset font without modifying the current glyph indices (#1443, #1447).
  • [ufoLib] Replace deprecated calls to getbytes and setbytes with new equivalent readbytes and writebytes calls. fs >= 2.2 is now required.
  • [varLib] Allow loading masters from TTX files as well (#1441).

@anthrotype anthrotype released this Jan 14, 2019

Assets 4
  • [hmtx/vmtx]: Allow to compile/decompile hmtx and vmtx tables even without the corresponding (required) metrics header tables, hhea and vhea (#1439).
  • [varLib] Added support for localized axes' labelname and named instances' stylename (#1438).

@anthrotype anthrotype released this Jan 9, 2019

Assets 4
  • [_m_a_x_p] Include maxComponentElements in maxp table's recalculation.

@anthrotype anthrotype released this Jan 7, 2019

Assets 4
  • [psCharStrings] In encodeFloat function, use float's "general format" with 8 digits of precision (i.e. %8g) instead of str(). This works around a macOS rendering issue when real numbers in CFF table are too long, and also makes sure that floats are encoded with the same precision in python 2.7 and 3.x (#1430, googlei18n/ufo2ft#306).
  • [_n_a_m_e/fontBuilder] Make _n_a_m_e_table.addMultilingualName also add Macintosh (platformID=1) names by default. Added options to FontBuilder.setupNameTable method to optionally disable Macintosh or Windows names (#1359, #1431).
  • [varLib] Make build optionally accept a DesignSpaceDocument object, instead of a designspace file path. The caller can now set the font attribute of designspace's sources to a TTFont object, thus allowing to skip filenames manipulation altogether (#1416, #1425).
  • [sfnt] Allow SFNTReader objects to be deep-copied.
  • Require typing>=3.6.4 on py27 to fix issue with singledispatch (#1423).
  • [designspaceLib/t1Lib/macRes] Fixed some cases where pathlib.Path objects were not accepted (#1421).
  • [varLib] Fixed merging of multiple PairPosFormat2 subtables (#1411).
  • [varLib] The default STAT table version is now set to 1.1, to improve compatibility with legacy applications (#1413).

@anthrotype anthrotype released this Dec 17, 2018

Assets 4
  • [merge] Fixed AssertionError when none of the script tables in GPOS/GSUB have a DefaultLangSys record (#1408, 135a4a1).

@anthrotype anthrotype released this Dec 17, 2018

Assets 4
  • [varLib] Work around macOS rendering issue for composites without gvar entry (#1381).

@anthrotype anthrotype released this Dec 14, 2018

Assets 4
  • [varLib] Support generation of CFF2 variable fonts. model.reorderMasters() now supports arbitrary mapping. Fix handling of overlapping ranges for feature variations (#1400).
  • [cffLib, subset] Code clean-up and fixing related to CFF2 support.
  • [ttLib.tables.ttProgram] Use raw strings for regex patterns (#1389).
  • [fontbuilder] Initial support for building CFF2 fonts. Set CFF's FontMatrix automatically from unitsPerEm.
  • [plistLib] Accept the more general collections.Mapping instead of the specific dict class to support custom data classes that should serialize to dictionaries.

@anthrotype anthrotype released this Nov 1, 2018 · 312 commits to master since this release

Assets 2
  • [ufoLib] Make UFOWriter a subclass of UFOReader, and use mixins for shared methods (#1344).
  • [featureVars] Fixed normalization error when a condition's minimum/maximum attributes are missing in designspace <rule> (#1346, #1347).
  • [setup.py] Added [plot] to extras, to optionally install matplotlib, needed to use the fonTools.varLib.plot module.
  • [varLib] Take total bounding box into account when resolving model (7ee81c8). If multiple axes have the same range ratio, cut across both (62003f4).
  • [subset] Don't error if STAT has no AxisValue tables.
  • [fontBuilder] Added a new submodule which contains a FontBuilder wrapper class around TTFont that makes it easier to create a working TTF or OTF font from scratch with code. NOTE: the API is still experimental and may change in future versions.

@anthrotype anthrotype released this Oct 21, 2018 · 375 commits to master since this release

Assets 4
  • [ufoLib] Merged the ufoLib master branch into a new fontTools.ufoLib package (#1335, #1095).
    Moved ufoLib.pointPen module to fontTools.pens.pointPen.
    Moved ufoLib.etree module to fontTools.misc.etree.
    Moved ufoLib.plistlib module to fontTools.misc.plistlib.
    To use the new fontTools.ufoLib module you need to install fonttools with the [ufo] extra, or you can manually install the required additional dependencies (cf. README.rst).
  • [morx] Support AAT action type to insert glyphs and clean up compilation of AAT action tables (4a1871f, 2011ccf).
  • [subset] The --no-hinting on a CFF font now also drops the optional hinting keys in Private dict: ForceBold, LanguageGroup, and ExpansionFactor (#1322).
  • [subset] Include nameIDs referenced by STAT table (#1327).
  • [loggingTools] Added msg=None argument to CapturingLogHandler.assertRegex (0245f2c).
  • [varLib.mutator] Implemented FeatureVariations instantiation (#1244).
  • [g_l_y_f] Added PointPen support to _TTGlyph objects (#1334).