From efb32d5402a637fb36505a54f99657a0983713b9 Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Mon, 18 Jul 2016 01:35:18 +0200 Subject: [PATCH] [subset] Recalculate OS/2.xAvgCharWidth --- Lib/fontTools/subset/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Lib/fontTools/subset/__init__.py b/Lib/fontTools/subset/__init__.py index cb27e7edd..9cd937547 100644 --- a/Lib/fontTools/subset/__init__.py +++ b/Lib/fontTools/subset/__init__.py @@ -2735,6 +2735,9 @@ class Subsetter(object): new_uniranges = font[tag].recalcUnicodeRanges(font, pruneOnly=True) if old_uniranges != new_uniranges: log.info("%s Unicode ranges pruned: %s", tag, sorted(new_uniranges)) + # recalculate xAvgCharWidth, fontTools does not recalculate it + widths = [m[0] for m in font["hmtx"].metrics.values() if m[0] > 0] + font[tag].xAvgCharWidth = int(round(sum(widths) / len(widths))) clazz = ttLib.getTableClass(tag) if hasattr(clazz, 'prune_post_subset'): with timer("prune '%s'" % tag):