Edit: I completely updated this answer after getting some breakthrough advice from a colleague.
Here's what I inserted in /etc/fonts/local.conf
(inside the <fontconfig>
element):
<!-- Replace Helvetica with Arial -->
<match target="pattern">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Arial</string>
</edit>
</match>
Similarly for Times -> Times New Roman. (See my full local.conf
here.) The key was to use binding="strong" for the <edit>
element. (Also, using "assign_replace" mode instead of "assign" causes something similar, except that then it's too aggressive: also Verdana gets replaced with Arial).
Changes in font configurations are effective immediately. Besides testing in Firefox, you can check that it works like this:
$ fc-match helvetica
Arial.ttf: "Arial" "Normal"
If you run into problems, the best help is near: man fonts-conf
. (Although even with the documentation, the workings of the font system seemed somewhat complicated or unwieldy to me.) You can also try to "debug" what's really going on using a command like:
FC_DEBUG=4 fc-match helvetica
In addition, FC_DEBUG=1024 fc-match helvetica
shows the list of config files that affect the font matching.
Best Answer
You could use a different commandline tool,
ttfdump
, assuming you're looking at a TTF font file. It should also work for OTF fonts, if they belong to the TTF variety:This should get you the number of glyphs. You'll possibly see up to four different numbers, if the TTF is in some way b0rken. Sane TTF will return identical numbers for all three entries, in which case you may be pretty confident that you got the correct number:
Another example: