Ubuntu 24.04 中文字体渲染

背景

近期入手了一台2.8k屏幕的新本,安装了ubuntu24.04 在系统语言默认为英文时,中文字体看着非常别扭,有些字体甚至出现半格情况,比如复 ,查了一些资料原因是字体显示优先级的问题,解决方案修改字体优先级即可

解决方案

进入/usr/share/fontconfig/conf.avail 目录,打开64-language-selector-cjk-prefer.conf 文件可以看到CJK (是中文、日文和韩文的字母缩写) 顺序日式中文优先级高于简体中文。直接调换位置将简体中文放到最先。

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

修改后

<?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 KR</family>
                        <family>Noto Sans CJK JP</family>
                        <family>Noto Sans CJK TC</family>
                        <family>Noto Sans CJK HK</family>
                </prefer>
        </alias>
        <alias>
                <family>serif</family>
                <prefer>
                        <family>Noto Serif CJK SC</family>
                        <family>Noto Serif CJK KR</family>
                        <family>Noto Serif CJK JP</family>
                        <family>Noto Serif CJK TC</family>
                </prefer>
        </alias>
        <alias>
                <family>monospace</family>
                <prefer>
                        <family>Noto Sans Mono CJK SC</family>
                        <family>Noto Sans Mono CJK KR</family>
                        <family>Noto Sans Mono CJK JP</family>
                        <family>Noto Sans Mono CJK TC</family>
                        <family>Noto Sans Mono CJK HK</family>
                </prefer>
        </alias>
</fontconfig>

效果