如何以健壮的方式设置字体后备?
TL; DR:一种简单的可靠说法是:将Consolas用作默认字体,将FreeMono用于Consolas不支持的字符,将Symbola用作两者均不支持的字符? 由于我的主要编程字体未涵盖我需要的所有数学符号,因此我最初设置字体后备,如下所示: (set-fontset-font t 'unicode (font-spec :name "FreeMono") nil 'append) (set-fontset-font t 'unicode (font-spec :name "Symbola") nil 'append) 不幸的是,这也改变了我主要字体支持的某些字符的字体,因此我将其更改为 (set-fontset-font t 'unicode (font-spec :name "Consolas") nil) (set-fontset-font t 'unicode (font-spec :name "FreeMono") nil 'append) (set-fontset-font t 'unicode (font-spec :name "Symbola") nil 'append) 如果我的理解是正确的,这应该确保Consolas无法处理的字符由FreeMono处理,除非FreeMono没有它们,在这种情况下,应使用Symbola显示它们。我的理解t也与"fontset-default"上述相同。 不幸的是,仍然有一些情况没有选择正确的字体。我发现更改为 (set-fontset-font t 'unicode (font-spec :name …