Subject: Re: bug#59347: 29.0.50; `:family` face setting ignored

From: Eli Zaretskii <[email-masked]>
Date: Sat, 19 Nov 2022 09:21:52 +0200

> From: Stefan Monnier <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
> Date: Fri, 18 Nov 2022 16:09:46 -0500
> 
> >> So my guess is that if the face uses the :family attribute, it
> >> inherits the weight from default, and if Emacs cannot find that
> >> weight in that font, it falls back to some other font.
> 
> But my `font` pattern doesn't specify a "weight".

Then it's some other attribute.

> >> Personally I think falling back to the same font but different weight
> >> is probably less confusing.
> 
> Ignoring a "bold" setting would probably surprise/disappoint users just
> as often.

Exactly.

> > Basically the culprit in Stefan’s recipe is probably semicondensed
> > rather than Dejavu.
> 
> Could be, indeed.  I don't actually care about the width of the font
> when I request `DejaVu Sans`.  This said, if I use
> 
>     (:family "DejaVu Sans" :width normal)
> 
> I still don't get `DejaVu Sans` but I get a "normal" (hence wider)
> misc-fixed instead :-(

The basic problem here is that we don't know which attributes to
ignore and which to enforce, first, because different users have
different preferences and expectations, and second, because the same
font selection routines are involved in many different use cases.  All
the attempts to resolve these issues till now boiled down to
arbitrarily ignoring some or even all attributes of the font whose
face is being modified by setting a different font, and that can never
be TRT.  If we can find a reasonable way to decide which attributes of
a font are important and which aren't, or maybe lax some of the
criteria for matching fonts to a font spec, that could solve at least
some of the problems.