如题所述
打造你自己的字体Ⅰ
你是个才华横溢的设计师,一个技艺精湛的书法大师,并已学习了所有关于Serif(衬线)、side-bearings(侧架/预留空间),kerning(字距调整)的知识。现在你打算制作一款属于你自己的字体了(什么!你还不知道什么是衬线、侧架和字距调整?好吧,在你着手制作字体之前,务必先把iLT上面所有的文章都读过一遍!如果你真的希望成功,你应该竭尽所能掌握尽可能多的相关知识。如果你不是什么天才的设计师或书法大师,那也不必担心,你一样能创造出漂亮的字体——条件是小小的努力,大量的知识,还加上一点点灵感。)
秘密武器:字体编辑软件
前面所说的出色的设计、漂亮的书法作品以及深厚的字体知识等等,这些东西仍然无法让你做出字体,你还需要把你的作品转换为一种计算机能够理解的格式,所以你的手头还需要配备一款优秀的字体编辑软件。这些软件的功能和价格各异,运行的平台也不同。下面是一些大牌角色:
字体编辑软件
FontLabStudio这是我用来制作字体的软件。在某种程度上已经成为了行业标准,所以也价格不菲,要卖649美刀。提供30天的免费试用版本,你可以在购买前先试用一下。PC和Mac平台的版本都有。FontLabStudio是我频繁使用的软件,我可以向你担保它的优秀,同时其用户社区也颇有人气。
FontForge基本上,FontLab能做的,FontForge都可以完成,并且它还是免费和开源的。也因为开源,在Windows下安装FontForge并不是一件简单的事(你必须先安装Cygwin)。同时,它的文档也不象FontLab那样完备。最近在Typophile论坛有一个关于FontForge的有趣话题,你可以去看看,以决定是否投身于开源的怀抱。FontForge可用于PC、Mac和Linux。如果你是个Linux用户,FontForge可能是你唯一的选择。
那些在钞票中打滚的人可以考虑一下DTLFontMaster,具备FontLab的全部功能,甚至还要多,但相当的昂贵。FontMaster由几套不同的模块组成,我觉得很酷,但是也挺吓人的。适用PC和Mac平台。
FontCreator是另外一个选择,价格比FontLab更平易近人。但只能处理TrueType和OpenType格式的字体——不能处理Type1字体,并且只有Windows版本。
TypeTool同样来自FontLab的一款入门级产品,和FontCreator是同一个等级。按官方的说法:TypeTool是为那些“偶尔需要创造或修改字体的学生、字体设计爱好者和专业创意人士”所设计的。PC和Mac。
字体编辑软件曾经的真正王者,因厂商停止开发,被封印多年之后几乎绝迹,直到被FontLab收购了源代码之后,才于近期发布了Mac上的升级版本。由于它最后的更新版本上显示的日期已经是上世纪90年代末了,所以我真心的希望Fontlab能对这个新版本做一个令人耳目一新的重写。它的价格只有FontLabStudio的一半,不过没有试用。PC和Mac平台都可以运行,但最新的版本目前只有Mac用户可以享用。
所有这些软件的运作流程都一样,只是在具体细节、界面以及选项和能力上有所区别。所以你在购买之前要做一些研究——下载并试用一些演示版本,听听用户的评价和争论,然后决定哪个字体编辑软件最适合你。听说有些人的做法是,从TypeTool起步,先判断自己是否真的喜欢字体设计,然后当TypeTool的限制真的成为一个障碍的时候,他们才最后升级到FontLabStudio。
当你有了一款优秀的字体编辑软件之后,你可以有三种不同的基本流程来创建一种字体。
方法1:在纸上绘制
需要的工具:
一支好用的钢笔
白纸
尺子(可选)
Scanner扫描仪
AdobePhotoshop(或其他类似的图像编辑软件)
ScanFont字体扫描软件
字体编辑软件
你有艺术天分吗?写得一手的好字?好,拿一支好用的钢笔,一打白纸,开始写你的字母。(别忽视笔的选择。如果你希望你的字体笔画粗重饱满,试试Sharpied(三角帆)的马克笔。如果你想写钢笔书法,那就亮出你的书法钢笔套装。希望笔画纤细而微妙,那就挑一支尖细的精确钢笔来写。)字写大一些,以便于获得更多的细节。所有字母的高度尽可能一致(可能需要你先用铅笔在纸上打好格线)。好的字体是一套完整的字符集,所以别漏掉了什么——比如说标点符号,波浪线,重音符号,圆括号和方括号以及数字。你可能还想包括一些罕见的字符,比如古英语和古欧洲语系中出现的一些字母。在你落笔之前,可以先在字体编辑软件中创建一个新字体,看看一个字体的标准字母表中包含哪些字符。其中有些字符可能是你从未听说过的,但专业的排印人员可能会希望在你的字体中看到它们。
把你的漂亮作品扫描进Photoshop,然后把图片转为位图格式(不包含灰度的黑白模式)。
差不多了。在FontLab的字体扫描软件ScanFont中打开你的位图。这个很棒的小软件(Mac版本的FontLabStudio中免费附送一套ScanFont——幸运的Mac用户!)允许你导入位图图片,然后转换成字体中的字符。(字体编辑软件只对轮廓进行操作,如Illustrator中所用的基本的矢量线条。扫描仪和Photoshop之类的软件只处理位图。ScanFont则是沟通这两种媒体格式的一座桥梁。)扫描完成后,你可以在ScanFont中保存你的字体,或是从ScanFont拷贝单个字符到FontLabStudio中去,开始你漫长而充满艰辛与乐趣的字体编修工作,直至完美。
方法2:用绘图板绘制
需要的工具:
WacomTabletWacom绘图板
AdobeIllustrator
字体编辑软件
如果你有一块Wacom的绘图板,就可以省却上面的不少步骤,因为你可以在矢量绘图软件中直接绘制你的字体,FontLabStudio支持从AdobeIllustrator中直接复制粘贴矢量数据。
方法3:直接在字体编辑软件中绘制
需要的工具:
鼠标
字体编辑软件
铁手,以及神一般的耐性
我曾经制作了两款字体,完全在FontLabStudio中完成,靠的就是我的鼠标,一只坚定的铁手,以及数量可观的Undo命令。这种方法是绝对可行的,相比在软件之外绘制然后导入的方式,这种方式能够生成更精确的字体。如你所预计的,字体编辑软件中包含着大量的工具相互协作以完成一系列的工作:这些工具可以生成完美的直线和曲线,并有向导辅助你以极高的精度来对齐任何东西。
打造你自己的字体Ⅱ
MyFonts上销售的字体总数已经超过55,000个。现有字体的巨大数量表明了一个事实:我们在设计一个字体时,要面临着近乎无限的选择。有些选择是很基本的,比如说:衬线还是无衬线(当然两者下面都有着大量的子类);手写体还是精确的印刷级字体;宽体还是窄体;粗体还是细体。但除了这些明显的选择之外,还有一些你可能从未听说过的术语:
封闭的、半封闭的还是开放的4?
三笔还是两笔的Y?
有下伸部还是位于基线的J?
双层还是单层架构的g?
双层还是单层架构的a?
交叉的、连接的、还是圆角的W?
你可以多对照一些你喜欢的字体,来理解上面的这些细节区别,或者更多的,比如说——三笔的Y对你来说更传统一些吗?你的新字体中准备采用这种结构吗?一个有下伸部的J更适合你的字体吗,或是你决定不让它超出基线?
你可能还有更多需要斟酌的事项:
你的e中水平横杠的高度
你的*(星号)应该有几瓣?(译注:我对照了一下,4、5、6瓣的都有)
你的#号的倾角
你的y和q有没有尾巴?
如果一开始就陷入这些细节中无法动弹,那你永远无法开始实际的字体设计。但在你动手设计之前,的确应该对它们有所考虑。在字体设计软件之外多花的一点时间,可能会让你在正式设计时避免花费大量的时间来反复的修改或是返工重做字符。
VerticalMetrics垂直量度
还有一系列需要你把握的决定,比如说垂直量度——决定你字符各种高度的一系列尺寸。下面为你准备了相关的术语:
上沿线,定义小写字母的顶部位置(通常为小写b的最高点)
大写高度,定义大写字母的高度(通常取大写H的高度)
x高度,大部分小写字母的高度,如v。
基线,字符所“坐”位置的假想线。
下沿线,定义小写字母的底部位置(通常取小写p的底部)
在开始设计字体之前你必须解决好以下这些与垂直量度有关的问题:
你最高的小写字母的上沿是否会高于大写字母高度?(许多字体都会超过,但并非全部。)
你的x高度应该有多高?(仅仅是把“标准的”x高度提高或者降低一些,就足以产生有趣的效果。)
下沿线应该定义多低?
在为你的字体决定垂直量度时,还有一些基本原则需要考虑。
底部为曲线的字符往往会稍稍低于基线。同样的,顶部为曲线的字符也经常会稍稍的超出标准的x高度或大写高度。
之所以有这些基本原则,是因为这些有曲线的字符如果不稍微的高于或低于那些方形的字符,它们看起来就要稍微小一些。我的意思是,法律并没有规定你一定要遵循这条规则。如果你的字体采用绝对相同的基线和高度时效果更好,那你就这样做。但假如是由于你自己都不清楚是否这样做更好,就给它们定义相同的高度,这实在不是什么好主意。
HorizontalMetrics水平量度
为字体定义水平量度需要花费你大量的时间。主要的水平量度—kerning/字距调整(下面会详述)—需要你许多个小时的艰难而细致的工作才能完成。(我想你之前一定读过了Johno关于kerning的文章了吧?没有?!你实在应该读的。去吧,我会在这里等你。)不过在我们讨论字距调整之前,我们应该先来想想sidebearing(预留空间,或者更简洁的翻译:“侧架”)。
正确的设置侧架(sidebearing,以下同),能让之后的字距调整更简单,节省你为优化水平量度所花费的大量宝贵时间。
侧架是字符左右预留的空间。上图中,字母U的左右定义了相同的侧架。这是常见的情形,但不是必须的。有时候,侧架可以是一侧是正的而另一侧是负的——这意味着,侧架有可能位于字符之内。
注意j的左侧架(LSB),已经是位于字符实际边界之内了——相当于削去了部分的字符。为什么要这样做?好,我们来看看j和其他字母相遇时候的情形。
内部的侧架告诉计算机在渲染j的时候要比标准间距更靠近左边相邻的字符。如果左右的侧架定义成一样的,那么j和左边邻居之间的空间就变得大而呆板。
字距调整一样能解决这个问题,但如果j总是(或经常)要靠近左边相邻的字符,那么定义一个负的侧架能让你减少你字距调整的工作,并且,对于那些不使用字距调整的用户(很不幸,大部分字处理软件中,字距调整选项默认是关闭的),能得到更好的字母间距。
Kerning字距调整
读完Johno关于kerning的文章,你已经能跟上这些基础课程了吧?下面是关于kerning的一些细节,你作为一个字体设计师应该知道的。
良好的侧架设置就好比拥有一个主教练,他对于比赛有一个很好的总体计划,可以让你的字体在用户不使用字距调整的大多数情况下,也可以得到比较像样的结果。但是在某些具体的场合,为了获得完美的结果,你还必须有一个优秀的进攻协调员在场上组织具体的进攻——那就是字距调整。
在完成侧架设置之后,我喜欢把字体中的字符对打印出来,检查哪些地方出了问题,需要进行字距调整的辅助。实际上,我写了一个脚本来将这些字符对生成一个OpenOffice文档,你可以在这里下载这份文档。然后你就可以在OpenOffice中打开这份文档,选择所有文本,变为你自己的字体之后,打印出来检查。
发现那些有问题的字符对之后,你就得弄脏双手亲自对它们进行修理了。这里是我一个字体的范例,显示了设置了侧架而还未进行字距调整的V-e配对。注意两个字符中的空隙是多么巨大。
然后是字距调整之后:
我们要做的是让字母自然的从一个流向下一个。我常常会想,字距调整就仿佛是让我的字符们彼此偎依在一起。
在做字距调整的时候要注意的几个问题:
如果你发觉对每一对字符你都要做字距调整,那么很可能是你的侧架设置出了问题。好的侧架设置通常意味着有一部分的字符对已经设置完成,不再需要单独的字距调整。
会有人告诉你,你只需对最常用的字符对做字距调整。比如对于q,你只需要做qu以及qa的字距调整,而qz则不必要—在实际印刷中谁会用到qz啊?可是我就是一个例外,我坚持为全部的字符对做字距调整,不管那些组合是多么的不可理喻。那些纯粹主义者可能又要晕倒或是吓到呼吸困难了。但我为什么要限制我字体的用户,让他们只有在使用标准字符对的时候才拥有漂亮的字距调整?如果有人想打印qz,那就应当让他们打印出一个漂亮的qz。
大部分的字体编辑软件都有一个自动字距调整的功能。这是一个好的开端,但明智的做法是,在自动调整之后你还应该亲自进行逐个的检查和调整。没有什么算法能超过人的眼睛。
ScratchingtheSurface划破皮肤
到这里为止,我们才刚刚划破皮肤。如果不及时处置的话,就可能会引发“字体狂热症”。我的确希望如此。即便是在从事字体设计这么多年之后,每一次打开FontLabStudio在其中奋战,都依然会让我学到一点新的东西。
打造你自己的字体Ⅲ
永远都在寻觅字体设计的灵感。夏天过后,我买了一套便宜的书法钢笔,说服自己,它会让我的鸡爬字产生脱胎换骨的变化。在浪费了一个星期和几打白纸之后,我还是没得到什么有趣的或是有稍微艺术气息的东西。最后,在一天晚上,疲倦而失望的我,在用完了黑色墨水之后,插入了一支红色的笔芯,然后写下了下面这一套字母表——之后它变成了我的Joules字族。我想,如果我在这个案例研究中把它如何变成字体的过程写出来,大家也许会感兴趣。
下面是那天晚上我写下的好多张草图之一:
特写:
超级特写:我迫不及待想使用的一个大写A。
从草图到字体
从草图创建Joules字体的过程,一如我之前的两篇文章中所写的,我将草图扫描输入,下面是扫描稿在Photoshop里面转为黑白位图模式之后的样子。
注意原稿位图中包含的粗糙杂点:
通常,我会把这些位图处理干净之后才导入Fontlab,但这次例外。下面是第一个步骤,将位图导入ScanFont:
在ScanFont中的一个特写:
我把这个新字符复制到FontLab中的正确位置。为了给你体验一下在FontLab中是如何进行调整的,下面放大显示了导入进来的粗糙的A。我选择了一个有问题的部分。
然后开始删去那些令人不快的节点:
在FontLab中调节字符的时候,我们必须在两种诱惑中做一个平衡:一方面要使得轮廓尽量的平滑,另一方面,又应该尽可能的留下一些粗糙的节点,以保留字体的趣味。我发觉,对书法字体而言,不应该平滑掉所有的粗糙节点,在某种程度上,那等于剥夺了它们书法的感觉。
救人危难的字符合成
FontLab的一个便捷之处,是它可以自动的合成字符。本例中我先创建了一个A,然后又建了一个“重音符”:
然后我双击这个“A-重音符”的小格
FontLab就创建了一个合成字符:
这时候,如果你编辑这个A或者那个重音符,变化会立即的自动更新到那个合成的“A重音符”上。
侧架
我前面几篇关于字体设计的文章中也提到了,设置合适的侧架是一个重要的步骤。(一个原因是,恰当的侧架会让字距调整变得简单!)先为字符做粗调,我粗略设置了一个很小的、正的侧架。在初始编辑时,这个y的侧架显示如下:
这样设置会有什么问题,在初始字距设置中看a和y的配对就能看出来了。
其实我可以保留这个y的侧架不变,然后在字距配对调整中,调节y靠近a,然后依此类推,在每一个字距配对中都调节y靠近其他的字符。但很明显,为这个y的左侧设置一个负的侧架的做法要更简单,也更明智:
下面就是改进后的留白设置在默认字距调整情况下的样子:
Kerning字距调整
天,为这个字体设置字距花了我几个小时的时间!其中的烦人细节我还是放过你好了。但这里还有另外一个字距调整的实例。在调整前是这样的:
调节后:
Ligatures连字
我在Joules中创建了相当数量的连字,使用者在排版时可以手动选择应用它们。
下面举一个实例说说我是如何创建这些连字的。首先,我们先来看看这个z和a原始的连排效果。
其实我可以在字距配对的时候让它们以一种时髦的方式漂亮的重叠在一起,但更负责的做法还是做一个z-a的连字。第一步,创建一个空白字符,然后把z和a复制进来:
第二步,切开它们的轮廓,让它们能在合适的位置结合:
第三步,删除多余的部分:
第四步,移动字符让它们靠近:
第五步,连接节点:
智能连字
Joules的第一个版本中并没有包含智能连字:这种技术是我最近才学会的。(这意味着TrueType字体的末日,因为智能连字技术必须在OpenType字体中才能实现。)其中的细节我就不唠叨了,但可以告诉你的是,需要在Fontlab中打开一个特殊的OpenType面板,并且通常还要写一些脚本,这样才能在一些能够识别连字的软件中激活你所创建的连字。大体上看起来是这个样子:
完成