我无法在(据我所知)不使用全局 fontconfig 设置的程序中启用字体提示。
我首先认为这仅与 urxvt 有关。
urxvt -fn "xft:Consolas:pixelsize=15:hinting=true:hintstyle=hintfull:antialias=true"
或者grep hint .Xresources
Xft.hinting: true
Xft.hintstyle: hintfull
URxvt.font: xft:Consolas:pixelsize=15:hinting=true:hintstyle=hintfull:antialias=true
没有任何暗示。但在尝试其他终端(例如 xterm 或 st)时,他们也存在忽略提示的相同问题。
和另一个问题类似这里,我还可以使用pango-view:
$ export FC_DEBUG=1
$ pango-view --hinting=full --backend=xft --font=Consolas -t 'Hello world' | grep hint
hintstyle: 3(i)(w)
hinting: True(s)
$ pango-view --hinting=none --backend=xft --font=Consolas -t 'Hello world' | grep hint
hintstyle: 3(i)(w)
hinting: False(s)
尽管调试消息暗示 True/False 差异,但字体渲染完全没有区别:两者都渲染为hinting=none
.但是,使用 option--backend=cairo
时,会发生提示并且渲染的字体有明显的差异。
我已经尝试过hintfull
,,hintmedium
-hintslight
没有任何效果。
我的故事是,事实上我已经使用带有提示的 urxvt 几年了。我一直在使用这个“infinality”freetype 补丁和配置,但现在不再有效。所以,我现在使用 Arch Linux 提供的默认 freetype(版本 2.9-2)包。
我所做的唯一配置是在全局配置中启用提示,如下所示:
~/.config/fontconfig/fonts.conf
<match target="font">
<edit name="hintstyle" mode="assign">
<const>hintmedium</const>
</edit>
</match>
这成功地将提示应用于除 urxvt 和朋友之外的所有程序。 (这里的一个不规则之处是我hintmedium
在这里使用了hintfull
- 由于未知的原因,内部 fonts.confhintfull
没有任何效果并且与 相同hintnone
)
那么,关于为什么暗示可能不适用于 urxvt 或 st 的任何想法吗?