LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 8736|回复: 33

总结,关于中文粗体

[复制链接]
发表于 2005-8-1 01:28:26 | 显示全部楼层 |阅读模式
近日,看到很多兄弟的贴图都里显示的都有粗体。(原来我也没注意我的系统中文没粗体─),羡慕之余,心痒难耐,禁不住也动手美化一番。其间系统有3此进不了X,好在现在都解决了。遂想把经验写下,方便和我一样还在迷茫于美化的兄弟。

总结论坛上实现中文粗体的法子不外乎三种(我只发现这么多哦)。
一是,使用修改过的粗体字。
二是,使用“替换”法,用方正粗宋或方正大黑,粗圆来显示中文的粗体部分。
三是,使用firefly的补丁。


从我使用的结果看,

第一种方法不改动系统的任何配置,只需下载到粗体字,安装上即可。这也是最彻底的方法,不仅在浏览网页时能显示粗体,而且在openoffice中也能显示。但显示的字体质量好坏,与你安装的粗体字的质量有很大的关系(这句话有点乱嚼舌头的嫌疑)。我得到的两套粗体字,一是公社cnhnln的作品,一是一位还不知道名字的大侠作的。都是他们汉水的结晶,在此对他们深表感谢。

下面可下到cnhnln作的VeraSansYuanTi全部8套字体。
http://www.ubuntu.org.cn/downloa ... nTi.tar.gz/download
下面是修改后的simsun粗体及粗斜体。
http://www.magiclinux.org/people/kanker/tools/fonts/?C=S;O=D
(感谢 blxiao  提供的链接)参见:http://www.linuxsir.cn/bbs/showt ... hlight=%B4%D6%CC%E5


第二种方法,先安装一个粗体的文字(像方正粗宋,大黑,粗圆等),然后在/etc/fonts/fonts.conf或家目录的.fonts.conf中添加一段代码。下面是我的fonts.conf的片段:


<match target="pattern">
            <test name="weight" compare="more">
               <const>medium</const>
            </test>
            <test name="family" compare="eq">
               <string>SimSun</string>
            </test>
            <edit name="family" mode="assign">
               <string>FZCuSong-B09S</string>
            </edit>
</match>
<match target="pattern">
            <test name="weight" compare="more">
               <const>medium</const>
            </test>
            <test name="family" compare="eq">
               <string>NSimSun</string>
            </test>
            <edit name="family" mode="assign">
               <string>FZCuSong-B09S</string>
            </edit>
</match>

说明:当SimSun遇到需要粗体显示时,用FZCuSong-B09S(方正粗宋)显示其粗体部分。
这种方法,好处是对系统只做些许修改,比较安全。而且,还可以换着花样玩粗体,每隔一段时间就变换一种粗体字。
缺点,由于我所得到的粗体字,方正粗宋,大黑,粗圆。不打开AA字体就支离破碎,打开AA大字十分漂亮,小字体就有点模糊。

第三种方法,是通过firefly的补丁,修改xft2字体渲染,虚拟出的粗体。是现在粗体显示最好的。但openoffice不通过xft2实现粗体,所以在openoffice要想显示粗体还得打相应的补丁。
废话说的太多了^_^,讲讲怎么做,我们只需要对xft2作修改就行了。

先说明,我的系统是sarge,对应的xft2是libxft2_2.1.7-1_i386.deb

在做之前,我们先做好万一改坏后的应对方法:
1,最简单的,到http://debian.cn99.com/debian/pool/main/x/xft/libxft2_2.1.7-1_i386.deb“把libxft2_2.1.7-1_i386.deb下载到硬盘。出了问题,重装。
2,备份/usr/lib/中的libXft.so.2.1.2(下面我要替换的就是此文件)

