Noto Fonts 的字形是个老大难问题了。具体表现就是在有些程序上,会自动使用日文字形,导致“门”等字符显示的很奇怪。之前我使用 fontconfig 指定中日韩字形的使用顺序,可以解决绝大多数的问题。恩,是我见到的所有。

但最近的 Arch 更新导致 Virtualbox 不可用,作为代替,我安装了 deepin.com.qq.office 。这是一个使用 deepin-wine 封装 TIM 的包。问题来了,打开之后文字正常显示,但被日文字形困扰过的人一眼就能看出来,字体显示的不正常:门等汉字是日文字形。

这是因为 wine 不读取 fontconfig,而打包者似乎配置了这个 wine 容器使用系统默认字体,也就是 Noto Sans,而又没有指定使用哪个地区的字形,于是根据 Arch 中 CJK 字体包的默认设置,自动使用了日文字形。

于是我们修改 fontconfig 没有作用,或许可以通过修改容器注册表来指定使用 wqy-mircohei 这种只有中文的字形。但我不喜欢文泉驿微米黑,也不懂 Windows 注册表……

下载

所以还有另一种方案,使用默认字形为中文的 CJK 字体。
这里 可以下载到默认中文的 Noto Sans 和 Noto Serif。

安装

然后根据ArchWiki中的方法手动安装字体。
*.otf复制到/usr/share/fonts的任意子目录下即可。这里我选择 /usr/share/fonts/noto-cjk

# 解压字体文件后,进入解压缩后的字体文件目录
sudo cp *.otf /usr/share/fonts/noto-cjk # 如果不存在目标目录 noto-cjk,可以自行创建
sudo chmod 555 /usr/share/font/noto-cjk # 目标目录必须至少是 555 权限 (r-xr-xr-x)
sudo chmod 444 /usr/share/font/noto-cjk/* # 字体文件必须至少是 444 权限 (r--r--r--)
fc-cache -fv # 刷新字体缓存

然后注销桌面重新进入就可以了。