我注意到 Ubuntu 18.04 上的 GTK2/3 应用程序中某些字形呈现不正确(可能是由于错误提示)。
例如,有一个竖线字符│
U+2502,它广泛用于仅使用文本字符创建垂直实线。您可以在控制台应用程序中看到它,例如mc
或pstree
虽然它在 16.04 和 18.04 的终端中都能正确呈现,但在 GTK 应用程序中呈现时,它在 18.04 上的字符之间会出现意外的垂直间隙(在 Ubuntu 16.04 中可以正确呈现)。这个问题可以在 GTK 应用程序(例如 gVIM、Geany、GEdit)中看到,但 Qt 应用程序似乎可以正确呈现它。
我构建了一个小型 GTK2 测试应用程序来重现该问题。你可以在这里找到源代码这里。
以下是结果:
有人知道为什么会发生这种情况吗?我应该将其报告为 GTK 或 Ubuntu 中的错误吗?有什么可能的解决方法吗?
答案1
这些只是可能有助于解决或收集有关问题的信息的提示
可以使用 fontconfig 调试标志运行相同的应用程序
FC_DEBUG=1 ... > fontconfig.log
比较两个环境中的日志,看是否使用相同的字体和相同的属性。
创建自定义字体配置来测试不同的字体属性/设置,参见下面的示例
~/.config/fontconfig/conf.d/00-custom.conf
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match> <test name="prgname"><string>gedit</string></test> <edit name="hinting" mode="assign"><bool>true</bool></edit> <edit name="hintstyle" mode="assign"><const>hintfull</const></edit> <edit name="rgba" mode="assign"><const>rgb</const></edit> <edit name="autohint" mode="assign"><bool>false</bool></edit> <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit> </match> </fontconfig>