Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I'm puzzled by FontSubstitutions. The help says this:

FontSubstitutions is an option for Style and Cell that gives a list of substitutions to try for font family names.

I typed this:

Options[Style, FontSubstitutions]

with the result:

Options::optnf: FontSubstitutions is not a known option for Style. >>

OK. So I try the example instead:

Options[$FrontEnd, FontSubstitutions]

and get a list of rules:

{FontSubstitutions -> {"Helv" -> "Helvetica", "Arial" -> "Helvetica",  
 "Times New Roman" -> "Times", "Courier New" -> "Courier",  
 "Lucidabright" -> "Times", "Charter" ->  "Helvetica", 
 "Lucidatypewriter" -> "Courier", "Fixed" -> "Monaco", 
 "AGaramond" -> "Times", "Avant Garde" -> "Helvetica", "Bodoni" -> "Times",
 "Bookman" -> "Times", "Caslon 3 Roman" -> "Times", ...

(Some of these rules are a bit strange - almost like misspellings...)

In the tutorial tutorial/TextAndFontOptions, I read:

In addition, you can set FontSubstitutions to be a list of rules that give replacements to try for font family names.

So my interpretation of this is that, when you supply a string for FontFamily, Mathematica will, on failing to find any kind of matching font for that string, see if there's a rule for it, and then use the equivalent font given by that rule. However, I've not yet managed to make it happen.

Here I try Bodoni. It's not currently active (and the basic face is called Bodoni Book anyway), so it should be substituted by Times. But it appears as Lucida Grande.

Style["The quick brown fox", 60, FontFamily -> "Bodoni"]

font substitutions

and I couldn't get any of the rules to be applied.

I also tried setting a paragraph of text in a particular font (the terrible Dom Casual, which has a rule replacing it with Helvetica), then closing Mathematica, de-activating the font, then re-opening Mathematica and the document. The paragraph's font reverted to ... Lucida Grande.

So, does anyone know how FontSubstitutions works?

share|improve this question
    
"so it should be substituted by Times" -- Why? Did you add a rule to that effect? –  Mr.Wizard Feb 3 '13 at 15:29
    
it's further down the list of rules - there are 142 of them. I'll fiddle with the list a bit... :) –  cormullion Feb 3 '13 at 15:33
1  
@cormullion You may find it easier to experiment with FontSubstitutions by using the selector syntax form for options like this: CurrentValue[$FrontEnd, {FontSubstitutions, "Bodoni"}] . You can also use assign values by putting the CurrentValue expression on the left-hand side of an equal sign. –  John Fultz Feb 4 '13 at 1:27
1  
@cormullion And yes, I can reproduce your problem with the Mac v9 version (I think it works elsewhere). It does look like FontSubstitutions is not working correctly on Mac. –  John Fultz Feb 4 '13 at 1:28
    
Seems like it works as it should on Windows (9.0.1), except that the first time the substitution is employed, it gets "stuck"--subsequent changes to the CurrentValue have no effect. Must be cached somewhere? –  Oleksandr R. Feb 4 '13 at 2:22
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.