【求助】Windows上的字体配置只对部分中文字符生效

刚对 Emacs 有一点熟悉的新手,之前一直没怎么配置字体,今天觉得默认中文字体有的字缺胳膊少腿的,就换了几款等宽字体,发现中文字符大部分都没怎么变,只有小部分中文字符生效了。

通过 Emacs中的“中”字和“言”字显示奇怪 - #28,来自 Giant-Pandas ,尝试配置了 思源黑体 CN,然后所有中文字符就都生效了。不过这也不是等宽字体,还得继续找解决办法,最后也没找到任何带有 CN 后缀的等宽字体。

字体配置代码和具体效果都在图片上,配置代码是从 GUI 界面设置好字体后自动生成的。

问题:如何让 Iosevka 字体对所有中文字符都生效呢?

估计是 charset chinese-gbk 太小了,可以试试:

    (let ((font (frame-parameter nil 'font))
          (font-spec (font-spec :family "Iosevka")))
      (dolist (charset '(kana han hangul cjk-misc bopomofo))
        (set-fontset-font font charset font-spec)))))
1 个赞

好像没效果,把原来字体配置删了,然后把这段代码复制进去(右括号在最后好像多出来两个,把那两个右括号去除了),保存重启 emacs 之后,中文字符和原来的效果一样,英文字符回到默认字体了。

昨天想再试试windows上用doom,发现了同样的问题,还没解决,等大佬们支招

我之前也遇到了这个问题, 后来参考 @seagle0128 的字体相关的配置就解决了

完美的中英文等距+ICON字体:Sarasa Nerd - #16,来自 willbchang 找到 CN 版本的等宽字体了,看着还挺舒服,暂时可以把等宽对齐和中文显示的问题给对付过去,有需要的人可以试试看。

Iosevka只有西欧字符,把它设置为中文字符的字体emacs会因为Iosevka缺少对应字符而自动fallback到其他有中文字符的字体,不管怎么设置都不会显示正确。。。你要对中文字符另设一个字体,把二楼发的字体换成中文字体

1 个赞

感谢大佬提醒,涨知识了。哈哈,之前看 Iosevka 在终端显示中文挺好也想在 GUI 用用,没想到这有问题。

但话说在 Windows GUI 设置界面上直接配置字体确实有点问题,在 Windows GUI 上直接配置 等距更纱黑体 SC 也是只有部分中文字符生效,但用了二楼单独配置中文字体的代码就可以全部生效。

单独设置中文、英文和等宽表格字体应该也可以解决中文显示和表格对齐问题。

嫌麻烦的直接在 Windows GUI 设置界面上配置 CN 版本的字体就没事了,要想表格对齐就用等宽的 CN 字体 。

配个图记录一下。