[分享]我的字体美化方案(Dapper+WQY+MSfont)(11.1 更新英文字体美化)

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
Vstar
帖子: 273
注册时间: 2005-10-03 14:13
来自: Tokushima, Japan
联系:

[分享]我的字体美化方案(Dapper+WQY+MSfont)(11.1 更新英文字体美化)

#1

帖子 Vstar » 2006-06-28 21:29

文泉驿字体做得确实很漂亮,而且还是开源的,因此对于系统字体的美化我选择了文泉驿。可是有时在和其他人交流文档时又不得不用MS的字体。在机器上装了MS字体之后,字体平滑问题一直很令我头痛,尤其在看一些网页时,整个网页一片模糊,如新华网。关闭了平滑之后,当字很小时又是一堆在一处,而且英文字体很难看。在Ubuntu 5.10时这个问题基本上得到了解决,而到了6.06使用以前的设置方法已经不管用了,参考了论坛、Wiki以及网上的一些文章,用了半天时间终于解决了所有问题。
预期目标:
1、使用文泉驿字体进行系统美化
2、安装MS的宋体(SimSun),宋体-18030(SimSun-18030),黑体(SimHei),楷体_GB2312(KaiTi_2312),仿宋_GB2312(FangSong_GB2312)
3、使用网页设定的字体浏览网页,如新华网一般在页面上规定宋体和楷体
4、对特定范围字体关闭AA
5、解决Firefox中文泉驿字体过粗问题
实现步骤:
1、安装文泉驿字体
新装的系统默认是没有安装make的,可以通过sudo apt-get install make来安装
cd ~
mkdir tmp
cd tmp
wget http://ftp.ubuntu.org.cn/wqy/wqy-bitmap ... ild.tar.gz
tar zxvf wqy-bitmapfont-bdf-nightly_build.tar.gz
cd wqy-bitmapfont
sudo apt-get install bdftopcf
make
sudo cp *.pcf /usr/share/X11/fonts/misc/
然后进行配置,使系统支持点阵字体
sudo gedit /etc/fonts/conf.d/50-xfonts-wqy.conf

把下面的代码粘贴进去,保存退出
<selectfont>
<acceptfont>
<pattern>
<patelt name="family"><string>WenQuanYi Bitmap Song</string></patelt>
</pattern>
</acceptfont>
</selectfont>
2、安装MS字体
cd /usr/share/fonts
sudo mkdir zh_CN
然后将MS的字体文件(simsun.ttc,SimSun18030.ttc,simhei.ttf,simkai.ttf,simfang.ttf)复制到zh_CN目录下,然后
cd zh_CN
sudo mkfontscale
sudo mkfontdir
sudo fc-cache

3、修改language-selector.conf文件(language-selector所指向的文件)
cd /usr/share/language-selector/fontconfig
sudo cp zh_CN zh_CN_backup
sudo gedit /etc/fonts/language-selector.conf
使用下面的代码替换掉里面的全部内容
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>Bitstream Vera Serif</family>
<family>DejaVu Serif</family>
<family>WenQuanYi Bitmap Song</family>
<family>SimSun</family>
<family>AR PL ShanHeiSun Uni</family>
<family>AR PL ZenKai Uni</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>Bitstream Vera Sans</family>
<family>DejaVu Sans</family>
<family>WenQuanYi Bitmap Song</family>
<family>SimSun</family>
<family>AR PL ShanHeiSun Uni</family>
<family>AR PL ZenKai Uni</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Bitstream Vera Sans Mono</family>
<family>DejaVu Sans Mono</family>
<family>SimSun</family>
<family>AR PL ShanHeiSun Uni</family>
<family>WenQuanYi Bitmap Song</family>
<family>AR PL ZenKai Uni</family>
</prefer>
</alias>
<match target="font" >
<test name="family" compare="contains" >
<string>Song</string>
<string>Sun</string>
<string>Kai</string>
<string>Ming</string>
</test>
<!-- check to see if the font is just regular -->
<test name="weight" compare="less_eq">
<int>100</int>
</test>
<test compare="more_eq" target="pattern" name="weight" >
<int>180</int>
</test>
<edit mode="assign" name="embolden" >
<bool>true</bool>
</edit>
</match>
<match target="font" >
<test name="family" compare="contains" >
<string>Song</string>
<string>Sun</string>
<string>Kai</string>
<string>Ming</string>
<string>宋体</string>
<string>宋体-18030</string>
<string>黑体</string>
<string>新宋体</string>
<string>新宋体-18030</string>
<string>楷体_GB2312</string>
<string>仿宋_GB2312</string>
<string>隶体</string>
<string>SimSun</string>
<string>SimSun-18030</string>
<string>SimHei</string>
<string>NSimSun</string>
<string>NSimSun-18030</string>
<string>KaiTi_GB2312</string>
<string>FangSong_GB2312</string>
<string>LiSu</string>
</test>
<edit name="globaladvance">
<bool>false</bool>
</edit>
<edit name="spacing">
<int>0</int>
</edit>
<edit name="hinting">
<bool>true</bool>
</edit>
<edit name="autohint">
<bool>false</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<test name="pixelsize" compare="more_eq">
<int>12</int>
</test>
<test name="pixelsize" compare="less_eq">
<int>24</int>
</test>
<edit name="antialias" mode="assign" >
<bool>false</bool>
</edit>
</match>
</fontconfig>
language-selector.conf前一部分为字体渲染顺序,这里把文泉驿字体提到了第二位,优先于原来的ShanHeiSun。中间那部分对字体进行加粗,由于文泉驿字体已经含粗体,再加粗会出现过粗问题,因此增加了一个条件,即仅在字体中不含粗体时加粗。后一部分设置字体属性,这里将列表中的字体,包括宋体等设为了在12px~24px之间关闭AA(即平滑效果),超过这个范围开启AA,使得屏幕上的字体更漂亮。需要注意的是,如果系统中不存在这其中的任一个字体,会使整个文件失效,系统默认采用fonts.conf进行配置。

