中英文字体设置,中文字体不能起作用

最近在window10上面使用,中文字体真是受不了。今天想设置下,可是必须的手动才生效,大家帮忙看看什么问题?

(defun env--set-font (english english-size chinese chinese-size)
 (set-face-attribute 'default nil :font
                      (format   "%s:pixelsize=%d"  english english-size))
  (dolist (charset '(kana han symbol cjk-misc bopomofo))
    (set-fontset-font (frame-parameter nil 'font) charset
                      (font-spec :family chinese :size chinese-size)))

(env--set-font "Hack" 14 "SourceHanSansSC" 16)

env–set-font 函数只设置了英文。中文的没反应,非要手动C-x C-e 才能生效呢?

你没讲放在配置文件哪个位置,估计是被覆盖了

你可以试试我的方法,也是参考的论坛大佬的配置: 如果需要放大或者缩小中文字体实现org表格的自动对齐就打开注释那行。我现在用valign实现,所以就不开了。字体字号改成你喜欢的就行了。

(when (eq system-type 'windows-nt)
 (setq fonts '("Consolas" "微软雅黑"))
 (set-face-attribute 'default nil :font
                     (format "%s:pixelsize=%d" (car fonts) 22))
 ;; (setq face-font-rescale-alist '(("微软雅黑". 1.1)))
 )

(dolist (charset '(kana han symbol cjk-misc bopomofo))
 (set-fontset-font (frame-parameter nil 'font) charset
                   (font-spec :family (car (cdr fonts)))))

2 个赞

最近也正好碰到这个问题。 我用的这段代码,直接就起效了。

 (set-fontset-font "fontset-default"
             'han (font-spec :family "PingFang SC"
                     :size 16))