如何正确为 Noto Sans CJK 配置 fontconfig 使中文不会被显示为日文字型?

Ubuntu 16.04 LTS 使用了新的中文字体 Noto Sans CJK,该字体在默认设置下,会在一些程序(如 fcitx 的候选词、Chromium 的某些网页)下将中文显示为日文字型。 如果是由于程序没有指定语言造成的,能不能通过设置 fontconfig 使默认 Fallback 字形为中文?
关注者
9
被浏览
2221
自己找到解决方案了。
sudo vim /etc/fonts/conf.d/64-language-selector-prefer.conf 
该文件配置了 Noto Sans 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 SC</family>
			<family>Noto Sans CJK TC</family>
		</prefer>
	</alias>
	<alias>
		<family>monospace</family>
		<prefer>
			<family>Noto Sans Mono CJK JP</family>
			<family>Noto Sans Mono CJK SC</family>
			<family>Noto Sans Mono CJK TC</family>
		</prefer>
	</alias>
</fontconfig>
可以看到,JP 优先于 SC。
直接将 JP 移至最后即可。
修改后的配置文件:

<?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>