cnfont 如何添加 emoji 的支持

cnfont 让我的 org 更加美观。

不过,我在使用中发现一个小问题,就是启用了 cnfont 之后,原本可以显示的 emoji 变成了乱码。

我盲猜是因为,我设 cnfont-set-profile 的中文字体不支持 emoji,英文字体也不支持 emoji。

而我在 init.el 里已经添加了 emoji 字体的支持,在启用 cnfont 之前是正常显示的。

因为现在笔记、日记里用 emoji 来提示某些信息,可以提高输入的效率,因此还是比较关心的。

不知道可否用自定义的配置来添加 emoji 字体的支持?

(defcustom cnfonts-personal-fontnames nil
  "用户自己维护的字体列表,其结构与 `cnfonts--fontnames-fallback' 一致."
  :group 'cnfonts
  :type '(choice (const :tag "None" nil)
                 (list (repeat :tag "English fonts" string)
                       (repeat :tag "Chinese fonts" string)
                       (repeat :tag "Ext-B fonts" string)
                       (repeat :tag "Symbol fonts" string)
                       (repeat :tag "Fonts used for ornament chars " string))))

已在 cnfont 的 issue 里找到解决办法:

(set-fontset-font"fontset-default"'emoji (font-spec:family"Apple Color Emoji") nil'prepend)

但直接这一行会报错。我修改了一下,如下:

(set-fontset-font "fontset-default" 'unicode "Apple Color Emoji" nil 'prepend)

经过测试,成功显示 emoji。

能否贴一下您的 cnfonts 的完整配置?

我没有将 cnfont 的配置另外保存到配置文件里面,因为 org-mode 表格里的对齐,是离不开启动 cnfont 这个包的。

所以,为了显示 emoji,就是直接用我刚才的配置语句来显示 emoji。