Subject: bug#58184: Faulty font selection for Latin characters

From: समीर सिंह Sameer Singh <[email-masked]>
Date: Fri, 30 Sep 2022 18:05:02 +0530

I think I may have found the problem here, JetBrains Mono does not have the
glyphs for these
"faulty" characters that is why Emacs chooses a different font for them,
but the thing is these characters
can still be displayed in the correct font i.e. JetBrains Mono by combining
the glyphs which made up the
unsupported glyph, this is why hb-view was able to display them I guess.
For example entering ṃ (#x1e43 Latin small letter m with a dot below) will
result in it being displayed in a different font,
but entering ṃ (m + #x323 Combining dot below) will result in it being
displayed with JetBrains Mono.

So now the question is should these characters be decomposed to better fit
with other characters when the font does not support them?

On Fri, Sep 30, 2022 at 5:18 PM Eli Zaretskii <[email-masked]> wrote:

> > From: समीर सिंह Sameer Singh <[email-masked]>
> > Date: Fri, 30 Sep 2022 16:53:01 +0530
> > Cc: [email-masked]
> >
> > Here are the steps to reproduce:
> > 1. emacs -Q
> >
> > 2. enter these three words:
> > hṛṣyatha (h#x1E5B#x1E63yatha)
> > kṣiptaḥ (k#x1E63ipta#x1E25)
> > viśāmaḥ (vi#x015B#x0101ma#x1E25)
> >
> > At this stage everything is fine, all of the characters use the same
> font therefore all of them return the same
> > font after evaluating (font-at (point)) on them:
> > #<font-object "-ADBO-Source Code
> Pro-regular-normal-normal-*-32-*-*-*-m-0-iso10646-1">
> >
> > 3. Now eval the following in the buffer
> > (set-face-attribute 'default nil
> >    :font "JetBrains Mono"
> >    :weight 'regular
> >    :height 170)
> >
> > Now you'll notice that the font for some of the characters above are
> different from JetBrainsMono, these
> > characters are:
> > ṛ (#x1e5b)
> > ṣ (#x1e63)
> > ḥ (#x1e25)
> > (font-at (point)) returns #<font-object "-UKWN-Latin Modern
> > Mono-regular-normal-normal-*-57-*-*-*-*-0-iso10646-1"> on all of them
> > while for the rest of the characters gives #<font-object "-JB-JetBrains
> > Mono-regular-normal-normal-*-57-*-*-*-m-0-iso10646-1">
>
> I downloaded the JetBrainsMono font, and I see that it doesn't have
> glyphs for these characters.  Its coverage of the Latin Extended
> Additional block is only partial: only 97 out of 256 characters.
>
> So I think Emacs does TRT here, at least with this font I have here.
>
> In your original report you said the characters were supported by the
> new default font, but that is not so in this detailed recipe.
>
> Or maybe you are using a different version of JetBrainsMono?  I have
> v2.242 here.
>