Debian 9下解决Noto CJK Sans默认为日文JP导致部分字符显示不正常
感谢Arch Wiki。
安装Noto Sans CJK后,在某些情况下(框架未定义地区)汉字字形与标准形态不符,例如门、关、复等字字形与规范中文不符。
这是因为每个程序中可以设置不同的默认字体,比如Arial或者Tohamo,而这些字体的属性由fontconfig控制,其使用顺序是据地区代码以A-Z字母表顺序成默认排序,由于 ja-JP 在 zh_{CN,HK,SG,TW} 之前,故优先显示日文字形。
可选用以下方法解决:
1.安装根据地区打包的字体,例如简体中文用户安装思源黑体简体中文包adobe-source-han-sans-cn-fonts、adobe-source-han-serif-cn-fonts或者noto-fonts-sc。(此方法最简单但Debian没有独立的包)
2.手动调整优先级,将中文字形调整到日文字形之前。
修改或创建文件/etc/fonts/conf.avail/64-language-selector-prefer.conf,
<?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>
</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>
</prefer>
</alias>
<!--以上为设置等宽字体优先度-->
</fontconfig>
若/etc/fonts目录下有conf.d/目录(Debian有),则在该目录中创建指向/etc/fonts/conf.avail/64-language-selector-prefer.con的同名软链接:
# ln -s /etc/fonts/conf.avail/64-language-selector-prefer.conf /etc/fonts/conf.d/64-language-selector-prefer.conf
然后更新字体缓存即可生效:
# fc-cache -fv
执行以下命令检查,如果出现NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular"则表示设置成功:
# fc-match -s |grep 'Noto Sans CJK'
发表于 2019-04-23 01:41:00 并被添加「」标签,阅读量: 2627 。
此处评论已关闭