1

我在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 系统下也应该可以工作

4

1 回答 1

1

只要您只想为两个特定字符设置默认字体和不同的字体,以下对我有用:

(set-face-attribute 'default nil :family "Consolas")
(set-fontset-font "fontset-default" '(#x6d4b . #x6d4c)
                  "Microsoft YaHei" nil 'prepend)

prepend对于 Consolas 来说是不必要的,但可能对您的字体有所帮助)。

于 2012-12-29T23:07:53.240 回答