Lets not add inconsistent names?

This commit is contained in:
rsheeter 2024-11-12 08:54:45 -08:00
parent 081d6a27ab
commit 991e7914e3
7 changed files with 39 additions and 95 deletions

View File

@ -85,6 +85,15 @@ def _add_fvar(font, axes, instances: List[InstanceDescriptor]):
fvar = newTable("fvar") fvar = newTable("fvar")
nameTable = font["name"] 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(): for a in axes.values():
axis = Axis() axis = Axis()
axis.axisTag = Tag(a.tag) axis.axisTag = Tag(a.tag)
@ -95,7 +104,7 @@ def _add_fvar(font, axes, instances: List[InstanceDescriptor]):
a.maximum, a.maximum,
) )
axis.axisNameID = nameTable.addMultilingualName( axis.axisNameID = nameTable.addMultilingualName(
a.labelNames, font, minNameID=256 a.labelNames, font, minNameID=256, mac=macNames
) )
axis.flags = int(a.hidden) axis.flags = int(a.hidden)
fvar.axes.append(axis) fvar.axes.append(axis)
@ -121,10 +130,12 @@ def _add_fvar(font, axes, instances: List[InstanceDescriptor]):
psname = instance.postScriptFontName psname = instance.postScriptFontName
inst = NamedInstance() inst = NamedInstance()
inst.subfamilyNameID = nameTable.addMultilingualName(localisedStyleName) inst.subfamilyNameID = nameTable.addMultilingualName(
localisedStyleName, mac=macNames
)
if psname is not None: if psname is not None:
psname = tostr(psname) psname = tostr(psname)
inst.postscriptNameID = nameTable.addName(psname) inst.postscriptNameID = nameTable.addName(psname, platforms=platforms)
inst.coordinates = { inst.coordinates = {
axes[k].tag: axes[k].map_backward(v) for k, v in coordinates.items() axes[k].tag: axes[k].map_backward(v) for k, v in coordinates.items()
} }

View File

