Skip to content

Tags: hoeflerco/fonttools

Tags

3.25.0

Toggle 3.25.0's commit message
3.25.0

- [varLib] Improved support-resolution algorithm. Previously, the on-axis
  masters would always cut the space. They don't anymore. That's more
  consistent, and fixes the main issue Erik showed at TYPO Labs 2017.
  Any varfont built that had an unusual master configuration will change
  when rebuilt (42bef17, a523a69,
  googlefonts/fontmake#264).
- [varLib.models] Added a ``main()`` entry point, that takes positions and
  prints model results.
- [varLib.plot] Added new module to plot a designspace's
  VariationModel. Requires ``matplotlib``.
- [varLib.mutator] Added -o option to specify output file path (2ef60fa).
- [otTables] Fixed IndexError while pruning of HVAR pre-write (6b6c34a).
- [varLib.models] Convert delta array to floats if values overflows signed
  short integer (0055f94).

3.24.2

Toggle 3.24.2's commit message
3.24.2

- [otBase] Don't fail during ``ValueRecord`` copy if src has more items.
  We drop hinting in the subsetter by simply changing ValueFormat, without
  cleaning up the actual ValueRecords. This was causing assertion error if
  a variable font was subsetted without hinting and then passed directly to
  the mutator for instantiation without first it saving to disk.

3.24.1

Toggle 3.24.1's commit message
3.24.1

- [varLib] Don't remap the same ``DeviceTable`` twice in VarStore optimizer
  (fonttools#1206).
- [varLib] Add ``--disable-iup`` option to ``fonttools varLib`` script,
  and a ``optimize=True`` keyword argument to ``varLib.build`` function,
  to optionally disable IUP optimization while building varfonts.
- [ttCollection] Fixed issue while decompiling ttc with python3 (fonttools#1207).

3.24.0

Toggle 3.24.0's commit message
3.24.0

- [ttGlyphPen] Decompose composite glyphs if any components' transform is too
  large to fit a ``F2Dot14`` value, or clamp transform values that are
  (almost) equal to +2.0 to make them fit and avoid decomposing (fonttools#1200,
  fonttools#1204, fonttools#1205).
- [ttx] Added new ``-g`` option to dump glyphs from the ``glyf`` table
  splitted as individual ttx files (fonttools#153, fonttools#1035, fonttools#1132, fonttools#1202).
- Copied ``ufoLib.filenames`` module to ``fontTools.misc.filenames``, used
  for the ttx split-glyphs option (fonttools#1202).
- [feaLib] Added support for ``cvParameters`` blocks in Character Variant
  feautures ``cv01-cv99`` (fonttools#860, fonttools#1169).
- [Snippets] Added ``checksum.py`` script to generate/check SHA1 hash of
  ttx files (fonttools#1197).
- [varLib.mutator] Fixed issue while instantiating some variable fonts
  whereby the horizontal advance width computed from ``gvar`` phantom points
  could turn up to be negative (fonttools#1198).
- [varLib/subset] Fixed issue with subsetting GPOS variation data not
  picking up ``ValueRecord`` ``Device`` objects (54fd71f).
- [feaLib/voltLib] In all AST elements, the ``location`` is no longer a
  required positional argument, but an optional kewyord argument (defaults
  to ``None``). This will make it easier to construct feature AST from
  code (fonttools#1201).

3.23.0

Toggle 3.23.0's commit message
3.23.0

- [designspaceLib] Added an optional ``lib`` element to the designspace as a
  whole, as well as to the instance elements, to store arbitrary data in a
  property list dictionary, similar to the UFO's ``lib``. Added an optional
  ``font`` attribute to the ``SourceDescriptor``, to allow operating on
  in-memory font objects (fonttools#1175).
- [cffLib] Fixed issue with lazy-loading of attributes when attempting to
  set the CFF TopDict.Encoding (fonttools#1177, fonttools#1187).
- [ttx] Fixed regression introduced in 3.22.0 that affected the split tables
  ``-s`` option (fonttools#1188).
- [feaLib] Added ``IncludedFeaNotFound`` custom exception subclass, raised
  when an included feature file cannot be found (fonttools#1186).
- [otTables] Changed ``VarIdxMap`` to use glyph names internally instead of
  glyph indexes. The old ttx dumps of HVAR/VVAR tables that contain indexes
  can still be imported (21cbab8, 38a0ffb).
- [varLib] Implemented VarStore optimizer (fonttools#1184).
- [subset] Implemented pruning of GDEF VarStore, HVAR and MVAR (fonttools#1179).
- [sfnt] Restore backward compatiblity with ``numFonts`` attribute of
  ``SFNTReader`` object (fonttools#1181).
- [merge] Initial support for merging ``LangSysRecords`` (fonttools#1180).
- [ttCollection] don't seek(0) when writing to possibly unseekable strems.
- [subset] Keep all ``--name-IDs`` from 0 to 6 by default (fonttools#1170, fonttools#605, fonttools#114).
- [cffLib] Added ``width`` module to calculate optimal CFF default and
  nominal glyph widths.
- [varLib] Don’t fail if STAT already in the master fonts (fonttools#1166).

3.22.0

Toggle 3.22.0's commit message
3.22.0

- [subset] Support subsetting ``endchar`` acting as ``seac``-like components
  in ``CFF`` (fixes fonttools#1162).
- [feaLib] Allow to build from pre-parsed ``ast.FeatureFile`` object.
  Added ``tables`` argument to only build some tables instead of all (fonttools#1159,
  fonttools#1163).
- [textTools] Replaced ``safeEval`` with ``ast.literal_eval`` (fonttools#1139).
- [feaLib] Added option to the parser to not resolve ``include`` statements
  (fonttools#1154).
- [ttLib] Added new ``ttCollection`` module to read/write TrueType and
  OpenType Collections. Exports a ``TTCollection`` class with a ``fonts``
  attribute containing a list of ``TTFont`` instances, the methods ``save``
  and ``saveXML``, plus some list-like methods. The ``importXML`` method is
  not implemented yet (fonttools#17).
- [unicodeadata] Added ``ot_tag_to_script`` function that converts from
  OpenType script tag to Unicode script code.
- Added new ``designspaceLib`` subpackage, originally from Erik Van Blokland's
  ``designSpaceDocument``: https://github.com/LettError/designSpaceDocument
  NOTE: this is not yet used internally by varLib, and the API may be subject
  to changes (fonttools#911, fonttools#1110, LettError/designSpaceDocument#28).
- Added new FontTools icon images (8ee7c32).
- [unicodedata] Added ``script_horizontal_direction`` function that returns
  either "LTR" or "RTL" given a unicode script code.
- [otConverters] Don't write descriptive name string as XML comment if the
  NameID value is 0 (== NULL) (fonttools#1151, fonttools#1152).
- [unicodedata] Add ``ot_tags_from_script`` function to get the list of
  OpenType script tags associated with unicode script code (fonttools#1150).
- [feaLib] Don't error when "enumerated" kern pairs conflict with preceding
  single pairs; emit warning and chose the first value (fonttools#1147, fonttools#1148).
- [loggingTools] In ``CapturingLogHandler.assertRegex`` method, match the
  fully formatted log message.
- [sbix] Fixed TypeError when concatenating str and bytes (fonttools#1154).
- [bezierTools] Implemented cusp support and removed ``approximate_fallback``
  arg in ``calcQuadraticArcLength``. Added ``calcCubicArcLength`` (fonttools#1142).

3.21.2

Toggle 3.21.2's commit message
3.21.2

- [varLib] Fixed merging PairPos Format1/2 with missing subtables (fonttools#1125).

3.21.1

Toggle 3.21.1's commit message
3.21.1

- [feaLib] Allow mixed single/multiple substitutions (fonttools#612)
- Added missing ``*.afm`` test assets to MAINFEST.in (fonttools#1137).
- Fixed dumping ``SVG`` tables containing color palettes (fonttools#1124).

3.21.0

Toggle 3.21.0's commit message
3.21.0

- [cmap] when compiling format6 subtable, don't assume gid0 is always called
  '.notdef' (1e42224).
- [ot] Allow decompiling fonts with bad Coverage format number (1aafae8).
- Change FontTools licence to MIT (fonttools#1127).
- [post] Prune extra names already in standard Mac set (df1e8c7).
- [subset] Delete empty SubrsIndex after subsetting (fonttools#994, fonttools#1118).
- [varLib] Don't share points in cvar by default, as it currently fails on
  some browsers (fonttools#1113).
- [afmLib] Make poor old afmLib work on python3.

3.20.1

Toggle 3.20.1's commit message
3.20.1

- [unicodedata] Fixed issue with ``script`` and ``script_extension`` functions
  returning inconsistent short vs long names. They both return the short four-
  letter script codes now. Added ``script_name`` and ``script_code`` functions
  to look up the long human-readable script name from the script code, and
  viceversa (fonttools#1109, fonttools#1111).