LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: quanliking

Linux 字体微调 - Vista 效果版

[复制链接]
发表于 2006-8-25 12:49:36 | 显示全部楼层
Post by quanliking
这个问题不大,我下午努力一下,把 for etch 的补丁包弄好。

还要说明一点,我是老实本份的人啊!因为有需求,我就只管写,版权问题我不懂,不要来找我啊!
话又说回来,好比我 DIY 将一个 MS Xbox 改装成 pc 来用,是不是还得付版权费。MS 她要推广 Vista,是否应该将字体免费让人家使用,说不定我无形之中为 Vista 推销了一把,MS 是否该给我发工资呢!


哈哈,说的好
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-25 13:25:55 | 显示全部楼层
Post by proyj
升级到sid还用打哪几个deb包吗?我现在没做修改粗体已经支持了

现在流行的发行版粗体支持都没有问题,就是没粗体给你用算法合成一个出来,同样没斜体也给你合成一个出来。

这些补丁包目的不是用来解决这些问题,而是增强你的 LCD 显示效果,所以不管你是否用 vista 或 xp 或 linux 提供的字体,都会有好处的。当然前提是你认为漂亮了

为什么这些补丁没进入主流发行版,是因为 MS 在 2001 年宣称 ClearType 是她自己的专利,而事实上 Apple II 的工程师早在 1976 年就已经在使用类似技术。补丁的作者不能确定他所使用的算法是否会侵权,故没加进来。

具体典故见:
http://www.grc.com/cleartype.htm
http://www.microsoft.com/typography/ClearTypeInfo.mspx

道理就像是 Apple 的部分 truetype hinting 专利,如果你要使用该专利,需要向 Apple 买份 licence。
freetype 通过逆向工程包含了涉及这些专利的 hinting 代码,现在的发行版都采取两手准备,即可以不默认开启 hinting 支持,而使用后来开发的 autohint 技术,但以补丁的形式保留 hinting 部分代码,如果你有 Appple licence,可以自己编译 freetype,打开该开关,从而使用 hinting 技术。

而 Debian / Ubuntu 以及很多其它的发行版默认都开启了 hinting 支持,所以你才能看到很漂亮的 truetype 字体。
那么请问,现在很多人都在使用 hinting,包括你可能不知不觉已经在使用这些专利,是否已经侵权了呢!?
Apple hinting 专利问题见:
http://freetype.sourceforge.net/patents.html

所以说这年头想不侵权都难,本来就应该是一些属于公共领域的技术。幸好没有人申请睡懒觉专利,否则困得要命啊:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-25 14:29:55 | 显示全部楼层
系统中实际存在字体和网页 CSS 指定字体的矛盾
--------------- 一个做字体调整必须引起足够重视的问题 ---------------------------------

网页设计者会在页面 CSS 中为网页不同部分指定不同的字体,来达到风格的多样化,比如你在 windows 下打开 www.yahoo.com 就可以看到效果。
通常他们会指定一些最常见的字体,如  MS 的 Arial, Verdana, Georgia, Times New Roman, Andale Mono, Courier New, Adobe 的 Helvetica,
Times,Courier 等等。有时候他们会指定一个字体列表,比如 body{font:13px arial,helvetica,clean,sans-serif;},那么用户的网页浏览器会按照先后顺序在自身系统中查找匹配字体,如果不存在这些指定的字体,则用相近的字体来替代。

问题表面上看起来很和谐,而且对于 windows 用户来说,一般不会出大问题,因为大部分的网页都是在 windows 上设计的,会优先指定 windows 字体。
但对于 Linux 用户来说,往往并不是好事,因为通常他们的系统中缺乏该类字体,只好用相近的字型来替代,这样做的结果就是你看不到网页的原貌或者是你不愿意看到的效果。一般用户不知道系统会使用那种替换字体,此时面对这样的情况会一筹莫展,唯一能做的事就剩下抱怨。

举个例子来说:
比如我的系统并没有装 MS core fonts 包和 Adobe 字体,即不存在 arial,helvetica 等字体。但系统中存在这样一个字体包 xfonts-base,这是一个必须安装的字体包,否则 X 将无法进入,该包里恰巧提供了 clean 字体,pcf 格式,monospace 等宽字体,而且只有唯一一个字号:
  1. $ fc-match clean
  2. clR6x12-ISO8859-1.pcf.gz: "Clean" "Regular"
复制代码
你可能还没意识到问题的严重性,但当你用 firefox 打开 www.yahoo.com,不高兴看到的事情发生了,见附件一。
body 里看到的字体用的是细细小小的 clean,更糟糕的是,不管你如何的放大,clean 稳丝不动。
原因很简单,首先  body{font:13px arial,helvetica,clean,sans-serif;} 中有 clean,其次 pcf 是点阵字体,没法缩放,而且效率极差。
面对这样的情况,你会如何处理?
一部分疯狂的用户采取的办法是重装系统,结果是白忙一场。
有经验的用户会打开 firefox 的 Preferences -> Advanced,然后选择自己喜欢的字体,再把 Allow pagaes to choose their fonts,instead of my selections above 前面的勾去掉,最后是经过“漫长的等待"。这样做的结果是完全覆盖了设计者的意图,网页只有一种字体风格,比较暴力,而且每次这么做很烦。
高级用户会拷贝 windows 字体或安装 MS core fonts 包,因为里面包含了  arial。或者干脆把 clean 字体从字体目录移开,让系统自己选择。
移开后的效果见附件二。