@ -408,7 +408,9 @@ def instantiateVariableFont(varfont, location, inplace=False, overlap=True):
if set(excludedUnicodeLangIDs) == set(range(len((varfont["ltag"].tags)))): if set(excludedUnicodeLangIDs) == set(range(len((varfont["ltag"].tags)))):
del varfont["ltag"] del varfont["ltag"]
varfont["name"].names[:] = [ 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: if "wght" in location and "OS/2" in varfont:

View File

@ -161,42 +161,42 @@
<!-- Regular --> <!-- Regular -->
<!-- PostScript: TestFamily-Regular --> <!-- PostScript: TestFamily-Regular -->
<NamedInstance flags="0x0" postscriptNameID="263" subfamilyNameID="262"> <NamedInstance flags="0x0" postscriptNameID="262" subfamilyNameID="2">
<coord axis="wght" value="394.0"/> <coord axis="wght" value="394.0"/>
<coord axis="cntr" value="0.0"/> <coord axis="cntr" value="0.0"/>
</NamedInstance> </NamedInstance>
<!-- Semibold --> <!-- Semibold -->
<!-- PostScript: TestFamily-Semibold --> <!-- PostScript: TestFamily-Semibold -->
<NamedInstance flags="0x0" postscriptNameID="265" subfamilyNameID="264"> <NamedInstance flags="0x0" postscriptNameID="264" subfamilyNameID="263">
<coord axis="wght" value="600.0"/> <coord axis="wght" value="600.0"/>
<coord axis="cntr" value="0.0"/> <coord axis="cntr" value="0.0"/>
</NamedInstance> </NamedInstance>
<!-- Bold --> <!-- Bold -->
<!-- PostScript: TestFamily-Bold --> <!-- PostScript: TestFamily-Bold -->
<NamedInstance flags="0x0" postscriptNameID="267" subfamilyNameID="266"> <NamedInstance flags="0x0" postscriptNameID="266" subfamilyNameID="265">
<coord axis="wght" value="824.0"/> <coord axis="wght" value="824.0"/>
<coord axis="cntr" value="0.0"/> <coord axis="cntr" value="0.0"/>
</NamedInstance> </NamedInstance>
<!-- Black --> <!-- Black -->
<!-- PostScript: TestFamily-Black --> <!-- PostScript: TestFamily-Black -->
<NamedInstance flags="0x0" postscriptNameID="269" subfamilyNameID="268"> <NamedInstance flags="0x0" postscriptNameID="268" subfamilyNameID="267">
<coord axis="wght" value="1000.0"/> <coord axis="wght" value="1000.0"/>
<coord axis="cntr" value="0.0"/> <coord axis="cntr" value="0.0"/>
</NamedInstance> </NamedInstance>
<!-- Black Medium Contrast --> <!-- Black Medium Contrast -->
<!-- PostScript: TestFamily-BlackMediumContrast --> <!-- PostScript: TestFamily-BlackMediumContrast -->
<NamedInstance flags="0x0" postscriptNameID="271" subfamilyNameID="270"> <NamedInstance flags="0x0" postscriptNameID="270" subfamilyNameID="269">
<coord axis="wght" value="1000.0"/> <coord axis="wght" value="1000.0"/>
<coord axis="cntr" value="50.0"/> <coord axis="cntr" value="50.0"/>
</NamedInstance> </NamedInstance>
<!-- Black High Contrast --> <!-- Black High Contrast -->
<!-- PostScript: TestFamily-BlackHighContrast --> <!-- PostScript: TestFamily-BlackHighContrast -->
<NamedInstance flags="0x0" postscriptNameID="273" subfamilyNameID="272"> <NamedInstance flags="0x0" postscriptNameID="272" subfamilyNameID="271">
<coord axis="wght" value="1000.0"/> <coord axis="wght" value="1000.0"/>
<coord axis="cntr" value="100.0"/> <coord axis="cntr" value="100.0"/>
</NamedInstance> </NamedInstance>

View File

@ -443,63 +443,6 @@
<namerecord nameID="257" platformID="0" platEncID="4" langID="0x0"> <namerecord nameID="257" platformID="0" platEncID="4" langID="0x0">
کنتراست کنتراست
</namerecord> </namerecord>
<namerecord nameID="256" platformID="1" platEncID="0" langID="0x0" unicode="True">
Weight
</namerecord>
<namerecord nameID="257" platformID="1" platEncID="0" langID="0x0" unicode="True">
Contrast
</namerecord>
<namerecord nameID="258" platformID="1" platEncID="0" langID="0x0" unicode="True">
ExtraLight
</namerecord>
<namerecord nameID="259" platformID="1" platEncID="0" langID="0x0" unicode="True">
TestFamily-ExtraLight
</namerecord>
<namerecord nameID="260" platformID="1" platEncID="0" langID="0x0" unicode="True">
Light
</namerecord>
<namerecord nameID="261" platformID="1" platEncID="0" langID="0x0" unicode="True">
TestFamily-Light
</namerecord>
<namerecord nameID="262" platformID="1" platEncID="0" langID="0x0" unicode="True">
Regular
</namerecord>
<namerecord nameID="263" platformID="1" platEncID="0" langID="0x0" unicode="True">
TestFamily-Regular
</namerecord>
<namerecord nameID="264" platformID="1" platEncID="0" langID="0x0" unicode="True">
Semibold
</namerecord>
<namerecord nameID="265" platformID="1" platEncID="0" langID="0x0" unicode="True">
TestFamily-Semibold
</namerecord>
<namerecord nameID="266" platformID="1" platEncID="0" langID="0x0" unicode="True">
Bold
</namerecord>
<namerecord nameID="267" platformID="1" platEncID="0" langID="0x0" unicode="True">
TestFamily-Bold
</namerecord>
<namerecord nameID="268" platformID="1" platEncID="0" langID="0x0" unicode="True">
Black
</namerecord>
<namerecord nameID="269" platformID="1" platEncID="0" langID="0x0" unicode="True">
TestFamily-Black
</namerecord>
<namerecord nameID="270" platformID="1" platEncID="0" langID="0x0" unicode="True">
Black Medium Contrast
</namerecord>
<namerecord nameID="271" platformID="1" platEncID="0" langID="0x0" unicode="True">
TestFamily-BlackMediumContrast
</namerecord>
<namerecord nameID="272" platformID="1" platEncID="0" langID="0x0" unicode="True">
Black High Contrast
</namerecord>
<namerecord nameID="273" platformID="1" platEncID="0" langID="0x0" unicode="True">
TestFamily-BlackHighContrast
</namerecord>
<namerecord nameID="257" platformID="1" platEncID="0" langID="0x2" unicode="True">
Kontrast
</namerecord>
<namerecord nameID="257" platformID="3" platEncID="1" langID="0x407"> <namerecord nameID="257" platformID="3" platEncID="1" langID="0x407">
Kontrast Kontrast
</namerecord> </namerecord>
@ -546,39 +489,36 @@
TestFamily-Light TestFamily-Light
</namerecord> </namerecord>
<namerecord nameID="262" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="262" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
<namerecord nameID="263" platformID="3" platEncID="1" langID="0x409">
TestFamily-Regular TestFamily-Regular
</namerecord> </namerecord>
<namerecord nameID="264" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="263" platformID="3" platEncID="1" langID="0x409">
Semibold Semibold
</namerecord> </namerecord>
<namerecord nameID="265" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="264" platformID="3" platEncID="1" langID="0x409">
TestFamily-Semibold TestFamily-Semibold
</namerecord> </namerecord>
<namerecord nameID="266" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="265" platformID="3" platEncID="1" langID="0x409">
Bold Bold
</namerecord> </namerecord>
<namerecord nameID="267" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="266" platformID="3" platEncID="1" langID="0x409">
TestFamily-Bold TestFamily-Bold
</namerecord> </namerecord>
<namerecord nameID="268" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="267" platformID="3" platEncID="1" langID="0x409">
Black Black
</namerecord> </namerecord>
<namerecord nameID="269" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="268" platformID="3" platEncID="1" langID="0x409">
TestFamily-Black TestFamily-Black
</namerecord> </namerecord>
<namerecord nameID="270" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="269" platformID="3" platEncID="1" langID="0x409">
Black Medium Contrast Black Medium Contrast
</namerecord> </namerecord>
<namerecord nameID="271" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="270" platformID="3" platEncID="1" langID="0x409">
TestFamily-BlackMediumContrast TestFamily-BlackMediumContrast
</namerecord> </namerecord>
<namerecord nameID="272" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="271" platformID="3" platEncID="1" langID="0x409">
Black High Contrast Black High Contrast
</namerecord> </namerecord>
<namerecord nameID="273" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="272" platformID="3" platEncID="1" langID="0x409">
TestFamily-BlackHighContrast TestFamily-BlackHighContrast
</namerecord> </namerecord>
</name> </name>
@ -807,42 +747,42 @@
<!-- Regular --> <!-- Regular -->
<!-- PostScript: TestFamily-Regular --> <!-- PostScript: TestFamily-Regular -->
<NamedInstance flags="0x0" postscriptNameID="263" subfamilyNameID="262"> <NamedInstance flags="0x0" postscriptNameID="262" subfamilyNameID="2">
<coord axis="wght" value="394.0"/> <coord axis="wght" value="394.0"/>
<coord axis="cntr" value="0.0"/> <coord axis="cntr" value="0.0"/>
</NamedInstance> </NamedInstance>
<!-- Semibold --> <!-- Semibold -->
<!-- PostScript: TestFamily-Semibold --> <!-- PostScript: TestFamily-Semibold -->
<NamedInstance flags="0x0" postscriptNameID="265" subfamilyNameID="264"> <NamedInstance flags="0x0" postscriptNameID="264" subfamilyNameID="263">
<coord axis="wght" value="600.0"/> <coord axis="wght" value="600.0"/>
<coord axis="cntr" value="0.0"/> <coord axis="cntr" value="0.0"/>
</NamedInstance> </NamedInstance>
<!-- Bold --> <!-- Bold -->
<!-- PostScript: TestFamily-Bold --> <!-- PostScript: TestFamily-Bold -->
<NamedInstance flags="0x0" postscriptNameID="267" subfamilyNameID="266"> <NamedInstance flags="0x0" postscriptNameID="266" subfamilyNameID="265">
<coord axis="wght" value="824.0"/> <coord axis="wght" value="824.0"/>
<coord axis="cntr" value="0.0"/> <coord axis="cntr" value="0.0"/>
</NamedInstance> </NamedInstance>
<!-- Black --> <!-- Black -->
<!-- PostScript: TestFamily-Black --> <!-- PostScript: TestFamily-Black -->
<NamedInstance flags="0x0" postscriptNameID="269" subfamilyNameID="268"> <NamedInstance flags="0x0" postscriptNameID="268" subfamilyNameID="267">
<coord axis="wght" value="1000.0"/> <coord axis="wght" value="1000.0"/>
<coord axis="cntr" value="0.0"/> <coord axis="cntr" value="0.0"/>
</NamedInstance> </NamedInstance>
<!-- Black Medium Contrast --> <!-- Black Medium Contrast -->
<!-- PostScript: TestFamily-BlackMediumContrast --> <!-- PostScript: TestFamily-BlackMediumContrast -->
<NamedInstance flags="0x0" postscriptNameID="271" subfamilyNameID="270"> <NamedInstance flags="0x0" postscriptNameID="270" subfamilyNameID="269">
<coord axis="wght" value="1000.0"/> <coord axis="wght" value="1000.0"/>
<coord axis="cntr" value="50.0"/> <coord axis="cntr" value="50.0"/>
</NamedInstance> </NamedInstance>
<!-- Black High Contrast --> <!-- Black High Contrast -->
<!-- PostScript: TestFamily-BlackHighContrast --> <!-- PostScript: TestFamily-BlackHighContrast -->
<NamedInstance flags="0x0" postscriptNameID="273" subfamilyNameID="272"> <NamedInstance flags="0x0" postscriptNameID="272" subfamilyNameID="271">
<coord axis="wght" value="1000.0"/> <coord axis="wght" value="1000.0"/>
<coord axis="cntr" value="100.0"/> <coord axis="cntr" value="100.0"/>
</NamedInstance> </NamedInstance>

View File

@ -228,9 +228,6 @@
</glyf> </glyf>
<name> <name>
<namerecord nameID="256" platformID="1" platEncID="0" langID="0x0" unicode="True">
Weight
</namerecord>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
Test Family Test Family
</namerecord> </namerecord>

View File

@ -68,9 +68,6 @@
</gvar> </gvar>
<name> <name>
<namerecord nameID="256" platformID="1" platEncID="0" langID="0x0" unicode="True">
Weight
</namerecord>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
Test Family Test Family
</namerecord> </namerecord>

View File

@ -236,9 +236,6 @@
</glyf> </glyf>
<name> <name>
<namerecord nameID="256" platformID="1" platEncID="0" langID="0x0" unicode="True">
Weight
</namerecord>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
Layer Font Layer Font
</namerecord> </namerecord>