用 Doom Emacs 挺久了,最近(似乎是某次更新后?但记不清了)突然出现中文标点符号显示宽度的问题,简单说就是中文标点的显示宽度变得既不是中文字符宽度也不是英文字符宽度,见图。
系统是 macOS 13,通过 Homebrew 安装 d12frosted 维护的 emacs-plus 28.1,Doom Emacs 最新版本。使用的中文字体是 Sarasa Mono SC,我很久没改过相关配置了,所以我觉得应该和配置关系不大,不过后面还是附上了相关的配置代码供参考。
有朋友碰到过类似的问题吗?有什么可能的线索不?拜谢先。
附:相关字体配置
(setq +main-font "Iosevka Fixed")
(setq +unicode-font "JuliaMono")
(setq +greek-font "Sarasa Mono CL")
(setq +cjk-font "Sarasa Mono SC")
(setq doom-font (font-spec :family +main-font :size 16 :weight 'light)
doom-big-font (font-spec :family +main-font :size 20 :weight 'light)
doom-variable-pitch-font (font-spec :family +main-font) ;; inherits the :size from doom-font
doom-serif-font (font-spec :family +main-font :weight 'light)
doom-unicode-font (font-spec :family +unicode-font)
)
(setq doom-themes-enable-bold t
doom-themes-enable-italic t)
;; fix chinese characters not using doom-unicode-font issue
(use-package! unicode-fonts
:config
;; common math symbols
(dolist (unicode-block '("Mathematical Alphanumeric Symbols"))
(push +unicode-font (cadr (assoc unicode-block unicode-fonts-block-font-mapping))))
(dolist (unicode-block '("Greek and Coptic"))
(push +greek-font (cadr (assoc unicode-block unicode-fonts-block-font-mapping))))
;; cjk characters
(dolist (unicode-block '("CJK Unified Ideographs" "CJK Symbols and Punctuation" "CJK Radicals Supplement" "CJK Compatibility Ideographs"))
(push +cjk-font (cadr (assoc unicode-block unicode-fonts-block-font-mapping)))))