按照上面的方法,即便是Bitstream和DejaVu排在前面,会令所有字体都使用文泉驿,包括中文和英文。如果想使用SimSun(微软的宋体)进行美化时,只要将SimSun放到中文字体的前面即可。不过这个时候所有英文字体会出现破碎,很难看。可以将下面的代码插入到</fontconfig>前面,使得英文字体使用DejaVu。

代码: 全选

<match target="pattern">
   <test qual="any" name="family" compare="eq">
      <string>sans-serif</string>
   </test>
   <edit name="family" mode="prepend" binding="strong">
      <string>SimSun</string></edit>
   <edit name="family" mode="prepend_first" binding="strong">
      <string>DejaVu Sans</string>
   </edit>
</match>
<match target="pattern">
   <test qual="any" name="family" compare="eq">
      <string>sans-serif</string>
   </test>
   <edit name="family" mode="assign" binding="strong">
      <string>DejaVu Sans</string>
      <string>SimSun</string>
   </edit>
</match>
<match target="pattern">
   <test name="family">
      <string>DejaVu Sans</string>
   </test>
   <edit name="family" mode="append" binding="strong">
      <string>SimSun</string>
   </edit>
</match> 

<match target="pattern">
   <test qual="any" name="family" compare="eq">
      <string>serif</string>
   </test>
   <edit name="family" mode="prepend" binding="strong">
      <string>SimSun</string></edit>
   <edit name="family" mode="prepend_first" binding="strong">
      <string>DejaVu Serif</string>
   </edit>
</match>
<match target="pattern">
   <test qual="any" name="family" compare="eq">
      <string>serif</string>
   </test>
   <edit name="family" mode="assign" binding="strong">
      <string>DejaVu Serif</string>
      <string>SimSun</string>
   </edit>
</match>
<match target="pattern">
   <test name="family">
      <string>DejaVu Serif</string>
   </test>
   <edit name="family" mode="append" binding="strong">
      <string>SimSun</string>
   </edit>
</match> 

<match target="pattern">
   <test qual="any" name="family" compare="eq">
      <string>monospace</string>
   </test>
   <edit name="family" mode="prepend" binding="strong">
      <string>SimSun</string></edit>
   <edit name="family" mode="prepend_first" binding="strong">
      <string>DejaVu Sans Mono</string>
   </edit>
</match>
<match target="pattern">
   <test qual="any" name="family" compare="eq">
      <string>monospace</string>
   </test>
   <edit name="family" mode="assign" binding="strong">
      <string>DejaVu Sans Mono</string>
      <string>SimSun</string>
   </edit>
</match>
<match target="pattern">
   <test name="family">
      <string>DejaVu Sans Mono</string>
   </test>
   <edit name="family" mode="append" binding="strong">
      <string>SimSun</string>
   </edit>
</match> 
当然,跟据个人口味,如果偏好Bitstream的字体,只需把这段代码中的DejaVu全都替换成Bitstream Vera就可以了。当然,将这一部分中的英文字体都替换成Times New Roman(要先安装这个字体才行),就真的成了M$的了,个人不喜欢。
现在感觉很不错,充分享受Ubuntu!


已知问题,本打算仅通过修改配置文件的方式来进行美化,结果发现了一些问题:
1、使用文泉驿字体进行美化时,evince内无法显示中文。
解决办法:可以用Adobe Reader来阅读pdf文档
2、使用Simsun进行美化后,加粗英文字体会出现破碎现象。使用文中的英文字体美化之后,会在Openoffice中无法更改字体,并且evince无法显示中文。
解决办法,不使用英文字体美化部分的方法,而是通过系统首选项中的“字体”把所有的字体项都设置为一个英文的字体,比如DejaVu Sans。
除此之外,还可以使用其它字体进行美化,有可能解决上述问题,如雅黑。
上次由 Vstar 在 2006-11-07 19:01,总共编辑 8 次。
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
联系:

#2

帖子 zhuqin_83 » 2006-06-29 3:22

好贴!非常到位。建议加精。
头像
karron
帖子: 6226
注册时间: 2005-06-11 14:03
来自: 不明真相的群众
联系:

