Linux日文教程,【图片】#教程#修正配置 Noto Sans CJK 避免中文显示为异体(日文)字形【linux吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

安装并正在使用 Noto Sans CJK 字体的朋友可能会发现一个问题,某些情况下(框架未定义地区)汉字字形与标准形态不符,如下图:

67e5c62d62b07b5e6a67a1d274a8807c.png

这其实是 Noto Sans CJK 中的日文 prefer(优先度)高于中文导致的,即同一个字的多个字形,由于优先度的关系使日文字形默认显示。

此 prefer 是据地区代码以A-Z字母表顺序成默认排序,由于 ja-JP 在 zh_{CN,HK,SG,TW} 之前,故优先显示日文字形。

这种情况大多发生在,系统语言设置为英文或其它非中文语言的条件下。非中文语言未指定 CJK 优先度,从而在出现 CJK 字元时遵循了字体的默认 prefer。

而用户若在 locale.conf 中设置中文为默认语言(LANG=zh_{CN,HK,SG,TW}.UTF-8),则不会出现此问题,原因是 locale 定义了框架内地区(即 CJK 优先度),使得字体 prefer 被忽略。

既然是调用优先度的问题,那么我们手动调整 prefer,即,将中文字形调整到日文字形之前,问题即可解决。

方法:

Noto Sans 与 Noto Sans Mono 分别属 Sans-Serif(无衬线字体)及 Monospace(等宽字体),故我们更改 sans-serif 组和 monospace 组的 family(字族) prefer。

修改文件 /etc/fonts/conf.avail/64-language-selector-prefer.conf 如下 xml 段,无此文件则创建。

sans-serif

Noto Sans CJK SC

Noto Sans CJK TC

Noto Sans CJK JP

monospace

Noto Sans Mono CJK SC

Noto Sans Mono CJK TC

Noto Sans Mono CJK JP

若 /etc/fonts 目录下有 conf.d/ 目录,则在该目录中创建指向 /etc/fonts/conf.avail/64-language-selector-prefer.conf 的同名软链接:

$ sudo ln -s /etc/fonts/conf.avail/64-language-selector-prefer.conf /etc/fonts/conf.d/64-language-selector-prefer.conf

然后更新字体缓存即可生效:

$ fc-cache -fv

查询并检验字形匹配优先度:

$ fc-match -s | grep Noto

显示 NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular"

则设置成功。

以上为记录而撰,可分享。

画凪

二 29 11月 2016 02:12:30 CST

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值