I have created my first font! It’s a display font and I want to give a freebie out as just the uppercase and then have an option to buy the full font. Is there a way to export just the uppercase separately?
You duplicate the instances and add a “Keep Glyphs” parameter to those and maybe give them a new family name.
Thank you! I tried this but when I tried to export, I got an error message that said “Problem with ttfautohint.” Can you help me resolve the issue?
This error can be caused by missing glyphs. Can you send me the file that I can check?
I tried to upload, but it says that new users can’t upload files. Can I send it another way?
Send it by email to support at this domain.
Just sent it, thank you!
Thanks for the file.
The problem is that ttfautohint needs a lowercase “o” to determine some key metrics. The “Free” instance doesn’t have it.
But, your font being more a display design, it shouldn’t be hinted at all. So export without the “Autohint” option set.
And when you are at it, go through all glyphs and remove all postScript hints, as they are all over the place. Or use this script in the Macro Window:
for g in Font.glyphs: for l in g.layers: l.hints = None
Okay! I removed the autohint option but now when I export and try to test the font, nothing shows up for the free version when I try to type. Thank you for your help and patience!
I didn’t look past the auto hinting, sorry.
The keep glyphs parameter needs the names of the glyphs you like to keep one per line. All in one line.
I had a similar question on a recent project but a litttle different - is it possible to export that removes the lowercase glyphs and then applies the “update metrics” command to make the duplicate Unicode feature (A=0041 and 0061) so that a user doesn’t have to use the caps lock when typing?
I see there is a “Rename Glyphs” feature that sounds like it might work - but is there an easier/more efficient way to accomplish an “All Caps” (different from uppercase only) export?
You need to add a “Reencode Glyphs” custom parameter:
A=0041,0061 B=0042,0062 …
That sounds like just what I was looking for! But I must have something out of order - does “Reencode Glyphs” combine with some other custom parameter (using Remove Glyphs to take out the lower case characters)?
I tried it in this order, the switching the order of custom parameters, and without the “Remove Glyphs” but just got missing glyphs/tofu upon export instead of a double Unicode for the all caps effect. (second image)
Thanks for pointing me in the right direction!
Hey @GeorgSeifert - Do you have any suggestions on why this isn’t exporting properly? Do I need other custom parameters beyond Remove Glyphs and Reencody Glyphs?
I’ve tried variations of Remove+Reencode, KeepGlyphs+Reencode, and Reencode on its own with no success - Any suggestions on what to try would be a huge help.
Hey @GeorgSeifert - is it possible that the Reencode Glyphs feature is not working properly with Glyphs3? I’ve continued to experiment with various feature combinations and am able to successfully remove glyphs but haven’t found a way to get the Reencode feature working. If helpful I can send working files.
I found the issue I was running into - it was simply the fact that I was using ‘==’ instead of a single ‘=’ in my Reencode feature list. I’m not sure if the list is intended to be a double ‘=’ but, as of now, it only works with a single ‘=’ sign.
Maybe your note above was simply a typo and if I was more experienced with scripting I’m sure I would have found the issue sooner. Seems to have been a simple missunderstanding.
For anyone who may find it helpful, the instance is now exporting as intended using the following list structure:
Right. I’ll fix my post to avoid confusion.
It’s worked perfectly since making the change!
One follow-up question on the same topic: Is there a way to use the same list for reencoding multiple instances (If I wanted to offer Regular, Italic, Bold & Bolt italic as a group of four styles all sharing the same list of reencoded glyphs), without having to copy+paste between all instances?
The closest thing I can imagine would be turning the reencode list into a class or feature that could be separate from the individual instances but accessible through the instance custom parameters - but I don’t think that’s possible or the right way to go about it.