Regenerating Fonts

I'm curious about which font software is least destructive when regenerating fonts after making minor changes which don't affect the actual outline, hinting, GSUB or GPOS data (e.g. changes to the preferred family/subfamily names, weight and widthClass, style linkages, etc.)

DTL OTMaster is the obvious answer, but I find that somewhat inconvenient when dealing with a large font family. I'm more interested in a comparison between the following:

– FontLab Studio 5
- FontLab 7
- TransType
- Glyphs

Comments

  • John HudsonJohn Hudson Posts: 2,955
    Depending on the kind of data you need to edit, DTL OTMaster’s Table Comparator tool might be useful for larger tools, because you can see the data from the table in all the open fonts and can also edit it directly in the tool.
  • Thomas PhinneyThomas Phinney Posts: 2,730
    edited December 2021
    I’ll just note that EVERY such tool decompiles and recompiles the font even to do the most minor edits. Even OTMaster and TTX, which I think are usually the two least disruptive options for small or minor fixes that do not affect outlines or hinting.

    That said, for the kinds of changes you want to do, probably TransType or TTX are your best options.

    You are pretty technically savvy, so TTX is probably best. For a less-technically-oriented user, for those particular needs, I might suggest TransType.
  • c.g.c.g. Posts: 53
    For large families I developed ftCLI: https://github.com/ftCLI/ftCLI

    It’s a command line interface for FontTools, so you don’t have to dump tables, edit and then merge. Doesn’t matter if you are working with 1, 10 or 100 files, they will be processed all in one pass.

    It still lacks documentation, and the readme isn’t up to date, but is simple enough and has a decent online help. 

    Only the ‘assistant’ subcommand needs to be explained: it recalculates the name table according to values provided by the users (for example, usWeightClass values and related style names, oblique and italics literals).

    If you write me what you want to do I can write a short tutorial.
  • Hi everyone
    Is there a way to change in batch the OS/2 table version number from all fonts in a directory?
    I have many old Truetype fonts with OS/2 table number "0" and I want to change to "3" but it's very annoying to change one by one.
    Please, any help would be great.
    Sami
  • That could easily be done with a shell script using ttx.

    But changing the version, without adding missing data, may yield fonts that are not spec-compliant.

    Changing the version number of the OS/2 table from 0 to 3 won’t add the missing Unicode codepage data. Plus, some OS/2 version 0 fonts (compliant with Apple TrueType but not Microsoft) may also be missing the usWin and sTypo vertical metrics.

  • c.g.c.g. Posts: 53
    If the version number is just changed without adding the supplementary fields, FontTools (not TTX) doesn't save the font at all, but prints the name of the first missing field and exits.

    Doesn't seem an easy thing to do, unless you know the values of those fields so to pass them as parameters. I ignore if there's a way to recalculate values as ulCodePageRange1 and ulCodePageRange1.

    Anyway:

    def set_os2_v4(input_path, ulCodePageRange1=0, ulCodePageRange2=0, sxHeight=0,
                   sCapHeight=0, usDefaultChar=0, usBreakChar=32, usMaxContext=2):
    # External function that builds a list of all valid font files in input_path files = getFontsList(input_path)

    for f in files:
    try:
    font = TTFont(f)
    if not font['OS/2'].version == 4:
    font['OS/2'].version = 4
    font['OS/2'].ulCodePageRange1 = ulCodePageRange1
    font['OS/2'].ulCodePageRange1 = ulCodePageRange2
    font['OS/2'].sxHeight = sxHeight
    font['OS/2'].sCapHeight = sCapHeight
    font['OS/2'].usDefaultChar = usDefaultChar
    font['OS/2'].usBreakChar = usBreakChar
    font['OS/2'].usMaxContext = usMaxContext
    font.save(f)
    print(f'{os.path.basename(f)} saved')
    else:
    print(f'{os.path.basename(f)} was already version 4')
    except Exception as e:
    print(e)
  • Thank you for your coment @Thomas Phinney.
    Thank You for the help @Cesare G. !
    When I change the number of the OS/2 table in DTL OtMaster, OTMaster creates all these fields, but I need to do one by one font.
    The main reason I would like to do it is I use a font manager font called Typograph 5.2.3.
    This program is the best program to see many fonts on the screen at the same time, but it doesn't get shown correctly fonts with OS/2 table number "0".
    This program does not have updates since 2018.
    Now I know why it doesn't.
    Regards
    Sami
  • Hi Sami, if you drop all fonts in OTM and open the ‘OS/2’ entries in the Table Comparator, then you can change the first entry on the left, select the whole horizontal row (double-click on ‘version’) and click the equal sign in the top right. That should change/update all fonts at once.

    OTMaster Table Comparator

    DTL OTMaster Table Comparator
  • Hi Mr. Blokland,
    Thank you for your tip, but how many fonts can I open in OTM at the same time?
    I hope you are well and fully recovered.
    Best regards
    Sami
  • Hi Sami, thanks for your reply. Honestly I have no idea what the limit is of what OTM can handle in batch. I have never run into any issues, and basically I expect you should be able to open and convert *lots* of fonts.

    Regarding my health, I am slowly but surely recovering from my heart attack and bypass surgery, but it will be a while before I can do the marathon font editing again, I reckon.
  • My thanks to John Hudson and Frank Blokland for reminding me of the Table Comparator. I’m sure I’ve used this before but had somehow forgotten it was there.
  • stevensteven Posts: 10
    edited January 2022
    Hi Mr. Blokland,
    Can you contact me? I have some software problems that need feedback. You this [redacted] Is the mailbox still in use? I wrote you an email.
    Thank you.
  • Hi Steven, thanks for your message. Since this is a forum, why not post your questions/comments in a new topic on TypeDrawers? After all, it cannot be completely ruled out that someone else may also be interested.

    By the way, it might be better to be a little cautious about exposing e-mail addresses in this way, regardless of whether they work or not. Can a moderator delete the e-mail address assigned to me here? Thanks in advance.
  • stevensteven Posts: 10
    edited January 2022
    Hi Mr. Blokland,

    I'm really sorry, because your email is public on other websites, so I made it public here without your permission. I'm sorry for the inconvenience.
    In addition, my English is very poor and I need to send messages with the help of translation software, so I'm worried about more trouble caused by translation errors.
    The main problem involves foundrymaster. I'm not sure if other designers are using it.
    I'm sorry.

    Please help delete the email, thank you.

    Andr é g. Isaak, I'm sorry to have made other remarks on your subject.
  • Hi Steven, DTL FoundryMaster has not yet been officially released and is only used by a small select group of type designers. However, specific things you encounter in FM2 can be interesting in general.

    That said, FM2 is now ready for release and we have addressed a lot of issues (perhaps some you have encountered) over the past year. The only thing that is still missing is a manual, but help was already offered by a member of this forum. Work on this will begin soon.
  • Eris AlarEris Alar Posts: 420
    Mod here, email has been redacted as requested. 
Sign In or Register to comment.