Windows 10 下 Sarasa Mono SC 无法显示 org-bullets 中的三级图标

问题

我单独给 org-mode 指定了 Sarasa Mono SC 的字体,之前在 macOS 下没有问题。但换到 Windows 10 后很诡异地发现 org-bullets 只有第三级 title 的图标不显示,变成了个方框,如图

org-mode-Sarasa-missing-symbol

在其他 mode 下,使用别的默认字体(我目前设的是 Fira Code)是可正常显示的,比如复制该字符到 markdown 文件下中无异常。

如下是 C-h v org-bullets-bullet-list 后的显示

org-bullets-bullet-list

按理说不可能更纱黑体单独缺这个 unicode 字符啊,我在另一台 Windows 笔记本上同样的配置也是能正常显示的。大家有什么 debug 思路吗?

额外信息

Emacs 版本 27.1

init.el 中字体配置如下

(let ((emacs-font-size 13)
      (emacs-font-name "Fira Code"))
  (set-frame-font (format "%s-%s" (eval emacs-font-name) (eval emacs-font-size)))
  (set-fontset-font (frame-parameter nil 'font) 'unicode (eval emacs-font-name)))

(with-eval-after-load 'org
  (defun org-buffer-face-mode-variable ()
    (interactive)
    (make-face 'width-font-face)
    (set-face-attribute 'width-font-face nil :font "Sarasa Mono SC 12")
    (setq buffer-face-mode-face 'width-font-face)
    (buffer-face-mode))

  (add-hook 'org-mode-hook 'org-buffer-face-mode-variable))

org-bullets 的配置

(use-package org-bullets
  :after org
  :config
  (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))

光标放到你的org-bullet字符上然后M-x describe-character看看到底是哪个字体在显示你的org-bullets,没记错的话这些字符应该在emacs字符映射表里面属于symbol区,可以试着把

(set-face-attribute 'width-font-face nil :font “Sarasa Mono SC 12”) 换成
(set-fontset-font t 'symbol “Sarasa Mono SC-12”) 看错了,我这是设置全局字体的,跟你的需求不一致。。

不知道怎么debug,不过可以给字符单独设置字体来解决显示不好的问题,而且这些字符可能用另一个字体更好看

(dolist (character '(?\x25C9 ?\x25CB ?\x2738 ?\x273F))
    (set-fontset-font nil character (font-spec :family "DejaVu Sans")))