>> By the way, I did not realize that the docstring of >> 'set-face-attribute' says nothing about the evaluation order of its >> arguments.  I suggest the attached patch. > > Are we sure that having order-dependent behavior is a good idea? > I did not design that function, that's how it works. But given how intricate the face machinery is, I'm not sure it's possible to do much better. > > Since all args are available at the time of evaluation, wouldn't it be > better to handle :font and/or :family before all the others? > You may have seen in the attached patch that :family is indeed handled before all other attributes, but not :font. Can you please confirm that the recipes you sent are working as expected when you place the :font attribute before all other attributes?