李前南自乐网





Linux 的世界




【调整字体显示:↑大↓小 2016年7月29日:再见视窗!走入「无版图」ubuntu的世界

【Linux 的世界】



英文无版图(Ubuntu)系统环境的汉字显示兼容的解决方法

作者:李前南(新加坡)
发布日期:2017年7月10日

如果您像我一样:安装的是英文的无版图(Ubuntu),然后添加兼容中文的输入支援。在应用的过程中,您一定会发现,在这样的英文界面上,遇到要输入中文时,总有几个汉字在显示上,有些怪怪的……例如:门、复、径等这些汉字。不是显示为半角,就是显示犹如日本字的笔画写法。如下图:







实际上,这些都不是汉字,这是日文。怎么会这样?怎么解决?
在网络上,有许多人提出这样的问题。可是,回复的答案不外是通过Ubuntu Tweak,或者Unity Tweak Tool修改字体的显示:



可是,这样的修改,虽然界面上如您所愿,在阅读的界面上依照您自己的设定字体字形显示,但是,实际上,并没有彻底解决问题。怎么证明?
当您应用中文输入时,您就会发现这个问题。无论您是采用Ubuntu所提供的拼音输入法,或者自行安装的谷歌输入法,或者许多人应用的搜狗输入法,您会发现,在输入条上的显示,这几个字还是阴魂不散地在那儿显示……
在英文的无版图论坛,没有人问这个问题。在中文的论坛上,有人问了,但是没有人回答……
我对程式语言,一窍不通,当然无法自己去找答案。
后来遇到一位江湖大哥,他说:我不懂中文。这应该是系统字体的应用问题。建议我到下面的几个文件夹里去找找:

/home/[user]/.config/fonts

/etc/fonts/

于是,我像海底捞针一样,把这些文件夹的文件,应用最愚笨的方法:一个个打开来——找、找、找……
终于,皇天不负有心人,终于找到了解决的办法:问题是出在这个文件:64-language-selector-prefer.conf里有关语文预读的先后次序。只要修改了这个先后的次序,就解决了这个问题了。
我的这个64-language-selector-prefer.conf文件,就在/etc/fonts/conf.avail/里。
修改的步骤如下:
1)用管理员的权限,用文本编辑器打开这个在 /etc/fonts/conf.avail/ 目录下的 64-language-selector-prefer.conf 文件。
2)文件的内容是:

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


如图:



修改的地方,我想不懂程序的朋友都可以胜任愉快。就是把这三行的次序,做些微的调整即可。

Noto Sans CJK JP Noto Sans CJK SC Noto Sans CJK TC

这个次序是要系统先读取Noto Sans CJK JP字库。这个是日本字库,难怪系统显示的是日文!终于恍然大悟。这个我还稍微懂一点,因为常常接触到这三个字库:

Noto Sans CJK SC 是思源的中文简体字库;
Noto Sans CJK TC 是思源的中文繁体字库;
Noto Sans CJK JP 是思源的日文字库。

动手把它们的读取次序改一改即可:
次序应该是这样:

Noto Sans CJK SC
Noto Sans CJK TC
Noto Sans CJK 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>


如图:





3)修改后,记得要保存这个文件。
4)重启系统。大功告成。

如图:







事实上,其他的什么都不必改,只要修改这个文件就可以解决这个问题了。
当然,您如果对字体有偏好,要修改显示的字库,那么,请听尊便。因为,跟这个我提的问题一点关系也没有。
用了一年多的无版图(Ubuntu),越来越觉得这个系统——太好了。



作者:李前南(新加坡)
(版权所有,商业用途请勿翻印)

李前南个人自乐网