Debian解决Noto Sans CJK字体默认为日文字形的问题

使用中文为默认语言时,CJK字体应为默认中文字形,因此不存在CJK字体的默认字形问题。默认语言非中文时,会出现CJK字体默认字形的问题。可以执行fc-match -s | grep 'Noto Sans CJK'检查:
返回NotoSansCJK-Regular.ttc: "Noto Sans CJK JP" "Regular" 则代表默认字形为日文;
返回NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular" 则代表默认字形为简体中文。

本方案仅为当前用户修改配置文件,以解决CJK字体默认为日文字形的问题。

新建~/.config/fontconfig/conf.d文件夹,在文件夹内新建64-language-selector-prefer.conf文件,并在~/.config/fontconfig/conf.d/64-language-selector-prefer.conf添加如下内容,相上关代码如下。

1
2
mkdir -p ~/.config/fontconfig/conf.d
vi ~/.config/fontconfig/conf.d/64-language-selector-prefer.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?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>

执行fc-cache -fv更新字体缓存,然后执行fc-match -s | grep 'Noto Sans CJK',返回NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular" 则表示设置成功。

参考:

修正简体中文显示为异体(日文)字形