diff --git a/Lib/fontTools/varLib/__init__.py b/Lib/fontTools/varLib/__init__.py index 36b1851cb..43a16da5a 100644 --- a/Lib/fontTools/varLib/__init__.py +++ b/Lib/fontTools/varLib/__init__.py @@ -85,6 +85,15 @@ def _add_fvar(font, axes, instances: List[InstanceDescriptor]): fvar = newTable("fvar") nameTable = font["name"] + # if there are not currently any mac names don't add them here, that's inconsistent + # https://github.com/fonttools/fonttools/issues/683 + macNames = any(nr.platformID == 1 for nr in getattr(nameTable, "names", ())) + + # we have all the best ways to express mac names + platforms = ((3, 1, 0x409),) + if macNames: + platforms = ((1, 0, 0),) + platforms + for a in axes.values(): axis = Axis() axis.axisTag = Tag(a.tag) @@ -95,7 +104,7 @@ def _add_fvar(font, axes, instances: List[InstanceDescriptor]): a.maximum, ) axis.axisNameID = nameTable.addMultilingualName( - a.labelNames, font, minNameID=256 + a.labelNames, font, minNameID=256, mac=macNames ) axis.flags = int(a.hidden) fvar.axes.append(axis) @@ -121,10 +130,12 @@ def _add_fvar(font, axes, instances: List[InstanceDescriptor]): psname = instance.postScriptFontName inst = NamedInstance() - inst.subfamilyNameID = nameTable.addMultilingualName(localisedStyleName) + inst.subfamilyNameID = nameTable.addMultilingualName( + localisedStyleName, mac=macNames + ) if psname is not None: psname = tostr(psname) - inst.postscriptNameID = nameTable.addName(psname) + inst.postscriptNameID = nameTable.addName(psname, platforms=platforms) inst.coordinates = { axes[k].tag: axes[k].map_backward(v) for k, v in coordinates.items() } diff --git a/Lib/fontTools/varLib/mutator.py b/Lib/fontTools/varLib/mutator.py index 80e46bb24..f9f937902 100644 --- a/Lib/fontTools/varLib/mutator.py +++ b/Lib/fontTools/varLib/mutator.py @@ -408,7 +408,9 @@ def instantiateVariableFont(varfont, location, inplace=False, overlap=True): if set(excludedUnicodeLangIDs) == set(range(len((varfont["ltag"].tags)))): del varfont["ltag"] varfont["name"].names[:] = [ - n for n in varfont["name"].names if n.nameID not in exclude + n + for n in varfont["name"].names + if n.nameID < 256 or n.nameID not in exclude ] if "wght" in location and "OS/2" in varfont: diff --git a/Tests/varLib/data/test_results/Build.ttx b/Tests/varLib/data/test_results/Build.ttx index 144cca5e7..f4fa0ae48 100644 --- a/Tests/varLib/data/test_results/Build.ttx +++ b/Tests/varLib/data/test_results/Build.ttx @@ -161,42 +161,42 @@ - + - + - + - + - + - + diff --git a/Tests/varLib/data/test_results/BuildMain.ttx b/Tests/varLib/data/test_results/BuildMain.ttx index 3a1bcfd37..1c2c1fa8d 100644 --- a/Tests/varLib/data/test_results/BuildMain.ttx +++ b/Tests/varLib/data/test_results/BuildMain.ttx @@ -443,63 +443,6 @@ کنتراست - - Weight - - - Contrast - - - ExtraLight - - - TestFamily-ExtraLight - - - Light - - - TestFamily-Light - - - Regular - - - TestFamily-Regular - - - Semibold - - - TestFamily-Semibold - - - Bold - - - TestFamily-Bold - - - Black - - - TestFamily-Black - - - Black Medium Contrast - - - TestFamily-BlackMediumContrast - - - Black High Contrast - - - TestFamily-BlackHighContrast - - - Kontrast - Kontrast @@ -546,39 +489,36 @@ TestFamily-Light - Regular - - TestFamily-Regular - + Semibold - + TestFamily-Semibold - + Bold - + TestFamily-Bold - + Black - + TestFamily-Black - + Black Medium Contrast - + TestFamily-BlackMediumContrast - + Black High Contrast - + TestFamily-BlackHighContrast @@ -807,42 +747,42 @@ - + - + - + - + - + - + diff --git a/Tests/varLib/data/test_results/DropOnCurves.ttx b/Tests/varLib/data/test_results/DropOnCurves.ttx index 4bfd36ad0..58a830f3c 100644 --- a/Tests/varLib/data/test_results/DropOnCurves.ttx +++ b/Tests/varLib/data/test_results/DropOnCurves.ttx @@ -228,9 +228,6 @@ - - Weight - Test Family diff --git a/Tests/varLib/data/test_results/SingleMaster.ttx b/Tests/varLib/data/test_results/SingleMaster.ttx index 02cfe32bd..47f957743 100644 --- a/Tests/varLib/data/test_results/SingleMaster.ttx +++ b/Tests/varLib/data/test_results/SingleMaster.ttx @@ -68,9 +68,6 @@ - - Weight - Test Family diff --git a/Tests/varLib/data/test_results/SparseMasters.ttx b/Tests/varLib/data/test_results/SparseMasters.ttx index 2871e24fb..a35260029 100644 --- a/Tests/varLib/data/test_results/SparseMasters.ttx +++ b/Tests/varLib/data/test_results/SparseMasters.ttx @@ -236,9 +236,6 @@ - - Weight - Layer Font