#3

帖子 karron » 2006-06-29 8:08

不错的帖子,很有参考意义
我的blog,关于技术,软件,linux,vim <---- 所有博客均被河蟹.
monte
帖子: 6
注册时间: 2006-06-14 4:17

#4

帖子 monte » 2006-06-29 8:35

然后将MS的字体文件(simsun.ttc,SimSun18030.ttc,simhei.ttf,simkai.ttf,simfang.ttf)复制到zh_CN目录下,然后
我的windows下面怎么没有这些字体?而且我装了office
kuerbt
帖子: 305
注册时间: 2006-04-13 13:53

#5

帖子 kuerbt » 2006-06-29 9:14

不错,建议加精

或者,帖到twiki中

Ubuntu最好能整理一些基本的文章,集中一下,这样,新手比较方便
Vstar
帖子: 273
注册时间: 2005-10-03 14:13
来自: Tokushima, Japan
联系:

#6

帖子 Vstar » 2006-06-29 10:39

monte 写了: 我的windows下面怎么没有这些字体?而且我装了office
在C:\WINDOWS\Fonts下,名称为
宋体&新宋体(TrueType)
宋体-18030&新宋体-18030(TrueType)
楷体(TrueType)
仿宋体(TrueType)
黑体(TrueType)
复制出来后就是SimSun.ttc这样的文件名了
monte
帖子: 6
注册时间: 2006-06-14 4:17

#7

帖子 monte » 2006-06-29 10:57

Vstar 写了:
monte 写了: 我的windows下面怎么没有这些字体?而且我装了office
在C:\WINDOWS\Fonts下,名称为
宋体&新宋体(TrueType)
宋体-18030&新宋体-18030(TrueType)
楷体(TrueType)
仿宋体(TrueType)
黑体(TrueType)
复制出来后就是SimSun.ttc这样的文件名了
可能是因为我是英文系统 学少一些字体 simsun simhei我是有的
找同学帮忙传了一份 呵呵
foDDYY
帖子: 220
注册时间: 2005-05-19 9:47
联系:

#8

帖子 foDDYY » 2006-06-29 13:56

好文章。效果相当好...

不过即使运行了fc-cache -f -v,在openoffice中还是看不到中文的字体,是否和这个有关系呢?
Vstar
帖子: 273
注册时间: 2005-10-03 14:13
来自: Tokushima, Japan
联系:

#9

帖子 Vstar » 2006-06-29 15:05

foDDYY 写了:好文章。效果相当好...

不过即使运行了fc-cache -f -v,在openoffice中还是看不到中文的字体,是否和这个有关系呢?
在openoffice里显示的应该是SimSun、SimHei之类的名称,好像打过补丁openoffice可以显示中文名,我没用过。如果没有,可以打开含有中文字体的目录下的fonts.dir和fonts.scale文件,看看里面是不是空的,如果是空的,把这两个文件都删掉,再用sudo mkfontscale和sudo mkfontdir 重建一下,最后再刷新字体缓存试试。
不过文泉驿字体始终在openoffice里看不到,估计应该是点阵字体的缘故
蓝-蜗牛
帖子: 29
注册时间: 2006-06-29 15:38

#10

帖子 蓝-蜗牛 » 2006-06-29 16:09

这贴很好 收常了。。。
newbuntu
帖子: 42
注册时间: 2005-12-05 10:03

#11

帖子 newbuntu » 2006-06-30 4:17

这法子太好了,和ms相比,丝毫不逊色。不过碰到一个新问题,用firefox 时,有些网页(如多维,中新网,新雨丝论坛等),文章的题目和正文一样大小,但用opera却没有这个问题。
foDDYY
帖子: 220
注册时间: 2005-05-19 9:47
联系:

#12

帖子 foDDYY » 2006-06-30 8:19

zh-cn目录里的fontsscale和fontdir文件里是有内容的,即使删除了重新建立字体缓存,在openoffice里面还是显示不出来。另外,又复制了tahoma和verdana字体后,在系统-首先项-字体里选择tahoma和verdana字体后,预览效果里的中文全部成了方块了,有点象dapper刚刚出来时,自己安装windows字体时的显示效果。还有,lumaQQ对话框里的字体也成了方块了,不过这个可能和我为了mercury的显示效果更加好些,按照linuxsir上的文章更改了java的字体文件有关系。
djleon
帖子: 41
注册时间: 2006-05-20 13:43
来自: Shanghai

#13

帖子 djleon » 2006-07-01 16:36

楼上的朋友注意一下字体文件的访问权限
lotus
帖子: 5
注册时间: 2005-05-08 12:36

#14

帖子 lotus » 2006-07-01 21:17

如果没有root的权限
能不能作呢?
jk88811
帖子: 55
注册时间: 2006-02-16 9:42

#15

帖子 jk88811 » 2006-07-03 19:31

照做以后效果确实不错。。。

不过请问 控制台下的英文 为什么看上去好丑了?

我到字体设置中改来改去,只发现等宽字体对控制台下的文字起作用。

请问如何解决?
[/img]
回复