看似天下又太平了。但对于 Linux 玩家来说,还远远不够。
设计师绞尽脑汁改善网页效果,但每个用户的审美观不同,比如很多人不喜欢 arial,这些是设计师所没法预见的。更有很多并不专业(或者说不负责)的设计者会在网页中使用稀奇古怪的字体,而这些字体大多数人系统中不可能找到,接下来情况可想而知了。

难题又一次摆在面前,用户有权力选择自己喜欢的字体,而设计者永远不可能做到让每个用户满意,就像是他们之间没有终点的无硝烟战争。
此时玩家能做的就是 DIY 了。

写这个的目的,是因为现在不少人对 Linux 下字体的不满,觉得为什么不弄一个安装程序,点一下就 OK 了。
要考虑到大家的系统中都堆了一堆的字体,一打的配置文件,这些字体或配置都可能对我给的配置产生影响。
比如我在自己机器上测试配置文件时,我的系统很干净,系统给的字体包只保留了两个  xfonts-base 和 ttf-opensymbol(一些符号图形)。
这样的话,我可以不受干扰的测试 Vista 字体,而到了别人的机器上,效果可能完全不同,就像上面的例子,比如你有 Arial,可能就不会用 Vista 字体给你显示了,这时你可能会想不通,为什么一样的配置文件到了自己的机器上,出来的效果相差很大,比如字体模糊丑陋等等。看了我的经历,你应该能大概确定一下问题的原因了吧!

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-25 15:34:35 | 显示全部楼层
Post by xiaopaozi
一定要打补丁吗?我现在用的是etch,那几个lib的版本与楼主的不一样,不知道能不能打这个补丁?打了补丁就不能升级了,其实是鱼与熊掌啊,呵。
我的lib版本:
libxft2  Version:2.1.8.2-8
libcairo2  Version: 1.2.2-1
libfreetype6 Version:2.2.1-2

打好 ClearType 补丁的 Etch 包裹已经上传,到这里下载:
http://quanli.googlepages.com/
感觉就是 libcairo2 版本稍低些,打包指令和 sid 完全一样,以后版本更新时,大家可以尝试自己打包。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-25 17:17:40 | 显示全部楼层
忘了三宝贝:
Segoe script
Segoe print
Segoe media center light
见截图。

大家自己在 ms_vista_english.conf 里加吧!

  1.         <match target="font" >
  2.                 <test qual="any" name="family" compare="eq" >
  3.                         <string>Segoe UI</string>
  4.                         [color=red]<string>Segoe Print</string>[/color]
  5.                         [color=red]<string>Segoe Script</string>[/color]
  6.                         [color=red]<string>Segoe Media Center Light</string>[/color]
  7.                 </test>
  8.                 <edit name="rgba" mode="assign">
  9.                         <const>rgb</const>
  10.                 </edit>
  11.                 <edit name="antialias" mode="assign" >
  12.                         <bool>true</bool>
  13.                 </edit>
  14.                 <edit name="autohint" mode="assign" >
  15.                         <bool>false</bool>
  16.                 </edit>
  17.                 <edit name="hinting" mode="assign" >
  18.                         <bool>true</bool>
  19.                 </edit>
  20.                 <edit name="hintstyle" mode="assign" >
  21.                         <const>hintslight</const>
  22.                 </edit>
  23.         </match>
复制代码

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2006-8-25 19:49:25 | 显示全部楼层
>>7) 由于不少网站会指定 SimSun/PMingLiU 来显示网页,为了做到浏览时的一致效果,我修改了这两款字体,SimSun 改名为 SimSunNew, 将 PMingLiU 改名为 PMingLiUNew,同样上传到上述邮箱。
没看明白啥意思。是把原来SimSun 改名为 SimSunNew?那系统请求simsun显示的时候,不是还找不到吗
回复 支持 反对

使用道具 举报

发表于 2006-8-25 20:02:35 | 显示全部楼层
字体太多了,能不能打包在一起合成一个阿
回复 支持 反对

使用道具 举报

发表于 2006-8-25 20:07:27 | 显示全部楼层
Monotype Arial, Linotype Helvetica, 分别是Windows, MacOS标准字体,Arial也存在于大部分Mac系统中,Schumacher Clean是X11必带的,都是无衬线字体,Arial模仿Helvetica,Clean和前两者也比较像,所以Yahoo考虑得很周全。
回复 支持 反对

使用道具 举报

发表于 2006-8-25 20:10:39 | 显示全部楼层
Segoe的两款手写体,我倒还没看过,不错。
回复 支持 反对

使用道具 举报

发表于 2006-8-25 20:12:05 | 显示全部楼层
Post by cnhnln
>>7) 由于不少网站会指定 SimSun/PMingLiU 来显示网页,为了做到浏览时的一致效果,我修改了这两款字体,SimSun 改名为 SimSunNew, 将 PMingLiU 改名为 PMingLiUNew,同样上传到上述邮箱。
没看明白啥意思。是把原来SimSun 改名为 SimSunNew?那系统请求simsun显示的时候,不是还找不到吗


他的意思就是要让浏览器找不到。
回复 支持 反对

使用道具 举报

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

本版积分规则

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