help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Custom font sets doesn't fully work


From: Yuan Fu
Subject: Re: Custom font sets doesn't fully work
Date: Sat, 31 Jul 2021 13:19:54 -0400


> On Jul 31, 2021, at 2:42 AM, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> From: Yuan Fu <casouri@gmail.com>
>> Date: Fri, 30 Jul 2021 21:14:23 -0400
>> 
>> (create-fontset-from-fontset-spec
>> (font-xlfd-name
>>  (font-spec :registry "fontset-lunamono")))
>> 
>> (set-fontset-font "fontset-lunamono"
>>                  'latin (font-spec :family "SF Mono"))
>> (set-fontset-font "fontset-lunamono"
>>                  'han (font-spec :family "Source Han Sans"))
>> 
>> (set-face-attribute 'default nil :font "fontset-lunamono" :height 130)
>> 
>> Now I expect Latin characters show in SF Mono, and Han characters show in 
>> Source Han Sans. However, only Latin characters work right, Han characters 
>> doesn’t use Source Han Sans.
>> 
>> If I use fontset-default instead:
>> 
>> (set-fontset-font "fontset-default"
>>                  'latin (font-spec :family "SF Mono"))
>> (set-fontset-font "fontset-default"
>>                  'han (font-spec :family "Source Han Sans”))
>> 
>> Both Latin and Han characters show in the right fonts. What gives?
> 
> I don't know the answer, but did you try "M-x describe-fontset" and
> compare the results in both cases regarding the 'han' characters?
> 
> Also, which Han characters didn't show in the right font, and what is
> the script of those characters (see char-script-table)?
> 

If I evaluate this in emacs -q:

(progn
  (create-fontset-from-fontset-spec
   (font-xlfd-name
    (font-spec :registry "fontset-lunamono")))
  (set-fontset-font "fontset-lunamono"
                    'han
                    (font-spec :family "Source Han Sans"))
  (set-fontset-font "fontset-default"
                    'han
                    (font-spec :family "Source Han Sans"))
  (describe-fontset "fontset-lunamono”))

Lunamono fontset looks like this:

Fontset: -*-*-*-*-*-*-*-*-*-*-*-*-fontset-lunamono
CHAR RANGE (CODE RANGE)
    FONT NAME (REQUESTED and [OPENED])
⺀ .. ⿟ (#x2E80 .. #x2FDF)
    -*-Source Han Sans-*-*-*-*-*-*-*-*-*-*-*-*
㈀ .. 鿿 (#x3200 .. #x9FFF)
    -*-Source Han Sans-*-*-*-*-*-*-*-*-*-*-*-*
豈 .. 﫿 (#xF900 .. #xFAFF)
    -*-Source Han Sans-*-*-*-*-*-*-*-*-*-*-*-*
︰ .. ﹏ (#xFE30 .. #xFE4F)
    -*-Source Han Sans-*-*-*-*-*-*-*-*-*-*-*-*
🈀 .. 🋿 (#x1F200 .. #x1F2FF)
    -*-Source Han Sans-*-*-*-*-*-*-*-*-*-*-*-*
𠀀 .. 𪛟 (#x20000 .. #x2A6DF)
    -*-Source Han Sans-*-*-*-*-*-*-*-*-*-*-*-*
𪜀 .. 𮯯 (#x2A700 .. #x2EBEF)
    -*-Source Han Sans-*-*-*-*-*-*-*-*-*-*-*-*
丽 .. 𯨟 (#x2F800 .. #x2FA1F)
    -*-Source Han Sans-*-*-*-*-*-*-*-*-*-*-*-*
𰀀 .. 𱍏 (#x30000 .. #x3134F)
    -*-Source Han Sans-*-*-*-*-*-*-*-*-*-*-*-*

  ---<fallback to the default fontset>—
…

And (one of) default fontset’s Han script section looks like:

㈀ .. 鿿 (#x3200 .. #x9FFF)
    -*-Source Han Sans-*-*-*-*-*-*-*-*-*-*-*-*

AFAICT fontsets work as expected. Could it be the face not picking up the 
correct font to use? It seems to only pick up the default font of the fontset.

BTW, what should fontset-font do? (fontset-font "fontset-default" #x3200) 
doesn’t return “Source Han sans” as I thought it would, judging from the result 
of describe-fontset.

Yuan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]