Font name manipulation

We recently bought an extremely fancy set of fonts from Sudtipos to use for a book cover. Sudtipos makes collections of fonts in various styles that are designed to pair well – So for instance the set that we’re using is Speakeasy, which includes among others Speakeasy Flare and Speakeasy Script.





Each font has some optional variations; the script font in particular has a huge number of embellishments that you can turn on.



I “installed” the font as I normally do by putting the files under ~/.local/share/fonts.



And then opened Inkscape to start using them.



You can see the problem above: Inkscape is only recognizing one of the Speakeasy fonts. For some reason it has determined that all of the fonts we installed are named “Speakeasy” and has resolved the conflict by picking one of them and ignoring the rest.

I don’t know a lot about font file formats, but the quick solution for this seemed to be to modify the files to ensure that each font has a different name. That way Inkscape should have no way to confuse them with each other.

FontForge

The first font editor I got working on Linux was FontForge. I installed it with Nix like this:

$ nix-env -f '<nixpkgs>' -iA fontforge-gtk


Then I used it to open the Speakeasy Flare OTF file:

$ fontforge ~/.local/share/fonts/speakeasy/Speakeasy-Flare.otf



Since ‘Speakeasy’ was the name under which Inkscape was mistakenly lumping all the fonts together into one, my aim (without really understanding what any of these metadata fields mean) was just to purge any field that only says ‘Speakeasy’.

In the “Font Info…” dialog under “TTF names,” we can find the culprit.



Each of these font files has a ‘Preferred Family’ name of ‘Speakeasy’. So I deleted both the ‘Preferred Family’ and ‘Preferred Styles’ fields using this dialog. I then use “Generate Fonts…” to save the result to a new OTF file.



Inkscape still might not notice the fixed fonts until you run fc-cache (or, slower but more forceful, fc-cache -f) to update the font cache. I don’t really know what this is, but apparently it is important.

$ fc-cache -f

Then restart Inkscape, and all the fonts should now appear.



Feature settings

The “Font Info…” dialog is also where we can go to figure out how to tell Inkscape which of the font “features” we want to enable.



For example,

So to enable the full set of features I selected in the demo above, I need to enter “liga, swsh, ss04, ss12, ss16, ss09, ss14, ss18” into the “Feature Settings” field in Inkscape.




Font-related tips for Linux users seem pretty sparse out there, so I thought I should write this up in case it helps someone!

“Listen, kid, we’re all in it together.”
— Harry Tuttle, Brazil