We would expect/understand from the UI:
Name = style name = ID17
Localized family name = family name = ID16
But even when specifying “Regular” as a style name, the default master is used to build the name table. For example, if the origin is “Book” then name ID17 = Book
. I personally think it makes sense to have the style name reflecting the font origin. But why is that field even there then?
So instead of having “Regular” in the VF name field, I put the font origin (let’s say “Book”) for consistency. But now Book is appended to the family name in the entire name table, creating a complete mess, especially in the Italic:
<name>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
Name VF Book
</namerecord>
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
Italic
</namerecord>
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
1.101;205;NameVFBookItalic-BookItalic
</namerecord>
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
Name VF Book Italic
</namerecord>
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
NameVFBookItalic-BookItalic
</namerecord>
<namerecord nameID="16" platformID="3" platEncID="1" langID="0x409">
Name VF
</namerecord>
<namerecord nameID="17" platformID="3" platEncID="1" langID="0x409">
Book Italic
</namerecord>
<namerecord nameID="25" platformID="3" platEncID="1" langID="0x409">
NameVFBookItalic
</namerecord>
<namerecord nameID="256" platformID="3" platEncID="1" langID="0x409">
Weight
</namerecord>
<namerecord nameID="257" platformID="3" platEncID="1" langID="0x409">
Thin Italic
</namerecord>
<namerecord nameID="258" platformID="3" platEncID="1" langID="0x409">
NameVFBookItalic-ThinItalic
</namerecord>
<namerecord nameID="259" platformID="3" platEncID="1" langID="0x409">
ExtraLight Italic
</namerecord>
<namerecord nameID="260" platformID="3" platEncID="1" langID="0x409">
NameVFBookItalic-ExtraLightItalic
</namerecord>
<namerecord nameID="261" platformID="3" platEncID="1" langID="0x409">
Light Italic
</namerecord>
<namerecord nameID="262" platformID="3" platEncID="1" langID="0x409">
NameVFBookItalic-LightItalic
</namerecord>
<namerecord nameID="263" platformID="3" platEncID="1" langID="0x409">
NameVFBookItalic-Italic
</namerecord>
<namerecord nameID="264" platformID="3" platEncID="1" langID="0x409">
Medium Italic
</namerecord>
<namerecord nameID="265" platformID="3" platEncID="1" langID="0x409">
NameVFBookItalic-MediumItalic
</namerecord>
<namerecord nameID="266" platformID="3" platEncID="1" langID="0x409">
SemiBold Italic
</namerecord>
<namerecord nameID="267" platformID="3" platEncID="1" langID="0x409">
NameVFBookItalic-SemiBoldItalic
</namerecord>
<namerecord nameID="268" platformID="3" platEncID="1" langID="0x409">
Bold Italic
</namerecord>
<namerecord nameID="269" platformID="3" platEncID="1" langID="0x409">
NameVFBookItalic-BoldItalic
</namerecord>
<namerecord nameID="270" platformID="3" platEncID="1" langID="0x409">
Thin
</namerecord>
<namerecord nameID="271" platformID="3" platEncID="1" langID="0x409">
ExtraLight
</namerecord>
<namerecord nameID="272" platformID="3" platEncID="1" langID="0x409">
Light
</namerecord>
<namerecord nameID="273" platformID="3" platEncID="1" langID="0x409">
Book
</namerecord>
<namerecord nameID="274" platformID="3" platEncID="1" langID="0x409">
Medium
</namerecord>
<namerecord nameID="275" platformID="3" platEncID="1" langID="0x409">
SemiBold
</namerecord>
<namerecord nameID="276" platformID="3" platEncID="1" langID="0x409">
Bold
</namerecord>
</name>
When “Regular” is used, I guess it is elided and so it doesn’t create such a mess.
So I guess my main question is:
Is the VF name field standing for the postscript VF name ID25, the style name, or a specific suffix to append to the family name?
-
If the name field is for nameID25: it shouldn’t be used to build the other name IDs, especially for the non-postscript names.
-
If this field is for the VF style name: all PS names are usually limited in the number of characters (even for the PS names linked to the FVAR table), so this duplication is annoying.
This is what I would expect for the variable font name table:
Input in the UI:
Name = Style Name (origin or Regular or else to override the default style name)
Localized Family Name = Family Name
Output in the name table:
ID 1 = Family Name + (non-RIBBI) Style Name
ID 2 = RIBBI Style Name
ID 3 = version;vendorID;FamilyNameStyleName
ID 4 = Family Name Style Name
ID 6 = FamilyName-StyleName
ID 16 = Family Name
ID 17 = Style Name
ID 25 = Family Name (for romain) or Family Name Italic (for italic)
ID 2** (FVAR instance's style name) = Instance Style Name
ID 2** (FVAR instance's postscript name) = nameID25-InstanceStyleName
- Following the OT spec, the name ID25 should be used to build the FVAR instance’s postscript name only (name IDs 2**).
- So there is no incentive for the ID25 to influence non-postscript names such as ID4 and ID3, they should be built like a normal static font would be.
- ID25 shouldn’t be influenced by the VF name field in the UI either to avoid conflicts or confusion is the name table. The “name table entry” custom parameter could be used to override it (to abbreviate it for eg.).
- To avoid bugs in Indesign: as default it should be the
Family Name
for upright styles, andFamily Name Italic
should be appended to that name for the italic style.
What do you think?