字体显示优先级问题

我的一些 unicode 字符在 face 中含有 :family 属性,但是并没有起作用。emacs 优先显示的是我使用 set-fontset-font 设置的字体。

在 emacs 的文档中说 :

Before Emacs can draw a character on a graphical display, it must select a font for that character1. See Fonts. Normally, Emacs automatically chooses a font based on the faces assigned to that character—specifically, the face attributes :family , :weight , :slant , and :width (see Face Attributes). The choice of font also depends on the character to be displayed; some fonts can only display a limited set of characters. If no available font exactly fits the requirements, Emacs looks for the closest matching font. The variables in this section control how Emacs makes this selection.

但并没有说明具体的优先级,那一句 Emacs looks for the closest matching font 更是令我困惑不已。

所以,emacs 的字体显示优先级到底是怎样的?哪里能看到更详细精确的文档?

在没有使用 set-fontset-font 设置 \xe10e 的字符集时,显示效果是:

原字体中的 \xe10e 表示的不等号被显示成了相机。

而使用 set-fontset-font 设置 \xe10e 的字符集为原字体后,它显示为:


优先级为: fontset > face > frame font ?

我也有这个疑问,之前搜索许久也没有找到相关代码

遇到了同样的问题,为中文字体设置的 fontset 会覆盖别的 face 的字体设置,再新建一个 fontset 也不行。 又试了下,set-face-attribute 可以为 face 设置 fontset,custom-set-face 不行。