I’ve got a few fonts I’ve purchased over the past few years.
These are decent quality fonts with, on average, 8–15 different faces for the family.
The problem I have is each face is listed separately in various applications (Photoshop, Indesign, etc.) Rather than simply one item with a submenu for faces.
For example I have:
FontA Bold > Regular FontA Bold Italic > Regular FontA Italic > Regular FontA Regular > Regular
FontA > Bold Bold Italic Italic Regular
What tool on the Macintosh can combine these faces so they are all listed under the family name? As in the figure B, above.
I know there are a couple of high-end apps (Fontographer, FontLab). Are there any basic smaller apps to simply edit the font info without editing character and other tables? I don’t want to edit the actual font data specifically, merely the titles and naming structure I believe.
How do I do this with the tool suggested, specific steps please?
Running Mac OS 10.7, but can boot to 10.6 or 10.8 if needed. I am not absolutely looking for freeware. If there’s a paid app to do this, I’m fine with that. If someone wants to outline steps in FontLab or Fontographer, I’m all ears.
These are commercial .otf fonts.
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
RoboFont is a great software (mac only) for font editing on so many levels. It also does what you’re looking for: allows you to open individual files and edit their font info and then resave in whatever format you need. I recently had to do exactly what you’re asking with my copy of Gotham which was installing as individual files and not as a family.
The purchase price on RoboFont is pretty steep, but really, the software is aimed at people who are drawing and editing their own fonts. For this purpose, the 15-day free trial may be all you need. Who knows, maybe you’ll get hooked and buy a license. 🙂
Steps for changing Font Family
- Open your .otf files in robofont. They’ll appear in separate windows.
- For each window, click on the tab Font Info (3rd tab from the left in the toolbar). It’ll slidedown an editor with a few more tabs.
- The first tab is General which includes an input box for Family Name. The 2nd tab is OpenType which allows you direct access to the nameTable so you can edit all of that info including style names.
- Once you edit the info, simply type Command(⌘) G or choose File… -> Generate Font. Ensure it’s exporting as .otf and save to desired location
RoboFont is also built beautifully in python, so you can execute your own custom scripts if you need.
I just combined the Nexa fonts into one Font Family on my my Macbook Pro running OSX 10.8 (Mountain Lion). The UI looks old (and not retina), but it worked.
$ brew install fontforge --with-x $ brew linkapps $ fontforge
Edit the Font
- Open the file and goto Element > Font Info.
- Under PS Names, change the Font Family to the common name you want. Leave Fontname and Name For Humans alone.
- Under TTF Names you can change the String for String ID “Styles (SubFamily)” to a unique name for that specific font like “Book-Italic”
- Select “Preferred Family” and click the delete button.
- Select “Preferred Style” and click the delete button.
- Click OK
Save the File
- Select File > Generate Fonts
- Change The select box under the font name to OpenType (CFF)
- Click Save
- Ignore Errors and Save
Close out of Font Book and then open the file and it should have the common font name in the title and the unique name in the drop-down.
Thanks to user568458 for their great answer.
I’m not able to test this on a Mac, and the Windows version is too flakey and crash-prone to test, but this should work:
- Install FontForge (open source font editor)
- Load up the fonts which aren’t falling into the same group.
- An example free font that doesn’t fully group for experimentation is Aller, where Aller Light/Light Italic and Aller Display don’t group with Aller regular/bold/italic. Aller is a quite nice smooth friendly sans, but beware the hideous ‘Display’ variant, which will burn your eyes.
- Best to work on files that aren’t installed and aren’t in use… (I remember experiencing a lot of crashes the few times I foolishly tried working on the installed files in system folders…)
Element > Font Info:
- You want to change Family Name so that all variants have the same family name (in Aller example, Aller Light and and Aller Light Italic have family name Aller Light, change this to Aller).
- Make sure that ‘Weight’ says something meaningful that doesn’t clash with your existing fonts (e.g. Aller Light has weight ‘Book’, change to ‘Light’).
- You may find you also need to change Fontname, but that should be unnecessary.
Check anything else you want to tweak, then when ready,
File > Generate Font. Create an appropriate font file, install it. It should merge in lists with the others with the same Family Name.
If this doesn’t work, some possibilities to investigate:
- I seem to remember seeing somewhere once that on a Mac there’s a
fonts.listfile that is a bit like a cache of fonts and file mappings. You might need to be manually update this in some cases to make the system aware of changes you’ve made – but I think it normally handles it automatically.
- You can try grouping your .TTF font files into one .TTC collection file, by opening them all at once and using
File > Generate TTC..., then choosing the appropriate files in the dialog. Again, this should be unnecessary (but might make housekeeping easier to have one file).
- You can try Merging fonts together into one, using
Element > Merge, selecting the font files to be merged in. This should be unnecessary, however.
Quick note – I don’t know very much about how FontForge works under the hood, but I believe it has quite a lot of interaction with a remote server. No problem for genuine legitimate work like this, but anyone tempted by the fact that in theory copyrighted fonts can be imported and editted using FontForge should double-check their FAQ first: http://fontforge.org/faq.html#legal.
And a quick note on “simply edit the font info without editing character and other tables” – I’m no expert, but my understanding is that since font files are compiled binaries rather than markup, then, a bit like with a .swf, any change (even a simple change like tweaking the font name) requires you to de-compile the file into markup you or the software can work with, then re-compile it, generating new binary after making your changes. This is a process that always can introduce noise and unexpected changes, as no de-compiler is ever perfect – and that’s just a feature of editing anything that isn’t the original source file. It should work so long as care is taken and so long as the font files are reasonably conventional.
This doesn’t really answer OP’s question (which was about
.otf files), but I figured I’d provide some instruction on merging
.ttf files together, since it might get you on the right track for other font formats.
If you want to bundle a bunch of
.ttf files together, you need to generate a
.ttc. You can do this easily in FontForge.
Go to the FontForge website and follow the instructions to download and install the software.
I’m using RedHat’s Liberation Mono as an example. It is a “well behaved” font, meaning that everything is named properly. If it isn’t, look at Chad’s answer which talks about going into the “Element > Font Info” in FontForge to cleanup the names.
Open all the
.ttf files you want to combine
Now you will see all the glyphs of the fonts you just opened. From any of these windows, click “File -> Generate TTC…”.
In this dialog, simply select all the fonts you want to combine. I unselected the “Untitled1” project, which was the default project when I opened the program. Click “Generate” after that.
Confirm proper generation
If you did everything right, you should have a single
.ttc file that bundles all your
.ttf font face styles together. You can check this in your favorite font program, like FontBook (on macOS).
I’m no font expert by any means, so I don’t know what other packaging options you have, if you didn’t want to use
.ttc files. It was good enough for what I needed.
And to save others some trouble, I also figured out that the “Element -> Merge Fonts…” dialog, while it sounds like it does what you want, simply merges the glyphs of two fonts together. This only is useful if one font is missing some glyphs that you want to fill in from a different font. As far as I can tell, you cannot assign multiple glyphs to a code-point (which is what styling is; different representations of the same character). However, I could be mistaken!
For a while I have been looking for a similar solution and always got back to this thread. I’ve found something that solved the problem for me and though it would be good to share for further reference.
The Fontlab’s TransType app, does exactly this, and a bit more:
I would look into some of the font management software titles, such as FontExplorer X Pro or Extensis Suitcase Fusion: