Ubuntu 18.04 修复中文字体渲染问题

最近一段时间一直工作在 Centos 7 下,前两天为了尝鲜,装了最新版的 Ubuntu 18.04 LTS。相比以前的版本,有个明显的感觉就是系统对字体的渲染效果提升了不少。不过,具体落到中文字体的显示上,似乎就出了点问题。中文字体整体说来渲染得还可以,但总有那么几个字看起来特别别扭,比如“门”、“复”等。这些字要么看起来奇怪,要么太瘦,要么感觉只渲染了一半。照理说,早在 Ubuntu 16.04 后,系统的中文字体已经交给了 Noto Sans CJK 来渲染了,有这么一款优秀字体的支持,理应不会出现这样的渲染问题才对。那到底是什么原因导致的呢?

打开 /etc/fonts/conf.avail/64-language-selector-prefer.conf 就可以发现问题所在了。尽管系统使用 Noto Sans CJK,但在字体的优先度调用方面,日文(Noto Sans CJK JP)的优先度高于中文简体(Noto Sans CJK SC)。我们知道日文中有很多汉字,但其渲染方式又与中文不太一样。既然在字体的选择上,日文优先于中文简体,那么部分中文字体被渲染成了日文字体而显得扭扭捏捏也就不奇怪了。

修复方案自然只需简单地把 Noto Sans CJK SC 置顶即可。愿意的话,也可以把繁体中文紧排在简体后面。最后修改的结果如下:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
        <alias>
                <family>sans-serif</family>
                <prefer>
                        <family>Noto Sans CJK SC</family>
                        <family>Noto Sans CJK TC</family>
                        <family>Noto Sans CJK JP</family>
                        <family>Noto Sans CJK KR</family>
                </prefer>
        </alias>
        <alias>
                <family>serif</family>
                <prefer>
                        <family>Noto Serif CJK SC</family>
                        <family>Noto Serif CJK TC</family>
                        <family>Noto Serif CJK JP</family>
                        <family>Noto Serif CJK KR</family>
                </prefer>
        </alias>
        <alias>
                <family>monospace</family>
                <prefer>
                        <family>Noto Sans Mono CJK SC</family>
                        <family>Noto Sans Mono CJK TC</family>
                        <family>Noto Sans Mono CJK JP</family>
                        <family>Noto Sans Mono CJK KR</family>
                </prefer>
        </alias>
</fontconfig>

改完后只需注销账户或者重启系统即可生效。再来看看现在的中文显示,是不是已经完全正常了?

《Ubuntu 18.04 修复中文字体渲染问题》有1条留言

留下评论