如图,无论如何改字体,“中”字永远这样显示:
“言”字永远这样显示: 是个小问题但是好诡异啊,尤其是这个“言”字的形状。。。这也太奇怪了吧(
好奇,上面 describe-char 是什么样子?
上面“言”字describe-char的输出:
position: 4 of 8 (38%), column: 0
character: 言 (displayed as 言) (codepoint 35328, #o105000, #x8a00)
charset: unicode (Unicode (ISO10646))
code point in charset: 0x8A00
script: han
syntax: w which means: word
category: .:Base, C:2-byte han, L:Left-to-right (strong), c:Chinese, h:Korean, j:Japanese, |:line breakable
to input: type "C-x 8 RET 8a00"
buffer code: #xE8 #xA8 #x80
file code: #xE8 #xA8 #x80 (encoded by coding system utf-8)
display: by this font (glyph code)
ftcrhb:-unknown-file-icons-normal-normal-normal-*-45-*-*-*-*-0-iso10646-1 (#x68)
Character code properties: customize what to show
name: CJK IDEOGRAPH-8A00
general-category: Lo (Letter, Other)
decomposition: (35328) ('言')
There are text properties here:
ws-butler-chg chg
“中”字describe-char的输出:
position: 413 of 8315 (5%), column: 27
character: 中 (displayed as 中) (codepoint 20013, #o47055, #x4e2d)
charset: unicode (Unicode (ISO10646))
code point in charset: 0x4E2D
script: han
syntax: w which means: word
category: .:Base, C:2-byte han, L:Left-to-right (strong), c:Chinese, h:Korean, j:Japanese, |:line breakable
to input: type "C-x 8 RET 4e2d"
buffer code: #xE4 #xB8 #xAD
file code: #xE4 #xB8 #xAD (encoded by coding system utf-8-unix)
display: by this font (glyph code)
ftcrhb:-UFAS-Symbola-normal-normal-semicondensed-*-45-*-*-*-*-0-iso10646-1 (#x1990)
Character code properties: customize what to show
name: CJK IDEOGRAPH-4E2D
general-category: Lo (Letter, Other)
decomposition: (20013) ('中')
There are 2 overlays here:
From 301 to 442
face hl-line
priority -50
window #<window 9 on todo.org>
From 9 to 1861
before-string [Show]
fringe-helper t
git-gutter t
insert-in-front-hooks (fringe-helper-modification-func)
modification-hooks (fringe-helper-modification-func)
There are text properties here:
face org-roam-link
font-lock-multiline t
fontified t
help-echo [Show]
htmlize-link [Show]
keymap [Show]
line-prefix [Show]
mouse-face highlight
org-category "todo"
valign-init t
wrap-prefix [Show]
这明显是没用更纱而是用了其他的字体。你这是doom吗?doom里字体你怎么设置的?
是doom,字体配置是这样的:
(setq doom-font (font-spec :family "mononoki" :size 45 :weight 'light)
doom-variable-pitch-font (font-spec :family "Noto Sans CJK SC Light" :size 40))
我也奇怪为什么非标题区域显示的是宋体而不是黑体。。。
你应该装了一个CJK字体,只是下载了日语版的字体了
你这个明显没有设置上字体啊:你只指定了基础字体doom-font
是mononoki,而这个字体里没有中文,所以Emacs会自动想办法找一个在这些字符上有定义的字体。然后就给你找了个不知道是什么鬼。这个fallback的顺序会有很多因素,最高概率是你~/.config/fontconfig/config.conf
没有设好。你指定的doom-variable-pitch-font
会初始化variable-pitch
这个face,但是看你没有用variable-pitch
这个face。建议你按照modules/ui/doom
设置一下doom-unicode-font
和其他字体,或者钻研一下fontconfig应该怎么写。
我知道mononoki字体里没有中文字符,只是觉得doom-variable-pitch-font里有,应该没问题的
我去看看如何设好fontconfig和doom的字体,感谢解答!
我是自己配置的emacs,然后font set里字体用的Hei(mac字体),除了个别中文字,都是我用的字体,比如“中”这个字就不是,我也一直很头痛。。看describe-char
几个字的charset、category什么都一样,但他就是不用那些字体
position: 1 of 6 (0%), column: 0
character: 中 (displayed as 中) (codepoint 20013, #o47055, #x4e2d)
charset: chinese-gbk (GBK Chinese simplified.)
code point in charset: 0xD6D0
script: han
syntax: w which means: word
category: .:Base, C:2-byte han, L:Left-to-right (strong), c:Chinese, h:Korean, j:Japanese, |:line breakable
to input: type "C-x 8 RET 4e2d"
buffer code: #xE4 #xB8 #xAD
file code: #xE4 #xB8 #xAD (encoded by coding system utf-8-unix)
display: by this font (glyph code)
mac-ct:-*-Symbola-normal-normal-semicondensed-*-11-*-*-*-p-0-iso10646-1 (#x153D)
Character code properties: customize what to show
name: CJK IDEOGRAPH-4E2D
general-category: Lo (Letter, Other)
decomposition: (20013) ('中')
There is an overlay here:
From 1 to 7
face hl-line
priority -50
window #<window 3 on test>
[back]
position: 2 of 6 (17%), column: 2
character: 我 (displayed as 我) (codepoint 25105, #o61021, #x6211)
charset: chinese-gbk (GBK Chinese simplified.)
code point in charset: 0xCED2
script: han
syntax: w which means: word
category: .:Base, C:2-byte han, L:Left-to-right (strong), c:Chinese, h:Korean, j:Japanese, |:line breakable
to input: type "C-x 8 RET 6211"
buffer code: #xE6 #x88 #x91
file code: #xE6 #x88 #x91 (encoded by coding system utf-8-unix)
display: by this font (glyph code)
mac-ct:-*-Hei-normal-normal-normal-*-13-*-*-*-p-0-iso10646-1 (#xEE8)
Character code properties: customize what to show
name: CJK IDEOGRAPH-6211
general-category: Lo (Letter, Other)
decomposition: (25105) ('我')
There is an overlay here:
From 1 to 7
face hl-line
priority -50
window #<window 3 on test>
[back]
rg 一下配置看看,提到 symbola 的是哪儿?
(progn
(set-face-attribute 'default nil :family "Hack" :height (* 10 vonfry-fontsize))
(set-fontset-font nil 'unicode (font-spec :name "Symbola" :height (* 10 vonfry-fontsize)) nil 'append)
(dolist (charset '(greek symbol))
(set-fontset-font nil charset (font-spec :name "Symbola" :height (* 10 vonfry-fontsize)) nil 'prepend))
(dolist (font '("Hei" "Source Han Sans CN"))
(dolist (charset '(kana han symbol cjk-misc bopomofo))
(set-fontset-font (frame-parameter nil 'font)
charset
(font-spec :family font :size (+ 2 vonfry-fontsize))
nil 'append))))
我配置是自己写的,全部的字体设置都在这里了。。symbola有影响的只有greek和symbol
不会是unicode里面的
刚刚拿中
吧。。但是这个字describe里是chinese-gbk的。。
我去把unicode也加到中文字体的,或者删掉symbola的相关定义也是一样的。。emacs -Q
试了一下,居然没问题了。然后发现,我刚刚调了一下是改在其它文件里了,没有改到emacs读取的config里(因为用了home-manager
我也遇到了这样的问题,用sandbox查看没问题,最后发现在init.el
里取消掉unicode
的注释就可以正常显示了
取消了unicode之后,发现字体设置改变了,原来的设置不起作用了。
检查一下 doom-unicode-extra-fonts
的值,是否包含字体 “file-icons” ,如果包含的话,删掉试试。
或者直接删掉 “file-icons” 字体。
要设置scrip: han 里面的han,而不是unicode。
弱弱问一句 awesome-tab的字体是什么
好像是更纱黑体?当时的设置现在已经改了
rg file-icons
发现是在core/core-ui.el
定义了doom-extra-unicode-font
,documentation 是
Fonts to inject into the Unicode charset before doom-unicode-font.
然后我就在config.el里面加入了(push "Sarasa Mono SC Nerd" doom-unicode-extra-fonts)
把我自己用的字体放在了doom-unicode-extra-fonts
的最前面,然后言字就显示正常了并且还是原来的字体
谢谢了,感觉字体设置好乱,设置方法又多种多样,混沌了。