• 字体
  • 字体家族
  • 字体公司
  • 字体设计师
  • 字体样张
  • 资讯
  • 帮助
字客网>资讯>详情

FontForge巧用参考的方式来造汉字

时间:2005-04-03 22:23:35| 汉字|浏览:1699|来源:http://blog.bs2.to/EdwardLee|作者:EdwardLee
导语从无到有的造字,在矢量字体,例如 TrueType 字体,可能对一般人来说会有困难。这里我们以现有的 TTF 来造字,所有的部首及笔画都是取自于原字体,而且利用参考(reference)的方式来组合成字。我们使用的工具是 FontForge。这个工具是自由软件,功能相当不错,应该可

从无到有的造字,在矢量字体,例如 TrueType 字体,可能对一般人来说会有困难。这里我们以现有的 TTF 来造字,所有的部首及笔画都是取自于原字体,而且利用参考(reference)的方式来组合成字。

我们使用的工具是 FontForge。这个工具是自由软件,功能相当不错,应该可以应付一般的字体处理。这里不多说明 FontForge 的使用细节,并且假设你都已经安装好 FontForge。我们就以一个实际的例子来做中学,这样应该会比较容易进入状况,也有趣多了,大家都可以试着替自己的字体加上所需要的字。

使用原字体的笔画及部首,这样比较可以维持原字体的字的风格(style),只要置放的位置拿捏好,和原有的其它字排列在一起时比较不容易有突兀的情形。使用参考的方式,一方面可以节省所占空间,另一方面这些抽取出来的部首、笔画可以重复利用,当然,这些部首组件的置放位置就会比较伤脑筋,要有一个好的事先规画,否则到后来字一多起来,会占用真正有字的位置,而此时一更动部首组件的位置,那将会天下大乱,因为所造的字就会找不到参考位置。

我们就以“酶”这个字为例,它的 Unicode(UCS-2) 码是 U+9176。我们可以从“醋”(U+918B)取出“酉”部,然后从“脢”(U+8122)取出“每”部,两个就可以合成为“酶”了。那,为什么不直接使用“酉”和“每”来合成呢?因为,这样一来合成时必需要去缩小,这样笔画会变细,和原来的其它的字会有不一致的情形。

在这之前,我们先来看一下 FontForge 常要用到的简捷键,以方便往后的操作:

按键 作用
Ctrl-c Copy 拷贝
Ctrl-v Paste 贴上
Ctrl-x Cut 剪下
Ctrl-g Copy Reference 拷贝参考位置
Ctrl-Shift-> 前往所输入的 Unicode 码位置
Ctrl-3 将屏幕显示放大为 36 pixel
Ctrl-k 显示所选取字的 metrics window
Ctrl-s 存盘(sfd)
Ctrl-Shift-g 产生新字体(TTF,pfb)

准备好了吗?那么我们就开始加载字体,且存盘成 sfd 的格式,这是纯文字文件,是 FontForge 的字体原始文件,所有的作业就在这个 sfd 文件来进行,以免更改了原 TTF。在修改满意后,我们再来输出 TTF 的格式出来。这里有一个供练习用的 sfd 文件,以下的说明将会以这个 sfd 文件来做解说:http://edt1023.sayya.org/fonts/FontDIY.sfd

加载字体后,按 Ctrl-3 放大成 36 pixel,不然原来的字太小了(如果是使用这里提供的 sfd,那么它已经放大好了,无需再放大),这不会影响制作出来的 TTF,这只会影响 sfd 文件在屏幕的显示。由于我们需要额外的位置来置放分离出来的部首及笔画,所以要增加字体的字的容量。按 [Elements] => [Font Info] => [Encoding],Encoding 我们选取 ISO 10646-1(Unicode, BMP),然后 Numbers of Glyphs 修改成 68000,这样就可以把我们的部首、笔画,存在 65536 以后的位置。

现在按 Ctrl-Shift-> 然后会弹出一个窗口,在窗口中输入 uni918b 按 Enter 就会跑到 U+918B(醋)的地方,double click 这个字,就会弹出这个字的窗口出来。我们要取的是“醋”的左半边,可以按鼠标左键来选取范围,这时会有反白(黄)的区域出现,如下图:

 

其中会有一些不要的部份,这个等 copy 到新位置后再来处理。现在按 Ctrl-c 就会把反白的部份 copy 到内存中,关闭目前这个窗口,按 Ctrl-Shift->,输入 67393,会跑到新的位置,然后按 Ctrl-v 就会把内存中的内容贴上。重复同样的动作,也把“脢”(U+8122)的“每”,分割出来,copy 至 67399 的位置备用。这里输入数字前没有加上 uni,所以是指字的实际位置,而不是它的 Unicode 码。

Copy 到新位置后,利用鼠标左键来选取不需要的范围,然后按 Ctrl-x(cut) 来把它消除掉,完成后应如下图:

 

现在“酉”是在 67393 的位置,而“每”我们以同样的方法把它置放在 67399 的位置。现在我们就开始来合成“酶”字了。

把位置移到 67393(酉),然后按 Ctrl-g,这是只 copy 它的参考位置,Ctrl-Shit-> 移到 uni9176,然后按 Ctrl-v 贴上,此时只贴上参考位置的数据,并没有把真正的 glyph copy 过去。再把位置移到 67399(每),按 Ctrl-g,再移到 uni9176,双击uni9176 会弹出窗口,此时按 Ctrl-v 贴上“每”的参考位置。但是,会有重叠的地方,如下图:

 

这没有关系,我们可以利用鼠标去调整它的位置及大小,鼠标置于字框本身可以拉动它至适当的位置,鼠标置于字的外方框则可以调字的长宽,例如以下是完成后情形:

 

这里可以看得出来,FontForge 并没有像其它的实体字一样显示,而是只显示字框及其参考位置而已,表示这并不是一个实体字,而是参考某个参考位置的虚拟字。

这样就已经完成八、九分了,接下来是调整和其它字排列时的一致性,先将前景窗口 close 后,把主窗口的一排的字反白,如下图:

 

然后再按 Ctrl-k 会有 metrics 窗口弹出来:

 

这时就可以去移动字的左右位置,并把字宽调整成和其它字一样,在这个例子是 920,但一般的中文字体可能会是 1024。如果看起来上下高低不一致,那么还是要回到主窗口,double click 那个字来重做调整。

好了,调整满意时,就可以存盘(Ctrl-s),存盘后再按 Ctrl-Shift-g 来产生新字体,此时当然我们要选用 TrueType 来产生我们所需要的 TTF。这样新字体就诞生啦!

0
  • 关注字客网公众号领取Z码
  • 关注字体先森公众号抽取SVIP
相关字体公司
FontForge巧用参考的方式来造汉字 网友点评
游客:文明上网,理性发言。 看不清?换一张
FontForge巧用参考的方式来造汉字 最新评论
暂无相关评论