正式修改:
1,到“http://debian.okey.net/debian-uo/dists/sid/firefly/pool/xft/libxft2_2.1.2-6firefly_i386.deb”下载打了firefly补丁的libxft2的beb包。.
2,把这个deb包解压开,用ark就能办到。然后再解压其中的data.tar.gz。
3,到解压后的目录中(具体是/usr/lib/),找到libXft.so.2.1.1把它拷到你系统的/usr/lib/目录。然后把/usr/lib/目录里的libXft.so.2.1.2删处,再把libXft.so.2.1.1改名为libXft.so.2.1.2
4,在家目录的.fonts.conf中加入以下代码:(也可以第一步就先改好)
在此感谢zerolin兄提供的代码!参见:http://www.linuxsir.cn/bbs/showt ... hlight=%B4%D6%CC%E5
下面是我的.fonts.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>~/.fonts</dir>
<match target="font" >
  <test compare="eq" name="family" qual="any" >
   <string>Tahoma</string>
   <string>SimSun</string>
   <string>SimHei</string>
   <string>AR PL New Sung</string>
  </test>
  <test compare="more_eq" name="pixelsize" >
   <double>8</double>
  </test>
  <test compare="less_eq" name="pixelsize" >
   <double>16</double>
  </test>
  <edit name="antialias" >
   <bool>false</bool>
  </edit>
</match>
<match target="font" >
  <edit mode="assign" name="hinting" >
   <bool>true</bool>
  </edit>
</match>
<match target="font" >
  <edit mode="assign" name="hintstyle" >
   <const>hintslight</const>
  </edit>
</match>
<!--
Add by firefly@firefly.idv.tw
Artificial bold for fonts without a bold version.
-->
<match target="font">
<!-- check to see if the pattern requested > "medium" -->
<test target="pattern" name="weight" compare="more">
<const>medium</const>
</test>
<!-- pretend the font is bold now -->
<edit name="weight" mode="assign">
<const>bold</const>
</edit>
</match>

</fontconfig>

兰色的是我添加的部分。

5,重启X。

6,后记,我在一个多星期前下了“http://www.linuxsir.cn/bbs/attachment.php?attachmentid=27043   压缩包。一直未明使用方法,就始终闲置在我的硬盘中,今日打开一看,原来是已编译好的“libxft2_2.1.2-7firefly_i386.deb”安装包。试了一下,效果和上面的法子一样。想省事的朋友可下载。(由于时间久了,忘了是哪位兄台提供的链接,深感惭愧。不知是哪位打的包,在此感谢!)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2005-8-1 01:37:01 | 显示全部楼层
还有第四种


利用新的 FreeType
回复 支持 反对

使用道具 举报

发表于 2005-8-1 02:14:03 | 显示全部楼层
我今天正在学习这方面的问题,果然就有了。总结的好。赞。
回复 支持 反对

使用道具 举报

发表于 2005-8-1 07:08:12 | 显示全部楼层
做个标记
回复 支持 反对

使用道具 举报

发表于 2005-8-1 08:43:51 | 显示全部楼层
写的真是到位啊。过程同文件一并提供了。再有人说我的字体不好看,谁来帮帮我,那可就真的不应该了。

我个人到是很喜欢使用修改后的字体来美化。什么也不用装。效果也很不错。基本看不大出来。很是爽的慌。

顶起来再。
回复 支持 反对

使用道具 举报

发表于 2005-8-1 09:56:26 | 显示全部楼层
Post by jhuangjiahua
还有第四种


利用新的 FreeType



好象现在的unstable里面的freetype还无法实现
必须使用台湾的非官方源才能安装到能显示粗体的包,是吗
回复 支持 反对

使用道具 举报

发表于 2005-8-1 10:00:41 | 显示全部楼层
sid里面的freetype已经可以实现了,只不过要重新编译libxft让libxft知道freetype已经支持粗体了。
回复 支持 反对

使用道具 举报

发表于 2005-8-1 11:25:25 | 显示全部楼层
能不能具体说下如何重新编译?

另外,第一种方法中,加入粗体字体,网页中一句全粗体的句子,变成了中文粗体英文原样的状态,很是不协调
我没动过配置文件,用的是sans字体
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-1 12:03:35 | 显示全部楼层
Post by kofj
能不能具体说下如何重新编译?

抱歉,我自从使用debian后,就在没编译过任何东东,唉!人被debian惯的懒了。

Post by kofj
另外,第一种方法中,加入粗体字体,网页中一句全粗体的句子,变成了中文粗体英文原样的状态,很是不协调
我没动过配置文件,用的是sans字体

我不知你用的是那一个字体?
我在使用的过程中,都是把英文,中文,分别用不同的字体的,(具体说,英文是tahoma,中文是simsun)。由于tahome有粗体部分,所有我这没什么问题。
回复 支持 反对

使用道具 举报

发表于 2005-8-1 13:32:49 | 显示全部楼层
放simsun的字体文件夹中应该有fonts.dir和fonts.scale吧?我不知道这两个怎么写
所以就没写
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表