Subject: Re: bug#52493: 29.0.50; Setting Inconsolata up in init.el makes default face rendered wrong

From: Gregory Heytings <[email-masked]>
Date: Sun, 25 Dec 2022 22:42:57 +0000

>
> Almost good, with one problem jumping out, however:
>
> - Evaluate (set-face-attribute 'default nil :height 105 :weight 'regular 
> :font "Inconsolata LGC"), result:
>
>           Family: Inconsolata LGC
>          Foundry: PfEd
>            Width: normal
>           Height: 105
>           Weight: regular
>
> - Then I evaluate (set-face-attribute 'default nil :height 110 :weight 
> 'semi-light :font "Cascadia Mono"), the result is:
>
>           Family: Inconsolata LGC
>          Foundry: PfEd
>            Width: normal
>           Height: 105
>           Weight: regular
>

You mean

            Family: Cascadia Mono
           Foundry: SAJA
             Width: normal
            Height: 105
            Weight: regular

right?  That is, the :weight 'semi-light attribute is not obeyed?  I 
observe the same behavior with Emacs 26-27-28, so at least it's not a 
regression.

>
> If I, however, follow (set-face-attribute 'default nil :height 105 
> :weight 'regular :font "Inconsolata LGC") with (set-face-attribute 
> 'default nil :height 110 :weight 'semi-light :family "Cascadia Mono") -- 
> note :family, the resulting font looks fine, and is described as:
>
>           Family: Cascadia Mono
>          Foundry: SAJA
>            Width: normal
>           Height: 109
>           Weight: semi-light
>

Indeed.  A better way to do what you want is to move the :font attribute 
to the front:

(set-face-attribute 'default nil :font "Inconsolata LGC" :height 105 :weight 'regular)

(set-face-attribute 'default nil :font "Cascadia Mono" :height 105 :weight 'semi-light)

>
> Starting the session with (set-face-attribute 'default nil :height 110 
> :weight 'semi-light :font "Cascadia Mono") also has this problem.
>

Likewise: move the :font attribute to the front and it will work.