|
只要进入Windows,我们就与TrueType字体打交道。如此司空见惯,可能被认为没有认识的必要。但对Windows下的字体我们究竟了解多少?
前几天在一家打字社发现一个奇怪的现象:Win95开始菜单中所有的“?”变成了“8”,资源管理器窗口右上角的最小化按钮(-)、最大化按钮( )、还原按钮( )、关闭按钮(×)也变成了“0”、“1”、“2”、“r”,对话框中的单选按钮、复选框等更是变得莫名其妙。
开始都以为是注册表坏了,用备份恢复依然如故;后来以为病毒作祟,杀之却无。如果认识Windows字体,就会明白其实是丢了一种字体。
Windows下的字体分为光栅字体(.FON)和可缩放字体;也可分为屏幕字体、打印字体以及打印和屏幕都适用的字体。本文讨论的TrueType字体(TTF)就是打印和屏幕都适用的可缩放字体。
首先来看字体的大小尺寸。通常我们谈论的大小是针对打印到纸上的字符高度而言,单位为磅,1磅是1/72英寸。我们在屏幕上见到的字体,其大小不会正好符合打印时的大小,在屏幕上显示时使用的单位是逻辑英寸。逻辑英寸没有固定的大小,它取决于您的屏幕大小(14、15、17英寸等)以及在“显示属性”中的设置(小字体96、大字体120或自定义字体大小)。
中文Windows中还有一种度量字体大小的方法,“初号、小初、一号、小一、二号、小二、三号、小三、四号、小四、五号、小五、六号、小六、七号、八号”依次对应于磅值“42、36、26、24、22、18、16、15、14、12、10.5、9、7.5、6.5、5.5、5”。英文Windows对话框所用的字体大小默认为8磅,而中文Windows对话框默认为9磅,这就是有些英文软件在中文Windows下使用时对话框中部分英文字串不能全部显示的原因。
还有一种字体分类的方法:比例字体和固定间距字体。所谓比例字体,指每个字符的宽度随着字符的形状而变化,比如“l、i”比“m、w”要占用较少的空间;所谓固定间距字体,指每个字符所占空间相同。几乎所有的中文字体都是固定间距字体,大部分英文字体都是比例字体。如果要在文章中插入程序源代码,使用固定间距字体会让别人看的更清楚一些。固定间距的英文TTF字体常用的有“Courier New”、“Lucida Console”、“OCR A Extended”几种。
有一类TTF字体是我们比较感兴趣的,它使用的字符集与Windows ANSI或OEM字符集毫无共同之处,我们称之为非正文字体(或符号字体)。
最重要的符号字体应该是“Marlett”。它是Windows的系统字体之一,开始菜单中的“?”,窗口右端的最小化、最大化、还原、关闭按钮,还有单选按钮、复选框以及菜单项前的“?”和用于状态条中的“▲?”等等,都是用该字体建立的。此字体千万不能删除,否则会出现前文所述的奇怪现象。
用得较多的符号字体还有“Symbol”、“Wingdings”、“Monotype Sorts”和“MT Extra”(后两种为Office97所带)。“Symbol”字体常用于数学公式中,它包含了大小写的希腊字母、数字、运算符、集合符号和其它符号;提供类似剪贴艺术字体的“Wingdings”字体汇集了日常生活中常用的表意符号,如电话、书本、铃、眼镜、信封、剪刀、钟表、手势、箭头以及各种数字符号等等;“Monotype Sorts”中包含了200多种箭头、指示符和标记;“MT Extra”中只有很少的数学符号,用来扩充“Symbol”字体。
Win98新加进一种符号字体“Webdings”。它可以看作对“Marlett”和“ Wingdings”字体的补充。至于取名为“Webdings”的原因,我想是因为因特网的缘故吧!从开始的两个字符为蜘蛛和网可见一斑。
另外,有一些软件也会安装一些特殊的符号字体,比如:用于地图上各种标志的“Map Symbols”字体和用于标注音标的“Kingsoft Phonetic Plain”字体(《金山词霸》所带)。CorelDRAW 8.0带有66种符号字体,不妨用其所带的“Font Navigator”仔细查看一番。如果您正在编制运动会秩序册,那么“Sports&Hobbies”和“SportsFigure”字体一定会给您的工作增色不少。利用CorelDRAW,您还可以创建包含您公司徽标等标志的符号字体。
在Word中,我们常常通过【插入】→【符号】来插入这些字符。在没有提供插入符号命令的编辑软件(如写字板)中,我们可以先设置字体,然后键入对应字符,键盘上没有对应字符的,按住ALT键,在数字小键盘上键入该字符对应的ASCII码然后松开ALT。比如,设置字体为“Wingdings”,按“8”即得“”;按ALT,键入255后松开ALT,就可以得到Windows标志“”。
为了方便用户在文档中插入这些特殊符号,Windows附带了一个系统工具“字符映射表”。使用方法如下:打开“字符映射表”;在“字体”中选择某种字体;双击要插入的每个字符;单击“复制”;在文档中,单击插入字符的位置;在“编辑”菜单上单击“粘贴”;选择已插入的字符,然后单击字体列表上的箭头,更改到在“字符映射表”中使用的同一字体。
每种字体都属于一定的字符集。字符集有许多种,在写字板的“字体”对话框“语系”列表中可以观察到,比如:CHINESE_GB2312、CHINESE_BIG5、西方语言、希腊、土耳其、符号等等。在许多软件中可以见到“Windows ANSI字符集”这一说法,它指的就是“西方语言”,有时也被称作“ISO8559-1”或“Latin-1”。
从0x00到0x7F的Windows ANSI字符与用于DOS的ASCII字符集中对应的字符相同,接下来从0x80到0x9F的32个字符主要是标点符号(比如弯引号),0x9F后的32个字符是法律和货币符号,然后是32个大写重音字母,最后32个字符是小写重音字母。许多英文软件和文档喜欢使用这些大于0x80的字符,而这些字符在中文Windows中常常被解释成汉字字符的引导字节(GBK编码范围为0x8140-0xFEFE),与它后面的字符一起被显示成中文而出现乱码。解决乱码的途径有两种,一种比较简单的办法是强制解释为英文字符,可以通过《东方快车2000》实现;另一种办法就是修改原文档,对HLP帮助文件,可以反编译后修改RTF文件,再重新编译。 |
|