emacs下的default face不包含fixed-pitch吗?

为emacs设置默认字体时,我用的是

(set-face-attribute 'default
                            nil
                            :font "CaskaydiaCove Nerd Font"
                            :height 150)

但在编辑org-mode下source block的时候,意外发现,对于未识别的source block,emacs使用的是fixed-pitch字体,然而这竟然不是我设置的CaskaydiaCove Nerd Font,而是落到了Monospace这个fallback字体上。

通过添加

(set-face-attribute 'fixed-pitch
                            nil
                            :font "CaskaydiaCove Nerd Font Mono"
                            :height 150)

我解决了问题,但我好奇的是,在emacs下,default face与fixed-pitch face不是包含关系?在没有指定fixed-pitch face字体的情况下,为什么没有fallback到default face,而是到了monospace

因为这是俩不同的 face 啊 :joy:

具体可看手册 Basic Faces

‘default’
     The default face, whose attributes are all specified.  All other
     faces implicitly inherit from it: any unspecified attribute
     defaults to the attribute on this face (*note Face Attributes::).

emacs 的 face 是继承关系, fixed-pitch 自己指定了字体。