(add-hook! 'rime-mode-hook :append
(set-fontset-font t 'han (font-spec :family "Sarasa UI J"))
(set-fontset-font t 'cjk-misc (font-spec :family "Sarasa UI J"))
(set-fontset-font t '(#xf0000 . #xf0142) (font-spec :family "98WB-0")))
如果我需要显示中文,那么我一定会输入中文,而且一定会使用Emacs内部的输入法实现……Anyway,现在只要发现了中文显示有问题,那么就C-\ C-\
两下就好了,不用再想办法和Doom Emacs的字体部分的代码还有Emacs的字体显示原理搏斗了。
1 个赞
原生 Emacs 就不需要考虑弯弯绕问题,我的字体配置只有这几行:
(set-face-attribute 'default nil
:family "Sarasa Mono SC Nerd"
:height 140
)
2 个赞
doom 是这样的,他主要先考虑的是拉丁字母,然后考虑的是all-the-icons
,最后才想到非拉丁语系用户。所以为什么Doom Emacs里面“中”字和“言”字老是出问题,因为用到了weather-icons
的字体了……
我也用的 doom. 之前看站里推荐的霞鹜文楷等宽. 中英文都换成了这个. 然后就没什么可抱怨的了.
1 个赞
sarasa和LXGW都用过,虽然都挺好,但是如果人就是这么喜欢折腾,突然觉得IBM Plex Mono好了,更加主要的因素还有现在主要用英文做笔记,这两款为了等宽等高而让拉丁字母过高了。
加到 emacs-startup-hook
里,我这儿中文就再没出现过问题:
(add-hook! 'emacs-startup-hook :append
(dolist (script '(han kana hangul cjk-misc bopomofo))
(set-fontset-font t script font-chinese)))
1 个赞
确实不用,我 emacs 打开至少几天不关,没有用 emacsclient 的需求
我发现这样设置也可以
(setq doom-font (font-spec :family "Hack"))
(setq doom-unicode-font (font-spec :family "LXGW WenKai Screen")) ;; “中”、“言”字测试
这样设置会导致emoji等unicode字符显示不了(在不勾选init.el中的emoji时)
Doom自身设置完字体后会执行 after-setting-font-hook,在那里设置中文字体即可。
(setq doom-font (font-spec :family "Iosevka" :weight 'medium :size 13.0))
(defun my-cjk-font()
(dolist (charset '(kana han cjk-misc symbol bopomofo))
(set-fontset-font t charset (font-spec :family "Sarasa Mono SC"))))
(add-hook 'after-setting-font-hook #'my-cjk-font)
9 个赞
又涨知识了,还不知道有这个 hook ,之前我是放在 emacs-startup-hook 里的
ltylty
12
安装Maple字体
scoop install Maple-Mono-SC-NF
doom中配置
(setq doom-font (font-spec :family “Maple Mono SC NF Bold”))
舒服了
分享下现在的字体配置:
;; Plan A: 中文苹方, 英文Roboto Mono
(setq doom-font (font-spec :family "Roboto Mono" :size 22)
doom-serif-font doom-font
doom-symbol-font (font-spec :family "PingFang SC")
doom-variable-pitch-font (font-spec :family "PingFang SC" :weight 'extra-bold))
;; 如果不把这玩意设置为 nil, 会默认去用 fontset-default 来展示, 配置无效
(setq use-default-font-for-symbols nil)
;; Doom 的字体加载顺序问题, 如果不设定这个 hook, 配置会被覆盖失效
(add-hook! 'after-setting-font-hook
(set-fontset-font t 'latin (font-spec :family "Roboto Mono"))
(set-fontset-font t 'symbol (font-spec :family "Symbola"))
(set-fontset-font t 'mathematical (font-spec :family "Symbola"))
(set-fontset-font t 'emoji (font-spec :family "Symbola")))
in doom emacs , the below works well
(setq doom-font (font-spec :family "victor Mono" :size 19 ))
(defun init-cjk-fonts()
(dolist (charset '(kana han cjk-misc bopomofo))
(set-fontset-font (frame-parameter nil 'font)
charset (font-spec :family "HYXinRenWenSongW" :size 20))))
(add-hook 'doom-init-ui-hook 'init-cjk-fonts)
2 个赞