彻底解决Ubuntu 1404中文显示的问题:把Droid Sans用思源黑体取代

以下是我们在Ubuntu/UbuntyKylin 1404里以思源黑体取代Droid Sans字体族(特别是Droid Sans Fallback字体)的步骤。

1. 到Sourceforge.net下载思源黑体(Source Han Sans fonts),共91.2MB。下载后Ubuntu会自动解压缩。

http://www.tinyurl.com/sourcehansans

2. sudo  mkdir  /usr/share/fonts/opentype

3. sudo  cp  SourceHanSansOTF-1.000/*  /usr/share/fonts/opentype/

4. sudo fc-cache  -f  -v

5. sudo cp -R  /etc/fonts/conf.d  $HOME

6. cd  /etc/fonts/conf.d; sudo  rm  *arphic*  *zh*  *droid*

7. sudo cp /etc/fonts/conf.avail/69-language* /etc/fonts/conf.d

8. sudo sed -i 's/Droid\ Sans\ Fallback\|Droid\ Sans/Source\ Han\ Sans/g' 69-language*; cd  -

然后重新开机即可。 一般我们在更换后也顺便把 Droid Sans整个字体族去掉,免得以后作怪。
关于中文字变成楷书的问题,在中文版的Ubuntu/UbuntuKylin 可能已经解决了,但是在英文版还是存在。以上的步骤,我们已在十多台机器上测试过,效果非常好。 请亲们多多提供一些回馈。

另外,把思源黑体取代Droid Sans Fallback,还可以让后者中文字体列印的问题不再存在。

2015.01.08 Ed.: 我们很早以前提到过,Google Chrome在处理中文字体时,并不太遵守系统的规定。因此,我们使用Google Chrome 时, 还必须到setting里,把预设中文字体特别指定为 Source Han Sans。(让我想到,谷歌要在中国做生意,就必须尊重中国的规则。目前全世界好像只有中国敢跟谷歌说 NO。)

2015.01.25.Ed.: 因为思源黑体的下载地点已转到GitHub里了,为了方便起见,我们把第一版的字体存储到百度云里(共有7种字态,font attributes),目前已经有更新的版本,我们有机会时再补充。

要执行这个步骤以前,请记得把Ubuntu/UbuntuKylin先更新,我们这些步骤是根据最新的字形结构档案定的。

思源黑体(Noto Sans CJK fonts)暂时还未进入debian和ubuntu的仓库
ubuntu上的相关bug,在等待上游debian加入思源黑体字库:
https://bugs.launchpad.net/ubunt … h-meta/+bug/1346766
debian正在进行增加思源黑体的工作,有兴趣的朋友可以关注或支持一下:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754926

能说下什么问题吗?我UK14.04用得没啥问题啊

大牛,方不方便透露一下你是干什么的呀?跟唐凤什么关系。我出于好奇心想问一下。

很抱歉我们最近因为决定暂时把我们的系统转到(母版的)Ubuntu 1404,较没有时间注意UbuntuKylin论坛,以后可能会更少来这里:'(。

关于干那一行,我在另一个帖子里提过,再重复就没有意思了。至于唐凤小姐,我只是她裙底下的一个仰慕者而已(请不要从字面上做非分解释:lol),没有任何关系。

Ubuntu 的update团队常常把有关中文(zh)的字体结构档案(/etc/fonts/conf.avail/69-languagezh)做修改,刚开始(官方ISO版)的时候是“Droid Sans Fallback”,后来改成“Droid Sans”,现在好像又变了回去。变来变去,但并没有真正解决问题。

为了“防备”Ubuntu update 再做改变,我们已把前述的方法做了一个小修改。不管这个字体结构档案指的是Droid Sans Fallback 或 Droid Sans,都没有问题。

如果不更换系统中文字体的话,我们发现在使用英文版的Ubuntu / Ubuntu Kylin 时,很多中文网页会出现 楷体/宋体/黑体 的大杂烩。也许有人会觉得这种混合字体很“好玩”,但我们真正有兴趣推广Linux桌面的对象(尤其是企业界)会瞧不起我们的。国内很多企业(包括有一些中央机构)其实对英文版的Ubuntu比对中文版更有兴趣。

因为目前要推广Linux桌面的唯一方法还是离不开LiveUSB,我们不得不做一套我们自己的iso。基本上我们这个客制的Ubuntu iso 乃是把Ubuntu里面的Droid Sans字体用Source Han Sans取代,同时把LibreOffice升级到4.3。虽然效果相当好,要广泛的让Linux桌面被大众接受,当然还远得很,同时主力还是要靠优麒麟团队来推动,但至少(我个人认为)我们终于有了一个踏实(solid)的基础。

趁这个机会跟有志推广Linux桌面的亲们勉励一下:国家主席习近平同志在主持厦门市政时,常常提到“一步一个脚印”这句话。如果我们都能努力踏下我们自己的脚印,不管以后会不会成功,最少我们尽了我们的一份力量。

要开发一套可以给国内企业接受的桌面系统,第一步就是要提供一个踏实的中文环境。希望大家能多多提供使用者的经验。

ubuntu的中文官方字体不是文泉驿么?

Ubuntu 12.04 及 13.04的确是使用wqy (文泉驿),但Ubuntu 13.10及以后的版本(包括 Ubuntu 15.04),以Droid Sans Fallback取代 WQY,在中文字体显示方面,产生了很多问题。

Ubuntu Kylin 对中文字体方面的布置,乃是根据母版的 Ubuntu ,也有同样的问题。

另外,不止中文字体显示的问题,文泉驿跟Droid Sans Fallback两种字体在使用激光打机时(尤其是HP的机器)会产生字体变型的问题。因此,两者应该都不适合企业界使用。

1.002版的思源黑体刚刚出炉:

https://github.com/adobe-fonts/source-han-sanssuir

虽然跟旧版(1.000)差异很小,但我们总希望中文字体能越完善越好(请见附图)
(待续)

留个爪

最新版(1.004)的思源黑体我们已使用了一阵子,觉得效果很好,字体很清楚,有一些小问题也解决了。下面是我们的装设过程:

下载CJK思源黑体 1.004(感谢ArchLinux社群Felix Yan的打包):

wget -c https://www.archlinux.org/packages/community/any/adobe-source-han-sans-otc-fonts/download/

解压缩到指定的档案夹:

sudo tar xvf adobe-source-han-sans-otc-fonts-1.004-1-any.pkg.tar.xz --directory=/  --wildcards  --exclude=.*  --warning=none

装设思源黑体到Ubuntu系统里:

sudo fc-cache -f -v

整理 /etc/fonts/conf.d (暂时解决办法)

sudo rm *arphic* *zh* *droid*

把下面的代码复制成 /etc/fonts/conf.d/69-language-selector-zh-cn.conf (也是暂时的解决办法):

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

   <match target="pattern">
   <test name="lang">
   <string>zh-cn</string>
   </test>
   <test qual="any" name="family">
   <string>serif</string>
   </test>
   <edit name="family" mode="prepend" binding="strong">
   <string>Source Han Sans SC Medium</string>
   <string>Source Han Sans TC Medium</string>
   </edit>
   </match> 
   <match target="pattern">
   <test qual="any" name="family">
   <string>sans-serif</string>
   </test>
   <test name="lang">
   <string>zh-cn</string>
   </test>
   <edit name="family" mode="prepend" binding="strong">
   <string>Source Han Sans SC Medium</string>
   <string>Source Han Sans TC Medium</string>
   </edit>
   </match> 
   <match target="pattern">
   <test qual="any" name="family">
   <string>monospace</string>
   </test>
   <test name="lang">
   <string>zh-cn</string>
   </test>
   <edit name="family" mode="prepend" binding="strong">
   <string>Ubuntu Mono Regular</string>
   </edit>
   </match> 

</fontconfig>

如果有需要用到繁体中文的话,也把下面的代码复制成 /etc/fonts/conf.d/69-language-selector-zh-tw.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

   <match target="pattern">
   <test name="lang">
   <string>zh-cn</string>
   </test>
   <test qual="any" name="family">
   <string>serif</string>
   </test>
   <edit name="family" mode="prepend" binding="strong">
   <string>Source Han Sans TC Medium</string>
   <string>Source Han Sans SC Medium</string>
   </edit>
   </match> 
   <match target="pattern">
   <test qual="any" name="family">
   <string>sans-serif</string>
   </test>
   <test name="lang">
   <string>zh-cn</string>
   </test>
   <edit name="family" mode="prepend" binding="strong">
   <string>Source Han Sans TC Medium</string>
   <string>Source Han Sans SC Medium</string>
   </edit>
   </match> 
   <match target="pattern">
   <test qual="any" name="family">
   <string>monospace</string>
   </test>
   <test name="lang">
   <string>zh-cn</string>
   </test>
   <edit name="family" mode="prepend" binding="strong">
   <string>Ubuntu Mono Regular</string>
   </edit>
   </match> 

</fontconfig>

(如果不想copy&paste的话,我们也附了以上两个档案的压缩档。)

重新开机。

使用Google Chrome的人,清进入

设置 --》显示高级设置 --》 自定义字体,然后把所有字体选为思源黑体SC。

使用火狐也必须同样处理。

150813 补充:

附图是一张装设思源黑体后的截图,我个人觉得字体很清晰。如果有需要的话(如不同的显示环境),还可以把预设的次字型从Medium改成Light/UltraLight 或 heavy 等。

Noto 字型已可以直接从Ubuntu套件库装设,步骤如下:

sudo apt-get install fonts-noto-cjk

虽然 Noto 字型跟思源黑体只是名称不同而已,但因为Noto字体的套件是由Debian开发人员打包出来的(我们实在很怀念Ian Murdock,希望他在上天还继续领导着Linux桌面的发展),我个人觉得比后者好用。

如果要把Noto 设成default字型的话,可以参考下面的步骤:

1. cd  /etc/fonts/conf.d; sudo  rm  *arphic*  *zh*  *droid*

2. sudo cp /etc/fonts/conf.avail/69-language* /etc/fonts/conf.d

3. sudo sed -i 's/Droid\ Sans\ Fallback\|Droid\ Sans/Noto\ Sans\ cjk\ SC\ Regular/g' 69-language*

在16.04中将会默认集成并使用思源字体