用cnfonts调整字体遇到的奇妙问题:高亮的中文会变白

问题

如下图:光标移过高亮中文字体会导致它们部分染白

font-white

确定原因

既然英文正常那么我就怀疑是中文字体设置的原因,我关闭了cnfonts,改用更纱等宽黑体,问题果然消失了。我又尝试将cnfonts生成的字体配置拷贝到config.el中重启,代码如下:

;; Auto generated by cnfonts
;; <https://github.com/tumashu/cnfonts>
(set-face-attribute
 'default nil
 :font (font-spec :name "-IBM -IBM Plex Mono-normal-italic-normal-*-*-*-*-*-m-0-iso10646-1"
                  :weight 'normal
                  :slant 'normal
                  :size 11.5))
(dolist (charset '(kana han symbol cjk-misc bopomofo))
  (set-fontset-font
   (frame-parameter nil 'font)
   charset
   (font-spec :name "-ADBO-Source Han Serif CN-normal-normal-normal-*-*-*-*-*-*-0-iso10646-1"
              :weight 'normal
              :slant 'normal
              :size 13.5)))

结果又变花了。我怀疑可能是等宽中文的问题,然后我又尝试改用其他等宽中文,比如更纱等宽,文泉等宽正黑等,问题依旧,看来就是这段配置的问题。

有人遇到过这样的情况吗?虽然更纱黑体也很好,但是英文看起来太窄了,还是希望能继续用cnfonts。网上也没找到相关的问题,有人知道该怎么解决吗?

好诡异的问题,你 emacs -Q 能不能重现这个问题?

刚刚试了用 emacs -Q -l font.el 单独加载这段代码,没有复现 :sweat_smile: