Subject: Re: bug#65865: 30.0.50; set-face-attribute doesn't take effect on new frames on Android

From: Eli Zaretskii <[email-masked]>
Date: Mon, 11 Sep 2023 16:38:33 +0300

> Date: Mon, 11 Sep 2023 21:10:37 +0900
> From: Shingo Tanaka <[email-masked]>
> 
> (set-face-attribute 'default nil :font "Noto Sans Mono CJK JP") doesn't take
> effect on new frames on Android, even though the 2nd argument FRAME is nil.
> 
> Here is how to reproduce.
> Maybe the font doesn't need to be the one I specified here.
> 
> 0. Download NotoSansMonoCJKjp-VF.ttf from the url below and put it in ~/fonts 
> 1. Run Emacs w/o init file.
> 2. Evaluate (set-face-attribute 'default nil :font "Noto Sans Mono CJK JP")
>    on *scratch* buffer.
> 3. You can see the displayed font is updated to Noto font.
> 4. Type C-x 5 2 (make-frame-command)
> 5. You can see the font is not Noto font but the initial font on the new frame.

I must say that I'm uncomfortable with this use of script-specific
fonts.  These fonts are clearly intended to be used for specific
scripts/languages, not as the default font.  Emacs allows, via the
fontset feature, to configure a set of fonts that is optimized for
covering large portions of the Unicode codespace, for exactly this
reason: it is impractical to expect a single font have good support
both for, say, the Japanese script and for other scripts, including
advanced text-shaping features such as ligation etc.

So I really suggest not to use these Noto fonts as the default font,
but instead configure your fontset such that only the Japanese
characters are displayed using this font.