4.33.3 (released 2022-04-26)
----------------------------
- [designspaceLib] Fixed typo in ``deepcopyExceptFonts`` method, preventing font
references to be transferred
dataclass's ``__post_init__`` magic method
4.33.2 (released 2022-04-22)
----------------------------
- [otBase] Make logging less verbose when harfbuzz fails to serialize. Do not exit
at the first failure but continue attempting to fix offset overflow error using
the pure-python serializer even when the ``USE_HARFBUZZ_REPACKER`` option was
explicitly set to ``True``. This is normal with fonts with relatively large
tables, at least until hb.repack implements proper table splitting.
4.33.1 (released 2022-04-22)
----------------------------
- [otlLib] Put back the ``FONTTOOLS_GPOS_COMPACT_MODE`` environment variable to fix
regression in ufo2ft (and thus fontmake) introduced with v4.33.0
This is deprecated and will be removed one ufo2ft gets updated to use the new
config setup.
4.33.0 (released 2022-04-21)
----------------------------
- [OS/2 / merge] Automatically recalculate ``OS/2.xAvgCharWidth`` after merging
fonts with ``fontTools.merge``
- [misc/config] Added ``fontTools.misc.configTools`` module, a generic configuration
system
Added ``fontTools.config`` module, a fontTools-specific configuration
system using ``configTools`` above.
Attached a ``Config`` object to ``TTFont``.
- [otlLib] Replaced environment variable for GPOS compression level with an
equivalent option using the new config system.
- [designspaceLib] Incremented format version to 5.0
Added discrete axes, variable fonts, STAT information, either design- or
user-space location on instances.
Added ``fontTools.designspaceLib.split`` module to split a designspace
into sub-spaces that interpolate and that represent the variable fonts
listed in the document.
Made instance names optional and allow computing them from STAT data instead.
Added ``fontTools.designspaceLib.statNames`` module.
Allow instances to have the same location as a previously defined STAT label.
Deprecated some attributes:
``SourceDescriptor``: ``copyLib``, ``copyInfo``, ``copyGroups``, ``copyFeatures``.
``InstanceDescriptor``: ``kerning``, ``info``; ``glyphs``: use rules or sparse
sources.
For both, ``location``: use the more explicit designLocation.
Note: all are soft deprecations and existing code should keep working.
Updated documentation for Python methods and the XML format.
- [varLib] Added ``build_many`` to build several variable fonts from a single
designspace document
Added ``fontTools.varLib.stat`` module to build STAT tables from a designspace
document.
- [otBase] Try to use the Harfbuzz Repacker for packing GSUB/GPOS tables when
``uharfbuzz`` python bindings are available
"fontTools.ttLib.tables.otBase:USE_HARFBUZZ_REPACKER" config option to ``False``.
If the option is set explicitly to ``True`` but ``uharfbuzz`` can't be imported
or fails to serialize for any reasons, an error will be raised (ImportError or
uharfbuzz errors).
- [CFF/T2] Ensure that ``pen.closePath()`` gets called for CFF2 charstrings
Handle implicit CFF2 closePath within ``T2OutlineExtractor``
4.32.0 (released 2022-04-08)
----------------------------
- [otlLib] Disable GPOS7 optimization to work around bug in Apple CoreText.
Always force Chaining GPOS8 for now
- [glifLib] Added ``outputImpliedClosingLine=False`` parameter to ``Glyph.draw()``,
to control behaviour of ``PointToSegmentPen`` (6b4e2e7).
- [varLib.interpolatable] Check for wrong contour starting point
- [cffLib] Remove leftover ``GlobalState`` class and fix calls to ``TopDictIndex()``
- [instancer] Clear ``AxisValueArray`` if it is empty after instantiating
4.31.2 (released 2022-03-22)
----------------------------
- [varLib] fix instantiation of GPOS SinglePos values
4.31.1 (released 2022-03-18)
----------------------------
- [subset] fix subsetting OT-SVG when glyph id attribute is on the root ``<svg>``
element
4.31.0 (released 2022-03-18)
----------------------------
- [ttCollection] Fixed 'ResourceWarning: unclosed file' warning
- [varLib.merger] Handle merging SinglePos with valueformat=0
- [ttFont] Update glyf's glyphOrder when calling TTFont.setGlyphOrder()
- [ttFont] Added ``ensureDecompiled`` method to load all tables irrespective
of the ``lazy`` attribute
- [otBase] Added ``iterSubTable`` method to iterate over BaseTable's children of
type BaseTable; useful for traversing a tree of otTables
4.30.0 (released 2022-03-10)
----------------------------
- [varLib] Added debug logger showing the glyph name for which ``gvar`` is built
- [varLib.errors] Fixed undefined names in ``FoundANone`` and ``UnsupportedFormat``
exceptions (ac4d5611).
- [otlLib.builder] Added ``windowsNames`` and ``macNames`` (bool) parameters to the
``buildStatTabe`` function, so that one can select whether to only add one or both
of the two sets
- [t1Lib] Added the ability to recreate PostScript stream
- [name] Added ``getFirstDebugName``, ``getBest{Family,SubFamily,Full}Name`` methods
4.2.1
Make sure hb_blob_create_from_file_or_fail() always returns nullptr in case of failure and not empty blob sometimes. (Khaled Hosny)
Add --passthrough-tables option to hb-subset. (Cosimo Lupo)
Reinstate a pause after basic features in Khmer shaper, fixing a regression introduced in previous release. (Behdad Esfahbod)
Better handling of Regional_Indicator when shaped with RTL-native scripts, reverting earlier fix that caused regressions in AAT shaping.
Overview of changes leading to 4.2.0
Wednesday, March 30, 2022
====================================
- Source code reorganization, splitting large hb-ot-layout files into smaller,
per-subtable ones under OT/Layout/*. Code for more tables will follow suit in
later releases. (Garret Rieger, Behdad Esfahbod)
- Revert Indic shaper change in previous release that broke some fonts and
instead make per-syllable restriction of “GSUB” application limited to
script-specific Indic features, while applying them and discretionary
features in one go. (Behdad Esfahbod)
- Fix decoding of private in gvar table. (Behdad Esfahbod)
- Fix handling of contextual lookups that delete too many glyphs. (Behdad Esfahbod)
- Make “morx” deleted glyphs don’t block “GPOS” application. (Behdad Esfahbod)
- Various build fixes. (Chun-wei Fan, Khaled Hosny)
- New API
+hb_set_next_many() (Andrew John)
The Un-fonts come from the HLaTeX as type1 fonts in 1998 by
Koaunghi Un, he made type1 fonts to use with Korean TeX
(HLaTeX) in the late 1990's and released it under the GPL
license. They were converted to TrueType with the FontForge
(PfaEdit) by Won-kyu Park in 2003. Extra families (10 fonts):
UnPen, UnPenheulim: script UnTaza: typewriter style UnBom:
decorative UnShinmun UnYetgul: old Korean printing style
UnJamoSora, UnJamoNovel, UnJamoDotum, UnJamoBatang
The Un-fonts come from the HLaTeX as type1 fonts in 1998 by
Koaunghi Un, he made type1 fonts to use with Korean TeX
(HLaTeX) in the late 1990's and released it under the GPL
license. They were converted to TrueType with the FontForge
(PfaEdit) by Won-kyu Park in 2003. Core families (9 fonts):
UnBatang, UnBatangBold: serif UnDotum, UnDotumBold: sans-serif
UnGraphic, UnGraphicBold: sans-serif style UnPilgi,
UnPilgiBold: script UnGungseo: cursive, brush-stroke
The package contains some Chinese font metrics (JFM, VF, etc)
for upTeX engine, together with a simple DVIPDFMx font mapping
of Fandol fonts for DVIPDFMx.
These are metrics to use existing Chinese TrueType fonts in
workflows that use LaTeX & dvipdfmx, or pdfLaTeX. The fonts
themselves are not included in the package. Six font families
are supported: kai, song, lishu, fangsong, youyuan and hei. Two
encodings (GBK and UTF-8) are supported.
3.21
* Fix performance regression introduced in version 3.19.
* More reliably support TrueType based variable fonts in harf mode.
3.20
* Two critical bugs related to luaotfload-tool and the cache location have
been corrected.
3.19
* When used with LuaTeX 1.15.0 or newer, variable fonts are supported
when using the harf shaper too.
* A new algorithm for selecting fonts based on font family names allows
to more reliably load fonts based on their family name.
* The compiled font database gets compressed to reduce disk space and
improve performance on newer systems.
* Text automatically gets normalized to Unicode's NFC before shaping.
This improves rendering for text written in decomposed forms for many
fonts. This can be turned off by passing the -normalize font feature.
* The fontloader has been synced with the context code from 2022-02-24.
This fixes some broken rendering of TrueType based variable fonts.
* A number of small bugfixes.
JuliaMono is a monospaced typeface designed for programming in text
editing environments that require a wide range of specialist and
technical Unicode characters.
Version 2.7 of mf2pt1 supports new --output-dir and --save-temps options
for controlling where intermediate and output files are written and if
intermediate files should be retained after execution completes. It also
allows helper programs (mpost, t1asm, and fontforge) to be overridden,
including with arguments, via environment variables.
Two CTAN packages japanese-otf and japanese-otf-uptex are merged into this
package.
Now japanese-otf-uptex is obsolete. New features are followings:
japanese-otf:
* supported halfwidth Katakana in \UTF{} (TeX JP org extension)
* shrunk data size of virtual fonts (TeX JP org extension)
* set FONTDIR RT in OFM for pTeX vertical writing. (TeX JP org extension)
They work with dvips 2022.1 (r62223 or later).
japanese-otf-uptex: v0.27
* introduced multi-weight virtual fonts for Chinese/Korean plain texts.
* update samples.