我使用以下设置为windows系统下的emacs配置字体
(create-fontset-from-fontset-spec
"-outline-Cousine-normal-normal-normal-*-*-*-*-*-*-*-fontset-Consolas")
(set-fontset-font "fontset-Consolas"
'(#x6d4b . #x6d4c)
"Microsoft YaHei" nil 'prepend)
(set-face-attribute 'default nil :font "fontset-Consolas")
启动emacs后,我将char #x6d4b
输入到emacs缓冲区,但结果是正方形,这意味着字体设置不起作用。我还使用describe-char
来显示详细信息,并获得以下结果:
position: 2888 of 4342 (66%), column: 13
character: 测 (displayed as 测) (codepoint 27979, #o66513, #x6d4b)
preferred charset: unicode-bmp (Unicode Basic Multilingual Plane (U+0000..U+FFFF))
code point in charset: 0x6D4B
syntax: w which means: word
category: .:Base, C:2-byte han, L:Left-to-right (strong), c:Chinese, |:line breakable
buffer code: #xE6 #xB5 #x8B
file code: #xE6 #xB5 #x8B (encoded by coding system utf-8-dos)
display: no font available
我们可以发现display
属性显示它没有可用的字体,但我确实在字体配置中给出了它。
你能指出问题出在哪里吗?我想set-fontset-font甚至可以在windows系统下工作
答案 0 :(得分:1)
只要您只想为两个特定字符设置默认字体和不同字体,以下内容适用于我:
(set-face-attribute 'default nil :family "Consolas")
(set-fontset-font "fontset-default" '(#x6d4b . #x6d4c)
"Microsoft YaHei" nil 'prepend)
(Consolas不需要prepend
,但可能对您的字体有帮助。)