Family name

Hi

I'm creating a large family of fonts and wonder what is the best way to name the members so they'll stick together and be as compact as possible?
I'm using FontForge to generate the OTF files, and wish to mark the font weights with numbers i.e. 100, 200, 300, etc'

The general family structure is:
Font name, Style (Regular/Rounded/Narrow/Wide/Italic/Angular/etc'), Weight (100, 200, 300, 400, 500, etc')

I might have one font with 5 weights of the Regular style, 5 weights of the Narrow and Italic styles and wish they'll all stick together in windows and Mac folders and software menus

Any suggestions?
Thanks
«13

Comments

  • Craig Eliason
    Craig Eliason Posts: 1,436
    The go-to guide on font naming has long been Karsten Lücke's. It's keyed to FontLab Studio but perhaps you can translate into FontForge's interface.
  • Ofir Shavit
    Ofir Shavit Posts: 397
    edited April 2014
    Thanks Craig.

    What a mess...

    Can anyone draw the lines between the Fontlab dialog names fields and the Fontforge's?

    Attached an image with Orange marks to make it easier
    And what if I don't wish to use the "Book, Semibold, Bold, Black, etc'" names and use only numeric indications for the weights (100, 200, 300...)?



  • It'll be worth studying this a little on your own so you can really understand it. Make a dummy font in FontForge, generate the fonts, TTX them, compare to the naming specs and see how FontForge builds the actual tables.
  • Hi Ofir,

    The TTF Names in FontForge are the OpenType specs’ name IDs from OpenType Specifications - The Naming table (see the Name IDs table).
    "Family" is name ID 1, "Styles (Subfamily)" is name ID 2, "Preferred Family" is name ID 16, "Preferred Style" is name ID 17, etc as they are described in the specs.

    So, in your image:
    TTF 4 = FL 1,
    TTF 5 = FL 2,
    TTF 1 = FL 3,
    TTF 3 = FL 7.

    The PS Names are
    Fontname = PS name
    Family name = OT Name ID 1
    Name For Humans = OT Name ID 4 (TTF Names: "Fullname")
    Weight = OT Name ID 2 (TTF Names: "Styles (Subfamily)")

    So, in your image:
    PS 1 = FL 8,
    PS 2 = TTF 4 = FL 1,
    PS 3 = TTF 3 = FL 7,
    PS 4 = TTF 2 = FL 4.

    The main issue is grouping font families in groups of 4 for Name ID 1 and 2 (Family and Style) for the Windows platform.
    The Name ID 16 and 17 (Preferred Family and Preferred Style) allow for more members in a family.

    Another set of names were added to the OpenType specs more recently.
    Name ID 21 and 22 (WWS Family and WWS Style) can be used for other style variation than weight, width, slant (WWS), like if you want your Rounded, Angular, Caption, etc. styles to have the same name ID 16 as the other styles.
  • Ofir Shavit
    Ofir Shavit Posts: 397
    Ok. Thanks a lot Jackson and Denis!

    I'll start another session of experimenting
  • Ofir Shavit
    Ofir Shavit Posts: 397
    After investigation few corrections were found...

    TTF3 = FL9
    TTF2 = FL7

    PS2 = TTF1 = FL3
    PS3 = TTF3 = FL9
    PS4 = TTF2 = FL7

    What's weird is that there's no straight way to defing a font's weight with FontForge since the PS weight (PS4) is actually the Sabfamily (TTF2)!?

    I wonder if the basic 4 family members limitation is just a quantity limitation or the restriction is for using the standard names as well (regular, italic, bold, bold italic )? If I'll use 4 other styles like - Tall, short, wide, narrow, would it work as well or should I use the ID16/17 for these variations?

  • Thomas Phinney
    Thomas Phinney Posts: 2,869
    Yes, the 4-member Windows family limitation requires that the four members only relate as regular, italic, bold and bold italic within the family. The Windows family name need not be the typographic family name, however. (Excepting the one core Windows family.)

    If you have a big family, and you are not comfortable/familiar with the issues, and you can afford it, you might consider just using FontLab's TransType 4 to fix the family relationship issues. It is very good for this task.
  • Ofir Shavit
    Ofir Shavit Posts: 397
    Thanks Thomas, that's an option.
    I still wish to understand and control FF's functionality and how to achieve with it my basic needs and didn't get there yet.
  • Dave Crossland
    Dave Crossland Posts: 1,429
    Ofir, please post a diagram of what you wish this was like on the FontForge issue tracker on Github and we fontforge developers will make it happen!
  • Ofir Shavit
    Ofir Shavit Posts: 397
    edited April 2014
    That would be amazing.

    What kind of diagram do you mean?

    I know what I want to do and the result I wish to get.

    I'm creating the following OTF font family:

    Family: Nigella
    Styles:
    Regular. weights: 100, 300, 500, 700, 900
    Condensed. weights: 100, 300, 500, 700, 900
    Rounded. weights: 100, 300, 500, 700, 900
    Angular. weights: 100, 300, 500, 700, 900
    Wide. weights: 100, 300, 500, 700, 900

    Most simple, 20 members in total

    I wish they'll stick together in Windows, Mac and main popular applications

    For example, in the PS Character dialog this family will be presented like:

    Under Nigella
    Regular 100
    Regular 300
    Regular 500
    Regular 700
    Regular 900
    Condensed 100
    Condensed 300
    Condensed 500
    etc'
    Rounded 100
    etc'
    Angular 100
    etc'
    Wide 100
    etc'
  • Isn't Nigella Rounded already trademarked?
  • Dave Crossland
    Dave Crossland Posts: 1,429
    I agree with James; and for GDI I suggest to make families with just regular and italic outside the RIBBI core-4.
  • The user and all related content has been deleted.
  • Ofir Shavit
    Ofir Shavit Posts: 397
    edited April 2014
    @Jan I'm not actually calling my font Nigella, but since you mentioned it how should one verify his intended font's name isn't already taken?
  • Search MyFonts for starters, then the web in general, the trademarks sites, at least the US one. Not really simple or easy.
  • and for GDI I suggest to make families with just regular and italic outside the RIBBI core-4.

    Why so?

    Because GDI applications can't handle more than the core 4 styles per family. On Windows that's what nameIDs 1 and 2 are for, nameIDs 16 and 17 can have more than 4 styles.
  • Thomas Phinney
    Thomas Phinney Posts: 2,869
    I count 5x5 = 25 fonts. No? But otherwise, sure.

    Personally I would only stick the angular and rounded subfamilies into separate typographic families, and put the regular, wide and condensed ones together. But that's just my preference.
  • Ofir Shavit
    Ofir Shavit Posts: 397
    Thanks Jan, I understand there isn't a central place that manage font names.

    Can anyone please try and see what's wrong with the fonts attached?
    4 fonts I try to gather to a family with no luck

    Family name is Agent
    and there are 4 weights, thin, light, medium & bold

    I'm using FontForge and tried various combinations of styles and weights and names and you name it, and I don't mind to change the weight/style name as long as they'll stick together in my Windows Fonts directory and show up under the same family name in PS and other software, right now only 2-3 of them show up, other are hidden and or displayed with unintended names.
  • Ofir, in my experience, the trademarks names need to be checked against other but similar usages … I had to withdraw and rename a family called Alfons (after Mr Mucha, a Czech artist), because there was a trademark on All Fonts. Ouch.
  • Mark Simonson
    Mark Simonson Posts: 1,728
    edited April 2014
    Your name tables are really messed up.

    First of all, you've got four different weights. For Windows, you can have at most two weights in a family (two roman, two italic), technically regular and bold, but they don't literally need to be "regular" and "bold".

    This all happens in name table entries 1 and 2. Name table entry 1 is the "Family Name", name table 2 is the "Style Name". Only two roman (non-italic) fonts can have the same "Family Name" for name table entry 1. In your fonts, you've got four roman fonts with the same "Family Name", "Agent". Not only that, none of your fonts is called either "Agent" or "Agent Regular". To avoid confusion, and to make it so that they all show up in Windows font menus, I would just skip the whole regular/bold thing and enter them under four different family names for name table entry 1:

    Agent Bold
    Agent Medium
    Agent Thin
    Agent Light

    Name table entry 2 can only be one of four things: "Regular", "Italic", "Bold", or "Bold Italic". No other possibilities will work. The entries you have ("700", "_medium", "_thin", and "500") will not work.

    None of your fonts are italic, and we're not using bold (see above). That leaves "Regular" for all of them. Name table entry 2 for all four fonts will be "Regular".

    Regular
    Regular
    Regular
    Regular

    Name table entry 3 is the "Full Name". Usually, this is entry 1 combined with entry 2. However, if the style is "Regular", then it's identical to entry 1. So, for name table entry 3, enter the same as name table 1:

    Agent Bold
    Agent Medium
    Agent Thin
    Agent Light

    Name table entry 6 is the "PostScript Name". This is normally the family name + a hyphen + the style name. The preceding entries are only used by simple Windows apps like Office. Other apps, can use more than two weights. So for this, we can use "Agent" as the family name and the weight names for the style name. Also: only letters and one hyphen are allowed, and the hyphen must be between the two parts--no underscores, like you used. So, for name table 5:

    Agent-Bold
    Agent-Medium
    Agent-Thin
    Agent-Light

    All of this goes for both platform 1 (Windows) and platform 3 (Mac). There are a set of name table entries for each.

    For the next two entries, only include them for platform 1 (Windows). They are not needed for Mac because the Windows entries are also used there in every case that matters.

    Name table entry 16 is the "OpenType Family Name". This is the same as what you used for the family name in entry 6:

    Agent
    Agent
    Agent
    Agent

    Finally, name table entry 17 is the "OpenType Style Name". This is the same as the second part in entry 6:

    Bold
    Medium
    Thin
    Light

    That's it. However, if your font is CFF OpenType (and yours are), then make sure the CFF table has the right stuff too:

    - Font name should be the same as entry 6, the "PostScript Name"
    - FullName should be the same as entry 3, the "Full Name"
    - FamilyName should be the same as entry 1, the "Family Name"
    - Weight should be the same as entry 6, the "OpenType Family Name" (Note: weight only, don't add "Italic" if it's italic)

    Finally, you've got "100" as the weight value for your Thin weight. This will kind of work, but it's better not to use a value below "250", otherwise Windows may do a fake bold thing to it.

    That should do it. Good luck.

    (Note to others reading this: I may have left out some stuff that applies to larger families.)
  • Mark Simonson
    Mark Simonson Posts: 1,728
    One more thing: I don't know how you would go about fixing this in FontForge. I've barely ever used it. I used TTX to examine your fonts as .ttx files, which can be read in any text editor. TTX could also be used to make the fixes if you're not sure how to apply this advice within FontForge.
  • Mark: ‘TTX could also be used to make the fixes if you're not sure how to apply this advice within FontForge.

    Although I may be a bit biased, I strongly believe that DTL OTMaster (download manual) is the most convenient tool for checking and editing .otf and .ttf fonts.
  • Mark Simonson
    Mark Simonson Posts: 1,728
    Thanks for mentioning that, Frank. I kind of like working with .ttx files in a text editor, maybe just an old habit, but yes, all this could be done even more easily in OTMaster.
  • Kent Lew
    Kent Lew Posts: 936
    Name table entry 3 is the "Full Name".
    I think Mark misspoke here. I believe he meant name table nameID 4, not 3. ID4 is the “Full Name.” (ID3 is the “Unique font identifier.”)
    All of this goes for both platform 1 (Windows) and platform 3 (Mac). There are a set of name table entries for each.
    I think he misspoke here as well: platformID 1 is Macintosh and platformID 3 is Windows.

    There is/was also a need (is it still necessary?) for CFF OpenType fonts (.otf) to have ID4 Windows be the same as ID6 Windows.

    I don’t recall now the exact reasoning or conditions under which this made a difference, but it is part of Karsten’s recommendations and is the reason for FontLab’s preference checkbox “Use Postscript FontName [ID6] as FullName [ID4] on Windows” in the Generating OpenType PS (.otf) section.
  • Mark Simonson
    Mark Simonson Posts: 1,728
    edited April 2014
    Sorry, yes, I misspoke on both the name table 3 thing and the platform ID thing. It is as you say.

    On the last point, there's this from Read Roberts on the OpenType mailing list from Nov. 30, 2010:
    ... the latest version of the OpenType specification, version 1.7, has dropped the rule that Windows platform name.ID 4 should be set differently for OpenType/CFF than for OpenType/TTF fonts. Previous versions of the specification say that for OpenType/CFF fonts, the Windows platform name ID 4 should be set the same as the PostScript name, rather than constructing name.ID 4 from the Family and Style names. This special case for OpenType/CFF fonts had to do legacy software support in the very early days of OpenType, and the rule has not been needed for many years.
    So, it's no longer necessary. He does point out that you probably don't want to change it for already released fonts as that can cause problems on some versions of Windows if the new version of a font is installed over an old one that followed the old rule. On the other hand, following the old rule causes cross platform document compatibility problems with Word 2011 for Mac.
  • Kent Lew
    Kent Lew Posts: 936
    following the old rule causes cross platform document compatibility problems with Word 2011 for Mac.
    Ah, so that’s what’s doing that! Thanks for the update.
  • Mark Simonson
    Mark Simonson Posts: 1,728
    That's part of it. Basically, (and I learned most of this from Adam Twardoch):

    - ID1, ID2 and ID4 Mac need to match ID1, ID2 and ID4 Win.
    - Use ID1 + ID2 for ID4, but abbreviate to keep it under 32 characters (e.g., It or Ital instead of Italic). Don't need to use CFF PS Name as ID4 Win anymore.
    - Don't include "Regular" as part of the ID4 name ("Italic", "Bold", and "Bold Italic" are okay if they apply).
    - Include ID16 and ID17 for Win only.
    - Don't include ID18.
    - ID1, ID2, ID4, ID16, ID17 all need to be less than 32 characters, even though spec says <64 for ID4.
    - ID6 needs to be less than 30 characters.

    That's about it, as I currently understand it.
  • Hello Mark, it's late over here, Saturday night, I enjoyed some glasses of wine, and I also have some doubts about your recommendations above.

    […] I learned most of this from Adam Twardoch […]

    I could be completely wrong, but the 32 character limitation you mention for ID4 and the 30 character limit for ID6 are against the specs and seem to me more related to the internal handling (i.e., the way the AFDKO is invoked) by FLS than anything else. I prefer to use ID18 for Mac for the 32 character limit for applications that cannot handle longer names. Never had troubles with >32 character names for ID4 and ID6 so far. This only requires some editing of the naming tables (also the CFF one, of course) in OTM after generating in FM.

    And now another glass of a fine Bordeaux!
  • Mark Simonson
    Mark Simonson Posts: 1,728
    edited April 2014
    Some of these recommendations are related to naming issues introduced with Word 2011 for Mac. With a lot of this, I'm taking Adam's word (the off-spec limit for ID4, for instance--specifically, if ID4 is > 31 characters, the font will not appear in the font menu in Word for Mac 2011). In other cases, it comes from my experience sorting out the Mac/Win Office cross-platform naming issues with my own fonts.

    If you (or anyone) know better, I'm all ears.

    Cheers!