flytod 发表于 2005-12-11 14:03:26

我理解的字体美化中粗体的几个入门概念。(关于字库,修改过)

初学,请拍。最开始发布在ubuntu.org.cn。

我理解的字体美化中粗体的几个入门概念。
[email protected]

以前只是关心linux中文化,对美化只是在装了ubuntu
5.10后才接触的概念。周五根据论坛上的帖子试验了几次,效果出来了,但思路比较乱。周日仔细的从网上理解一下,学习了很
多东西。下面是自己的体会和理解,希望能对初次美化的人有所帮助,如有不对,请拍。

一般说的美化,着重的粗体显示,尤其在浏览器中的。

=======================================================
首先说说字体的概念,linux里主要使用的是TrueType字体,这是一种矢量字体。屏幕上总是显示一个个点的,这就有个矢量->
点阵的转换。

在小字体下,这种效果一般都不是很好。所以为了显示效果,一般TrueType字库(尤其是中文的)都内嵌了几个小标号时的点阵
字体,比如,9,10.12.14。而在这么小的字体下面,字体间的区别就很少了。

字库也有开源和商业之分。在美化中,最方便的就是直接copy使用windows自带的simsun字体。

ttc和ttf的区别:
在一些文档中常看到simsun.ttf,simsun.ttf。其实windoow下的宋体,新宋体都是中易公司版权的字库。simsun.ttc里含有两
个字体 SimSun和NSimSun(宋体,新宋),所以文件名用extension ttc(TrueType Collection)。
(注:http://www.linuxforum.net/forum/printthread.php?Cat=&Board=chinese&main=280415)

这点可以在window的字体管理器中看出,打开simsun.ttc,首先显示的是宋体,上面的右箭头表示可以继续浏览下一种字体,点
下去,看到就是新宋体。而同目录下的黑,楷等就没有。而这些的后缀名就是ttf。

http://www.magiclinux.org/people/kanker/tools/fonts/ 也可下载宋粗,还有宋斜体,宋粗斜的。

最开始,在linux上安装了simsunblod后,感觉还可以,但后来总觉得不对,
1,中字号的宋粗比window看到的要粗一些,而且锯齿比较严重
2,标点有问题,本应在下面的跑到上面去了,本应在上面的跑到下面来了,上下颠倒。
3,有些字在宋粗时显示不出来,不能确定字库有缺字,还是原有字库已经损坏。
4,英文没有变粗,(此点在加装了英文字体的粗体后解决)

周末在家中研究的时候,在xp上装了宋粗,终于发现了问题。下面的截图(winxp+IE,word2003)可以看到安装了普通宋体变粗,
和宋粗体的区别。左侧是只装了普宋后的粗体显示情况,右侧是装了宋粗后的情况。

《截图见附件》

winxp上安装了那个simsunbold.ttf后,看到的粗体效果和ubuntu上装上后看到的效果是一样的。这时候才发现是说,以前window
上的粗体效果是系统利用算法自己实现的,只能算是笔画加粗。比真正的粗体要细一些。而真正的粗体真的很粗。

利用simsunblod.ttf字库美化在:http://forum.ubuntu.org.cn/viewtopic.php?t=3993可以找到详细步骤

还有修改过的VeraSansYuanTi字库,http://forum.ubuntu.org.cn/viewtopic.php?t=513有VeraSansYuanTi 美化的详细步骤。
simsun,VeraSansYuanTi等字库毕竟使用了商业字库,更pure的开源使用者提供了开源的字库(含粗体)如文泉驿字库。

=======================================================

美化中经常碰到的概念freetype,fontconfig,Xft的关系。
在http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&p=4532999&highlight=#4532999
已经描述的很清楚了:

《《《以下是引用《《《
一、包功能说明
freetype: 主要是画字用的,从字体文件中提取字体图像
fontconfig: 是用于字体选择控制的,实现像windows一样的字体名称-大小的选
取方法,早期字体选取要这样:
-misc-simsun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
libXft: 按照fontconfig中要求选择的字体,然后用freetype取字体的图像,然
后画到屏幕上

二、firefly补丁说明
firefly的补丁,主要是用作模拟粗体。
libXft补丁: 比如simsun没有粗体,于是firefly的libXft补丁,从freetype中
取出字体的图象,按线条加粗,画到屏幕上这就变成粗体了。
fontconfig补丁: fontconfig是按字体文件的信息,来列举字体给用户选择的,
又比如simsun字体因为没有粗体,所以即算libXft中模拟了粗体,fontconfig
也不知道,firefly的fontconfig补丁就作了这个判断。(当然fontconfig还作了
其他优化比如按CJK编码来现实字体的名称,咖非码控制等,这些都是firefly的
早期补丁中所作的事,那时候还没有在fontconfig中做fake粗体的功能,于是qt
和pango还必须打补丁由他们自己来判断是否模拟粗体,现在已经不要了。)
freetype补丁 对字形做了一些处理,主要也是为粗体实现服务的。

值得一题的是,firefly还在openoffice粗体方面有贡献,但因为他的补丁被广泛
的滥用,而他本人又似乎没有得到相应回报和尊重(主要得不到官方的认同,某
些人甚至对他嗤之以鼻),好像有逐渐淡出之感。

上面的字体补丁firefly已经没有对新版做维护了。

《《《以上是引用《《《

更详细,全面的,请看:http://www.linuxidea.org/index.php?title=%E4%B8%AD%E6%96%87%E5%8C%96
我也还在学习中。另外有个Cairo的概念,可以google一下,也还在理解中。

就我的理解,这些补丁实现的作用就是类似window中的粗体效果,只是笔画变粗。实际的实施步骤和全面补丁见xufan106的帖子
:http://forum.ubuntu.org.cn/viewtopic.php?t=3676给出来详细的步骤。上周末没有成功,发了帖子后,xufan106发了一个
to菜菜菜鸟版的,我喜欢。初接触粗体的同学应该也喜欢。

=======================================================

在maniac的帖子(http://forum.ubuntu.org.cn/viewtopic.php?t=4945)里说了:
《《《以下是引用《《《
Linux下中文粗体的支持,就我所知,应该有一下几种
1.使用内嵌粗体的字体(比如圆体)
2.使用独立的粗体字体(simsun-bold.ttf)
3.使用firefly补丁过的libXft (http://forum.ubuntu.org.cn/viewtopic.php?t=942)
4.使用补丁过的freetype( http://forum.ubuntu.org.cn/viewtopic.php?t=1039)
《《《以上是引用《《《

其实归纳起来,就是两种:使用粗体字体,系统打补丁。

=======================================================

打补丁实现的粗体方式,适合在Firefox和部分软件中使用,但在比较老软件下,应该是不行的,另外,在OpenOffice下面,这
种方法也不能实现粗体,需要oo打补丁。

linux公社的高质量字体研究版
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewforum&f=22有很多不错的文章。

就个人在xp中安装了宋粗的字库过程,感觉粗体字库不如打补丁好看,
粗体字库太粗了;)在windows下面看普宋粗习惯了。周一再去把安装的粗体字库卸掉,试验一下打补丁。再弄不好也不想弄了
,太费时间了,linux拿来用就好了。希望ubuntu下个版本能较好的实现中文美化和粗体,或则国内官方的源能自己补上。

cnhnln 发表于 2005-12-12 12:19:33

1.VeraSansYuanTi与开源和自由没关系,用的都是商业字体改来的
2.宋粗,还有宋斜体,宋粗斜 虽不知来源,但是肯定是个人行为,改的并不完美,所以才会有一些使用上的问题

还是马夹 发表于 2005-12-14 05:48:31

LZ的那个宁粗真的好丑..

偶现在就觉得圆体在LINUX最简单如果不注重粗体的话..cp了之后开AA就成了
页: [1]
查看完整版本: 我理解的字体美化中粗体的几个入门概念。(关于字库,修改过)