为什么 Xft 忽略字体设置?

为什么 Xft 忽略字体设置?

如下所示,我的 Xft 设置与我的 fontconfig 设置完全匹配:

$ xrdb -query | grep -i xft
Xft.antialias:  1
Xft.autohint:   1
Xft.dpi:    96
Xft.hinting:    1
Xft.hintstyle:  hintmedium
Xft.lcdfilter:  lcddefault
Xft.rgba:   none

$ fc-match --verbose :family=Mono:size=12 | grep '^.\(hint\|anti\|auto\|dpi\|rgba\|lcd\)'
    antialias: True(w)
    hintstyle: 2(i)(w)
    hinting: True(w)
    autohint: True(w)
    dpi: 96(f)(w)
    rgba: 5(i)(w)
    lcdfilter: 1(i)(w)

不幸的是,Xft 似乎忽略了这些设置,并且根本没有做任何暗示。我可以在 GUI Emacs 或运行命令中看到这一点

pango-view --backend=xft --font='Mono, 12' -t 'Xft - X FreeType interface library'

在此输入图像描述

将渲染结果与 Cairo 后端生成的渲染结果进行比较:

pango-view --backend=cairo --font='Mono, 12' -t 'Xft - X FreeType interface library'

在此输入图像描述

答案1

事实证明,在 Xft 中hintmedium是 的同义词hintslight,而在 fontconfig 中hintmedium是 的同义词hintfull。因此,该选项hintmedium实际上根据程序使用 Cairo 还是 Xft 选择不同的提示方法。

据我所知,这在任何地方都没有记录。我必须通过反复试验来弄清楚。

相关内容