从今天早些时候开始,我遇到了 rxvt-unicode 的字体渲染问题。特别是对于许多字体,我在字符之间获得了大量的额外空间。在其他字体中,rxvt 拒绝更改大小。
这是 urxvt 和 xterm 之间的间距问题的示例。
字体资源:
URxvt*font: xft:Terminus:medium:size=10
xterm*faceName: xft:Terminus:medium:size=10
Run Code Online (Sandbox Code Playgroud)
还有效果图
我已经尝试了暗示和抗锯齿的所有排列。更改大小或像素大小确实会调整 urxvt 中的字体大小,但这也会增加额外的间距。
有没有人有我可以尝试解决这个问题的想法?
如下所示,我的 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)
Run Code Online (Sandbox Code Playgroud)
不幸的是,Xft 似乎忽略了这些设置,并且根本没有做任何暗示。我可以在 GUI Emacs 或运行命令中看到这一点
pango-view --backend=xft --font='Mono, 12' -t 'Xft - X FreeType interface library'
Run Code Online (Sandbox Code Playgroud)
将渲染与开罗后端生成的渲染进行比较:
pango-view --backend=cairo --font='Mono, 12' -t 'Xft - X FreeType interface library'
Run Code Online (Sandbox Code Playgroud)