Releases: googlefonts/ufo2ft
Releases · googlefonts/ufo2ft
v2.33.2
v2.33.1
- Added
convertCubics=True
to compileInterpolatableTTFs/compileVariableTTF methods, to allow disabling cu2qu altogether (similar to the existing option that was already there for compileTTF for statics). - OutlineTTFCompiler: ensure that only quadratic curves are present in TrueType glyphs if glyphDataFormat=0 was not explicitly set to 1 (#769).
v2.33.0
- Support
public.openTypePostUnderlinePosition
lib key meant to clarify ambiguous meaning of underline position in post vs CFF table (unified-font-object/ufo-spec#217, #760). - [instructionCompiler] Make logging less noisy (#767).
- Added
allQuadratic=True
compile option; when False, tells cu2qu to keep mix of cubic and quadratic curves (whichever has fewer points) as per glyf v1 draft spec proposal (#768, https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1.md).
v2.32.0
- Raise error when multiple glyphs claim the same Unicode codepoint. When expanding color layers to glyphs, ensure any codepoint is stripped to prevent unintentional clashes (#739).
- Use
fontTools.cu2qu
instead of standalonecu2qu
module, no changes, just one less dependency (#756). - Added compile option for static/variable TTF outputs to
dropImpliedOnCurves
to omit on-curve points that are halfway between two consecutive off-curve points, slightly reducing glyf table size with no visible differences (#753). - [constants] Updated Indic / USE script lists (#755).
- Require fonttools >= 4.40.0
v2.31.1
- [featureWriter.ast] Have iterClassDefinitions search not just top-level but inside feature and lookup blocks as well (#732).
- Added
autoUseMyMetrics=True
compile option (for TrueType output only) to allow disabling the automatic setting ofUSE_MY_METRICS
glyf component flags, which is not needed for fonts without hinted metrics (#741). - [kernFeatureWriter] Only use exported glyphs when generating mark filtering sets (#740).
v2.31.0
- Dropped support for Python 3.7 which reached EOL. We now require Python >= 3.8.
- Take into account extra substitutions found in DesignSpace rules when classifying glyphs by various unicode properties in feature writers (#731).
- Added support for compiling TrueType instructions and flags stored in the UFO's
public.truetype.*
lib keys (#654). - Automatically compute COLRv1 ClipBoxes if none are explicitly provided. This is enabled by default for static builds only. You can set colrAutoClipBoxes=True for interpolatable/variable builds if safe to do so (#728).
- Improved "no default source" error (#677).
- Warn about mis-cased
# Automatic Code
insertion marker comments; also warn if there are no insertion markers but kerning.plist is non empty and there are manual kern/dist features in the FEA code (#719). - Respect openTypeNameRecords overrides for the predefined name IDs (#727).
- Reorder class definitions in feature writers such that they appear before the lookups that use them (#725).
- Renamed dottedCircleFilter module to dottedCirlce, was wrongly named; old kept for backward compat (#716).
- [kernFeatureWriter] Avoid overwriting classDefs (#705).
Register kern lookups for all defined languages (#711).
Correctly split mark and base kerning pairs (#713).
Don't skip over spacing marks when kerning (#720). - Fixed FEA include dir detection when in current dir (#689)
- Automatically decompose components when 2x2 transforms differ (#698)
- [kernFeatureWriter] Split kerning by script, not horizontal direction, which should be faster to compile and produce smaller GPOS. The old kernFeatureWriter is still kept in a separate module (#679, #636, #697).
v2.31.0b3
- Dropped support for Python 3.7 which reached EOL. We now require Python >= 3.8.
- Added support for compiling TrueType instructions and flags stored in the UFO's
public.truetype.*
lib keys (#654). - Automatically compute COLRv1 ClipBoxes if none are explicitly provided. This is enabled by default for static builds only. You can set colrAutoClipBoxes=True for interpolatable/variable builds if safe to do so (#728).
- Improved "no default source" error (#677).
- Warn about mis-cased
# Automatic Code
insertion marker comments; also warn if there are no insertion markers but kerning.plist is non empty and there are manual kern/dist features in the FEA code (#719). - Respect openTypeNameRecords overrides for the predefined name IDs (#727).
- Reorder class definitions in feature writers such that they appear before the lookups that use them (#725).
- Renamed dottedCircleFilter module to dottedCirlce, was wrongly named; old kept for backward compat (#716).
- [kernFeatureWriter] Avoid overwriting classDefs (#705).
Register kern lookups for all defined languages (#711).
Correctly split mark and base kerning pairs (#713).
Don't skip over spacing marks when kerning (#720). - Fixed FEA include dir detection when in current dir (#689)
- Automatically decompose components when 2x2 transforms differ (#698)
- Copy old KernFeatureWriter from ufo2ft 2.30.0 into separate module (#697)
v2.31.0b2
v2.31.0b1
- Split kerning by script, not direction (#679). This is a rework of #636 and should now properly split up kerning into per-script lookups without losing any. The major upside is that multi-script fonts with a lot of kerning will compile faster and smaller, because lookups will overflow less often and become denser.
- As a side-effect, kerning will now also be generated such that the shaper will actually apply it when the designer did not explicitly declare an appropriate
languagesystem
in the font's features. Before, kerning for Greek glyphs was effectively dropped unless the designer declaredlanguagesystem grek dflt;
. - Another side-effect is that kerning between some common glyphs like
increment
andasterisk
will now always be applied, where before due to circumstances it might have been stuck in e.g. theLTR
instead of theCommon
lookup and therefore not applied if the script wasn't set correctly.