emacs set-fontset-font for windows下的特定unicode char

时间:2012-12-29 08:31:13

标签: windows emacs font-face

我使用以下设置为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系统下工作

1 个答案:

答案 0 :(得分:1)

只要您只想为两个特定字符设置默认字体和不同字体,以下内容适用于我:

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

(Consolas不需要prepend,但可能对您的字体有帮助。)

相关问题