Subject: Re: bug#57962: 29.0.50; Odd font choices

From: Stefan Kangas <[email-masked]>
Date: Mon, 17 Oct 2022 14:20:06 +0000

Lars Ingebrigtsen <[email-masked]> writes:

> So there is no way to say "I have font X, give me font Y of the same
> size".

Right.  And in Emacs, this stuff tends to stick out more because we are
firmly in the uncanny valley between having the text rendering
capabilities of an average web browser (but we are much less advanced)
and a terminal emulator (but we are much more advanced).

> So I think we just have to mitigate this on a practical level, and the
> practical problem we have is that we expect a (fixed pitch) `default' font
> to have the same size as the `help-key-binding' font, since we mix these
> faces so much in our displays, and we want them to line up in tabular
> outputs.
>
> This means that we can either remove ":inherit fixed-pitch" from the
> latter face -- and that would fix the problem in 99.7% of the cases.
> But ideally, we'd like to have that face be fixed-pitch even if
> `default' uses a proportional font (which is possibly, but very very
> unusual).

Making `help-key-binding' just inherit from `default' is easy enough,
but we already expect that face to work even with `variable-pitch-mode':
see `help-for-help'.  :-(

So if don't have time to find a more proper solution for Emacs 29, we
would probably want to add some local hack there.  (We could make
`help-for-help' not use `variable-pitch-mode' too.  But that would be a
step backwards, IMHO, so I'd rather live with a hack.)

Maybe we should have `fixed-pitch' just always use the same font as the
default face?  If we want some other look in info (or wherever we
currently use it) we should perhaps add some other face we could inherit
from there.  But then, maybe figuring out how to do that is what this
entire thread is about...?

> To achieve that we'd have to implement something like
>
>   :inherit (if (monospacep 'default) 'default 'fixed-pitch)
>
> or something?

Something like that, or perhaps make it depend on `variable-pitch-mode'?