Emacs 在图形界面上绘制字符前,
必须先为该字符选择一种 字体(font)31。
See Fonts in The GNU Emacs Manual。
通常 Emacs 会根据字符所分配的文本视觉样式自动选择字体—
具体依据样式属性 :family、:weight、:slant 与 :width(see 文本视觉样式属性)。
字体选择还取决于待显示的字符;部分字体仅支持有限字符集。
若没有完全符合要求的可用字体,Emacs 会寻找 最匹配字体(closest matching font)。
本节变量用于控制 Emacs 如何进行这一选择。
若指定了某一字体系列但该系列不存在, 该变量指定要尝试的替代字体系列。 每个元素格式如下:
(family alternate-families...)
若 family 已指定但不可用, Emacs 会依次尝试 alternate-families 中的其他系列, 直至找到可用系列。
若没有字体完全匹配所有期望的文本视觉样式属性(:width、:height、:weight、:slant),
该变量指定选择最匹配字体时这些属性的考虑顺序。
值应为包含这四个属性符号的列表,按重要性从高到低排列。
默认值为 (:width :height :weight :slant)。
字体选择会先为列表中第一个属性找到最优匹配, 再在这些最优匹配字体中为第二个属性寻找最优匹配,依此类推。
属性 :weight 与 :width 的符号值以 normal 为中心分布。
更极端(偏离 normal 更远)的匹配会略优先于较温和(更接近 normal)的匹配;
这样设计是为了尽可能让非常规样式与常规样式形成对比。
该变量产生效果的一个例子是:
当默认字体没有对应斜体时,
使用默认顺序,italic 样式会使用与默认字体相近的非斜体字体;
但若将 :slant 置于 :height 之前,
italic 样式会使用斜体字体,即使其高度不完全匹配。
该变量允许在指定字体注册库不存在时, 指定要尝试的替代注册库。 每个元素格式如下:
(registry alternate-registries...)
若 registry 已指定但不可用, Emacs 会依次尝试 alternate-registries 中的其他注册库, 直至找到可用注册库。
Emacs 可以使用可缩放字体,但默认不会启用。
该变量控制使用哪些可缩放字体。
默认值 nil 表示不使用可缩放字体。
t 表示使用所有看起来适合当前文本的可缩放字体。
其他情况下,值必须为正则表达式列表。 只有名称与列表中任一正则表达式匹配的可缩放字体才会被启用。 例如:
(setq scalable-fonts-allowed '("iso10646-1$"))
允许使用注册库为 iso10646-1 的可缩放字体。
该变量为特定文本视觉样式指定缩放比例。 值应为元素格式如下的列表:
(fontname-regexp . scale-factor)
若 fontname-regexp 与即将使用的字体名称匹配, 则根据 scale-factor 选择更大的同类字体。 若某些字体实际尺寸与其标称尺寸不符, 可使用该功能统一字体大小。