用FontCreator定制字体

绪言

在使用某些软件的时候,用户可能对界面上显示的字体不满意,希望对字体作适当修改,有用户可能希望将自己喜欢的中文字体和英文字体合并为一个字体,因为最漂亮的中文字体和最漂亮的英文字体并可能不是同一种字体。在Word中,我们可以通过分别指定中文字体和英文字体来解决这一问题;在CSS中,我们也可以通过调整字体顺序,先指定英文字体,再指定中文字体来使网页区别显示英文字符和中文字符。而对于有的文本输出程序,比如Visual Studio,只能用一种字体显示文本。如果用户希望中文使用一种字体,英文使用另一种字体,可能就非常想要把两种字体合二为一,或是对字体中的基本拉丁文部分作修改。本文通过一个例子简要说明了如何用FontCreator定制一个“新”的字体来解决上述问题。

合并两个字体

第一步 打开文件

对于合并两种字体的情况,首先用FontCreator打开要合并的两种字体。例如现在想要用“微软雅黑”的英文字母字形替换“方正兰亭准黑”中的英文字母字形,那么首先用FontCreator打开这两个字体文件(注意做好备份)。从Windows Vista开始,微软雅黑就是系统预置字体,获得它的方法之一是从旗舰版系统中复制——打开控制面板中的字体,找到微软雅黑,将它复制粘贴到一个新的位置比如桌面。方正兰亭准黑是方正的付费字体,可以从方正字库官方网站下载。

第二步 复制字形

然后选择“微软雅黑”文件,如图所示在“字符类型视图”中找到Basic Latin,选择所有希望在新字体中使用的字形,这里选择了Basic Latin区域的几乎所有字形。对选区使用复制命令,所选字形将在稍后的步骤中被粘贴到“新”字体文件中。

注意记录复制的字符数量,该数量显示在状态栏中,上图的“94个项目选择”即当前所选字形的数量。

第三步 插入空字形

接下来的一步很重要——在目标字体文件中插入相等数量的空字形。比如,前一步骤复制了94个字形,那么这里就需要插入不多不少刚好94个空字形。这些空字形空间将用于存放已复制的字形。如果没有插入相应数量的字形,那么后一步粘贴数据可能会将原字体中的某些位置覆盖,某些字符和字形可能因此丢失。如果插入的空字形数量多于已复制字形则会产生数据冗余。

具体操作是,切换到“方正兰亭准黑简体”文件,在“字符类型视图”中找到“空白”,在空白处点击鼠标释放焦点,再点击“插入”菜单下的“字形”命令,在对话框中输入要插入字形的数量,即刚刚复制的字形的数量,这里输入94。

第四步 特殊粘贴

现在目标字体中已经插入了与已复制字形数量相等的空字形,下面要把已复制的字形粘贴至该区域。具体操作是,在“编辑”菜单中选择“特殊粘贴(paste special)”,注意粘贴的起始位置与插入字形的起始位置必须是同一个,另外注意在“特殊粘贴”对话框中选择“覆盖相同代码点”。

由于粘贴的字形并不是空白字形,所以粘贴完成后,新产生的字形码点将不再出现在“字符类型视图”的“空白”分类中,就好像消失了一样。另外,特殊粘贴并不能复制字体中定义的“特殊配对”等信息,如果需要在新的字体中使用这些信息,需要打开工具菜单中的“OpenType设计者”,再将其中的信息导出。

扫描二维码关注公众号,回复: 2936661 查看本文章

第五步 修改字体属性

字体属性是指字体的ID、字体族等信息。操作系统总是用ID和字体族来识别和区分不同字体。如果用户安装某个同名字体,则操作系统总是将其理解为用户要升级该字体,并向用户给出提示“是否要替换该字体”。所以,假如我们在字体中修改了一个字形,想要测试它在应用程序中是否漂亮,那么在安装它进行测试之前应当修改它的ID、字体族等信息,以免操作系统认为我们想要替换该字体。

“字体属性”对话框通过“字体”菜单中的“属性”命令调出。注意在“识别”和“自定义”两个标签中可能都含有字体属性信息,特别是字体ID信息。字体族、附录都这里可以修改为,比如RaySans。

有时我可能需要创建一个新的风格的字体,需要对原始字体进行多次修改、导出、观察,这样可能每一次导出时都需要进行一次字体属性编辑。这种情况下,可以先修改字体属性,导出为一种新字体,然后对这个新字体进行字形的变换调整,这样就不用每次导出都修改字体属性。

第六步 导出新字体

现在可以尝试导出测试这个“新”字体了——点击“文件”菜单的“导出字体”或“导出字体为”命令。如果对测试结果不满意,可以选择新的字体重新组合,或是做进一步的修改。

进一步的修改

改变部分字符

如果要对基本拉丁文部分作修改,那么打开该字体文件后,选中基本拉丁文部分的字符,然后在菜单工具中选择“字形变换”,就可以把选中部分的字符进行旋转、缩放等修改。

当前获得的一个在Visual Studio里用起来感觉比较不错的变换是对“微软雅黑”的基本拉丁字符进行水平98%、竖直92%的缩放。

特殊配对

图为OpenType设计者对特殊配对的编辑。注意窗口左下方的导出和导入按钮,它可以在不同的对象之间传递配对信息。

修改基线

下图图是字母M的轮廓编辑界面。默认情况下,轮廓编辑界面的左侧会显示字体“度量”所定义基准线,即基线、小写高度、大写高度等。假如现在想要调整“大写高度”参考线,可以在这个“度量”窗口的“大写高度”中输入一个值,然后按回车,就可以看到“大写高度”的参考线被调整。

关于术语

本文所引述的中文版FontCreator的一些界面对术语翻译可能会引起误解,比如“度量”对话框的“窗口上部”。在帮助菜单中打开用户手册,在67页可以看到对“度量”标签页的说明:

Win Ascent
The ascender metric for Windows. This is distinct from Apple's Ascender value and from the Typo Ascender value. Win Ascent is computed as the yMax for all characters in the Windows ANSI character set. Win Ascent is used to compute the Windows font height and default line spacing. For Symbol fonts, it is the same as yMax. (Windows使用的上边距度量。该值与Apple的上边距值是不同的,与Typo上边距的值也是不同的。Win Ascent作为Windows中所使用的所有ANSI字符集的yMax值来使用。Win Ascent被用于计算Windows字体的高度和缺省行距。对于符号字体,该值与yMax值相等。)

Typo Ascender
The typographic ascender for this font. Remember that this is not the same as the Ascender value in the Metrics tab, which Apple defines in a far different manner. (字体的排印上边距。注意它和Metrics标签页(即本页)中的Ascender值是不同的,后者是Apple定义的值,有着非常不同的意义。)

所以Win Ascent一词被译为“窗口上部”是一个可能会引起误解的译词。

猜你喜欢

转载自www.cnblogs.com/raynsoftware/p/9248391.html