可缩放字体:它类似于矢量图形,是利用曲线公式来描绘字框,记录的是笔画和显示方式而不是具体内容,能按照需要进行任意尺寸的缩放或其它变形,例如倾斜。因此单独一个字体就可以显示多种不同字号的字型。但是计算相对点阵字体耗时。常用代表字型就是 TrueType(ttf),它是由 Apple 及 Microsoft 为了对抗 Adobe 的 PostScript 所共同制定,开放标准。并且由系统直接提供支持,不需外挂其它管理程序
点阵字体(位图字体)和可缩放字体(矢量字体)的关系就类似于 wav 和 midi、psd 和 ai 的关系
TrueType 字体分类
变宽、等宽:TrueType 字体分成两种,一种是每个字符宽度不一样,比如 w 与 i 就不等宽。它是在每个字符中纪录该字符的宽度,大多数的 TrueType 都是这种格式
另一种就是固定字距。也就是每个字符宽度都一样,这样显示或打印时,会有对齐效果,比较美观。只有把等宽字体用在虚拟终端才不会出现字符重叠的现象
例如:bitsteam vera sans 就是变宽的比例字体,而bitsteam vera sans mono 就是等宽的字体
衬线、无衬线:Serif(某些印刷体字母各端部的短线)就是衬线的意思,例如 M 的起点于终点、T的左右两端。它是由罗马刻印字母所发展出来的,用以改良字体的优雅程度与易读性。它们是先用毛笔写在石头上,然后再刻出来的。Serif 会活存到现在,是因为它们十分美丽及古典,而且它们阅读起来比较容易。它的特点是字体粗细对比明显,比较省眼力。适合作为段落文字使用。特别是对于细小的文本字体,非常适合用。例如 Times New Roman
Sans Serif(Sans 是法文里的“无”,有时也简写作 Sans)就是无衬线,就是边缘是方的字。sans serif 一般字体用作较短的文字或者装饰用。但是大段看多了之后眼睛容易累,所以正文都是用serif字体。它的特点是字体粗细平均,对比不明显,阅读时比较费力。适合作为标题使用,不宜作为正文大段显示。例如 Arial、Verdana、Tahoma、Helvetica 等等
anti-alias(反锯齿、字体平滑):是针对可缩放字体的技术,会让字体边缘看起来圆滑、无锯齿。它将字型先在幕后以数倍的大小来绘制,然后再缩成想要的大小,未能占满一格像素(pixel)的格子就用灰色填补。所以对于大字体,因为相应的笔画变粗,字体边缘的灰阶相对整体变少,所以效果很好。小字体时类似于英文这些笔画较少、相对简单的字符文字也会好看些,但是对于部分中文矢量字体就会导致在小字体时因边缘灰度过多而看起来模糊发虚
图中左边是无 AA 的效果,右边是 AA 后的。可以明显看到 AA 效果
这里有 AA 的详细信息 http://www.truetype.demon.co.uk/ttalias.htm
http://www.widearea.co.uk/designer/anti.html
http://www.microsoft.com/typography/links/link9.aspx
修改字体属性: Edit--Properties 删除 Delete 或者修改某属性后 Update 保存即可。例如 COPYRIGHT、FAMILY_NAME、FOUNDRY 之类的。修改完之后记得 Edit--Font Name--Update Name From Properties 一下,就可以在主界面的 Font 栏看到 Name 变化后的效果。也可以直接更改 Font 栏的内容,然后用 Edit--Font Name--Update Properties From Name 命令从字体名更改属性。有关其中字体名的详细写法和意义可以参看
导入字体:
基本上没什么好说的,提一下其中的 File--Import--Server Font 命令。gbdfed 默认情况下导入 TureType 字体只能是 iso10646 编码的。如果实际内嵌点阵没有对应大小的字符时,它会根据对应编码位的矢量字用算法生成点阵。当然效果肯定没有人力手工制作并嵌入的点阵效果好。举个例子:用 File--Import--TrueType Font 命令导入的 simsun.ttf 会自动生成 latin 1 部分的点阵一样,而实际 simsun 只内嵌有 GB 编码的中文字
如果想导入 GB2312 或者 GBK 之类的话。先按照正常方法安装你想提取点阵的字体,关键就是配置 X 核心字体子系统部分,使它能识别这个字体,特别是要写对 fonts.dir 文件。然后用 File--Import--Server Font 命令就能正常导入、导出其它多种编码的点阵字了。并且在导入字体时可以直接给出字号、分辨率以便提出符合要求的点阵
fonts.dir 的具体写法可以参看 Linux字体设置fonts.dir文件分析: http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=82950&highlight=fonts.dir
[/list:u]
还要说一下,这个工具对 bdf 文件的格式要求很严格。用 fontforge 或者 sbit32 提取出的 bdf 字体不能够打开,导致应用起来有些困难
gbdfed 更详细的用法可以参看 man 手册、help 或者 http://crl.nmsu.edu/~mleisher/xmbdfed-doc.html
Element 菜单下的 Merge fonts 直接导入进行合并。注意:如果 A 字体包含了 B 字体里的字符的话,最好是在 B 的基础上进行合并。例如我想用 tahoma 替换掉 simsun 里的相同部分。因为 simsun 已经包含了tahoma 里的字符,所以如果以 simsun 为基础合并 tahoma 的话,仍然会保留 simsun 原有的部分,而不是进行替换。应该打开 tahoma,然后合并 simsun
合并之前还要注意两个字体的 Em Size 是否相同,否则可能会导致字体大小不一、不成比例。一般规定 PostScript 字型是1000,truetype 字型用2的次方(常是2048或4096)。可以通过 Element 菜单下的 Font info 内的General 进行修改。Ascent、Descent、Underline position 和 Height 也最好能一样
如果你并不想完全替换为另一字体的话,也可以先删除你不想要的部分字符后再进行合并
[/list:u]
修改字体,实现粗斜体:
系统是根据字体的 Family 是否一样来判断两款不同的字体究竟是不是能够互相搭配的一套的。而字体名只是起一种标示、区别字体的作用的。所以修改 Family 就是将不同字体变为同种,实现相同显示要求的关键。而 Weight 则用来鉴别字体是粗体还是常规字体。
分别打开每个要修改的字体后,点击 Element 菜单下的 Font info 项,修改 Names 选项卡中的 Family Name 和 Weight。TTF Values 选项卡中的 Weight Class 也进行修改。还有 Panose 选项卡中的 Weight。以及 TTF Names 选项卡中的内容。这在下面的例子中会详细提到
制作斜体:
可以执行 Element 菜单下的 Transform 然后在新弹出的对话框中改变第二个选框内的内容为 Skew,然后调整其后的倾斜度数值即可。在把字型修改成斜体后,还需要执行Element->Add Extrema (因为倾斜字体之后,垂直切点会移位,所以要在新的垂直切点上加上新的曲线点)
我这里以方正圆体和 Bitstream Vera Sans 为例。用方正准圆作为“常规”字体显示,方正粗圆作为“粗体”显示。统一改为 Vera Sans YuanTi。“斜体”由“常规”字体生成,“粗斜体”由“粗体”生成。其中与 Bitstream Vera Sans 相同的部分全部进行替换
没用中文名的原因是在不打 firefly( http://firefly.idv.tw/setfont-xft/ )补丁的情况下 linux 无法显示中文字体名
点击菜单栏的 Element--Font Info Fontname 改为 Vera Sans YuanTi_JT(这一步的修改将显示为 PostScript 名。右键--属性,Meta 信息就可看到) Family Name 改为 Vera Sans YuanTi Name For Humans 改为 Vera Sans YuanTi(这一步不改也可以,但为了统一我还是改了) Weight 改为 Medium(MS 带的字体这里均为 Book,你不改也可以)
关键是 Family Name 应该和你将用的"粗体"统一,名字可以任意。我用 Vera Sans YuanTi
点击菜单栏的 Element--Font Info Fontname 改为 Vera Sans YuanTi-Bold_JT(这一步的修改将显示为 PostScript 名。右键--属性,Meta 信息就可看到) Family Name 改为 Vera Sans YuanTi Name For Humans 改为 Vera Sans YuanTi Bold(这一步不改也可以,但为了统一我还是改了) Weight 改为 Bold
关键是 Family Name 应该和你将用的"常规"统一,名字可以任意。我用 Vera Sans YuanTi
切换到 TTF Values 选项卡 Weight Class 改为 700 Bold
切换到 Panose 选项卡 Weight 改为 Bold
切换到 TTF Names 选项卡
在下面第二个选框内选择 Chinese(PRC)zh_CN
确认第一个选框内的内容为 Styles(SubFamily),此时将下面输入框内的内容改为 Bold
改变第一个选框内的内容为 Family,此时将下面输入框内的内容改为 Vera Sans YuanTi
改变第一个选框内的内容为 Fullname,此时将下面输入框内的内容改为 Vera Sans YuanTi Bold
改变第一个选框内的内容为 UniqueID,此时将下面输入框内的内容改为 Founder:Vera Sans YuanTi Bold
然后将下面第二个选框内选择 English(US)en_US(这里字体所支持的语言会用不同颜色显示,直观明了。方便选择)
做于 Chinese(PRC)zh_CN 类似的修改。即修改 Styles(SubFamily);Family;Fullname;UniqueID 四部分
点击 OK 关闭对话框后。如果弹出窗口提示不匹配,询问是否改变的话,点击 Retain All。不做改变
选择 File--Generate Fonts,选择 True Type,点击 Save后生成字体。文件名可任意。我取为 Vera Sans YuanTi_bold。ttf。如果弹出窗口提示什么 Em Size 的话不用理会,点击 yes 确定
[/list]
制作"斜体"(与制作"常规"字体类似,我就简单复制了阿 )
安装完成 fontforc e后,在终端里输入 fontforce 运行。在弹出的界面里载入刚才修改过的常规字体(Vera Sans YuanTi_regular.ttf)
点击菜单栏的 Element--Font Info Fontname 改为 Vera Sans YuanTi-Italic_JT(这一步的修改将显示为 PostScript 名。右键--属性,Meta 信息就可看到) Family Name 改为 Vera Sans YuanTi Name For Humans 改为 Vera Sans YuanTi Italic(这一步不改也可以,但为了统一我还是改了) Weight 改为 Medium(MS 带的字体这里均为 Book,你不改也可以)
关键是 Family Name 应该和你将用的"粗体"统一,名字可以任意。我用 Vera Sans YuanTi
在弹出的警告对话框中点击 OK 确定。如果弹出什么错误提示的话不用理会,一路回车。完成后会看到字体已变为斜体。接着按照刚才的警告执行Element--Add Extrema
最后选择 File--Generate Fonts,选择 True Type,点击 Save 后生成字体。文件名可任意。我取为 Vera Sans YuanTi_Italic.ttf。如果弹出窗口提示什么 Em Size 的话不用理会,点击 yes 确定
[/list]
制作"粗斜体"
安装完成 fontforc e后,在终端里输入 fontforce 运行。在弹出的界面里载入刚才修改过的粗体(Vera Sans YuanTi_bold.ttf)
点击菜单栏的 Element--Font Info Fontname 改为 Vera Sans YuanTi-BoldItalic_JT(这一步的修改将显示为 PostScript 名。右键--属性,Meta 信息就可看到) Family Name 改为 Vera Sans YuanTi Name For Humans 改为 Vera Sans YuanTi Bold Italic(这一步不改也可以,但为了统一我还是改了) Weight 改为 Bold
关键是 Family Name 应该和你将用的"粗体"统一,名字可以任意。我用 Vera Sans YuanTi
切换到 TTF Values 选项卡 Weight Class 改为 700 Bold
切换到 Panose 选项卡 Weight 改为 Bold
切换到 TTF Names 选项卡
在下面第二个选框内选择 Chinese(PRC)zh_CN
确认第一个选框内的内容为 Styles(SubFamily),此时将下面输入框内的内容改为 Bold Italic
改变第一个选框内的内容为 Family,此时将下面输入框内的内容改为 Vera Sans YuanTi
改变第一个选框内的内容为 Fullname,此时将下面输入框内的内容改为 Vera Sans YuanTi Bold Italic
改变第一个选框内的内容为 UniqueID,此时将下面输入框内的内容改为 Founder:Vera Sans YuanTi Bold Italic
然后将下面第二个选框内选择 English(US)en_US(这里字体所支持的语言会用不同颜色显示,直观明了。方便选择)
做于 Chinese(PRC)zh_CN 类似的修改。即修改 Styles(SubFamily);Family;Fullname;UniqueID 四部分
点击 OK 关闭对话框后。如果弹出窗口提示不匹配,询问是否改变的话,点击 Retain All。不做改变
在弹出的警告对话框中点击 OK 确定。如果弹出什么错误提示的话不用理会,一路回车。完成后会看到字体已变为粗斜体。接着按照刚才的警告执行Element--Add Extrema
最后选择 File--Generate Fonts,选择 True Type,点击 Save后生成字体。文件名可任意。我取为 Vera Sans YuanTi_bold_Italic.ttf。如果弹出窗口提示什么 Em Size 的话不用理会,点击 yes 确定
[/list]
替换字符:
逐字复制粘贴:
还以上面的方正圆体和 Bitstream Vera Sans 为例。用 Bitstream Vera Sans 替换掉与方正圆体里相同的字符,如果圆体里没有某个字符的话就直接用 Bitstream Vera Sans 补足(如果你觉得 Bitstream Vera Sans 太粗、字体间距大的话也可以用 windows 的 arial 甚至是 tahoma)
注意字体的搭配,斜体配斜体,粗体配粗体。下面以粗斜体为例
运行 fontforge,分别打开 /usr/share/fonts/bitstream-vera/VeraBI.ttf(Bitstream Vera Sans 的粗斜体)和刚才做好的 Vera Sans YuanTi_bold_Italic.ttf
在 Bitstream Vera Sans 的窗口中,选择 View--Compacted View,点击菜单栏的 Element--Font Info--Encoding 可以看到总共有 268个字符。不算多,慢慢来还可以接受。如果太多的话,我劝你还是放弃吧,除非你想锻炼耐心
点击菜单栏的 Element--Font Info--Encoded View,把浏览方式改回去(生成字体以前一定要改回)
切换到方正圆体的 Element--Font Info--General 选项卡把 Em Size 改为 2048,即与 Bitstream Vera Sans 一样(两款字体的 Em Size 一定要一样,否则最后生成的字体会大小不一)。点击 OK 后,等待转换完成
然后在方正圆体里用鼠标选中与 Bitstream Vera Sans 重复的字符(可以拖动,多选);右键;Clear 清除。再用复制、粘贴把 Bitstream Vera Sans 的字符都贴过来即可(这一点说起来最轻松,但是做起来却最浪费时间)。有的字符在方正圆体没有包括,直接贴过来就行了。可以用 View--Next Defined Char 直接转到下一个字符,否则找起来很麻烦
清除合并:
把方正圆体里与 Bitstream Vera Sans 重复的字符都清除后,选择 Element--Merge Fonts。在 Merge Fonts 窗口中选择 Bitstream Vera Sans。完成后,File--Generate Fonts 生成字体即可
合并字体时,只会合并原字体(这里是方正圆体)里没有包含的字符。而不会覆盖已有的字符,所以要先清除方正圆体里与 Bitstream Vera Sans 重复的字符后再合并
直接合并:
当然你也可以用 Bitstream Vera Sans 做基础把方正圆体合并进来。但这时你要修改的字体信息就比较多了
打开 Bitstream Vera Sans 后,直接选择 Element--Merge Fonts。在 Merge Fonts 窗口中选择 Vera Sans YuanTi_bold_Italic.ttf。完成后,File--Generate Fonts 生成字体即可
[/list]
我改的VeraSansYuanTi 下载: http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=geninfo&did=2488
内含两套字体,一套 VeraSansYuanTi 是比例字体,不等宽。一套 VeraSansYuanTiMono 是等宽字体,可以用在终端,不会出现字符重叠
包含常规、斜体、粗体、粗斜体。如果你的系统已经能够通过算法生成斜体的话,那也可以不使用其中的斜体部分
支持 GBK。英文部分分别用 Bitstream Vera Sans 和 Bitstream Vera Sans mono,中文部分是方正圆体(粗体部分用方正粗圆)
技术和工具都不够成熟,难免有误,欢迎测试,有意见和问题欢迎反馈
startx 或者 init 5 进入 X 后,在字体设置里选择 Vera Sans YuanTi,大小为 xx 即可。等宽和终端字体要用 Vera Sans YuanTi Mono
[/list]
如果你想要类似 mac OS X 的那种粗粗黑黑的效果就编辑 /etc/fonts/fonts.conf
把以下内容加入(</FONTCONFIG> 前面)
[code:1]<match target="font">
<test name="family"><string>Vera Sans YuanTi</string></test>
<edit name="globaladvance"><bool>false</bool></edit>
</match>
<match target="font">
<test name="family"><string>Vera Sans YuanTi Mono</string></test>
<edit name="globaladvance"><bool>false</bool></edit>
</match>