Arch Linux 中 Noto CJK 字体回落问题

因为 noto-fonts-cjk 包修改了一些配置,可能导致部分字体回落时出现问题,例如关、复等字字形过窄,门的字形为竖点插入横折钩而非左上斜点等。

这是因为每个程序中可以设置不同的默认字体,比如 Arial 或者 Tahoma,而这些字体的属性由 fontconfig 控制,其使用顺序是据地区代码以 A-Z 字母表顺序成默认排序,由于 ja_JP 在 zh_CN,HK,SG,TW 之前,故优先显示日文字形。

手动调整优先级,将中文字形调整到日文字形之前,在 ~/.config/fontconfig/fonts.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>serif</family>
      <prefer>
        <family>Noto Serif CJK SC</family>
        <family>Noto Serif CJK TC</family>
        <family>Noto Serif 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>