字体的大小Wei Xue,2009 年 2 月 本章来介绍字体的大小尺寸的相关知识。在此之前你肯定看到过很多关于字体的大小的内容,比如字号,12点阵字,磅等等术语。你能清楚的说出他们之间的关系吗?到底哪一个才是字体的真正大小呢? 本章将一一为您介绍与字体大小相关的知识和内容。 概念
DPI是量度单位,英文全写是Dots(点、小圆点、点状物) Per(每) Inch(英吋),用于点阵数位影像,意思是指每一英吋长度中,取样或可显示或输出点的数目。这个概念来自印刷打印界,用于计算机显示器实际应该是PPI,即PPI(Pixel Per Inch),每英寸像素点个数。现在提到DPI在计算机显示器上,其实就是说PPI。 Dpi值越高,印出的图像会越越精细。打印机通常可以调校分辨率。例如撞针打印机,分辨率通常是60至90 dpi。喷墨打印机则可达1200 dpi,甚至9600 dpi。雷射打印机则有600至1200 dpi。但是对于计算机的显示器来书DPI的值则远远小于打印机,你可以用命令查看你的显示器的DPI值(Solaris中): xdpyinfo |grep resolution 根据定义DPI的算法: Dpi = 像素数 / 显示器屏幕大小。 如:分辨率1024的14寸的显示器,其dpi = 1024/14 约等于75
上面也提到了像素的概念。像素,为图像显示的基本单位,译自英文「pixel」,pix是picture的常用简写,加上element,就得到pixel,表示「图像元素」之意,有时也被简写为pel(picture element)或者px。单位面积内的像素越多代表解析度越高,所显示的图像就会越清晰。一个像素通常被视为图像的最小的完整采样。
磅是一个绝对的单位宽度单位, 1英寸=72磅, 1磅(1P)=0.35146mm
汉字大小定为七个等级,按一、二、三、四、五、六、七排列,在字号等级之间又增加一些字号,并取名为小几号字,如小四号、小五号等。号数越高, 字越小。号数制的特点是用起来简单、方便,使用时指定字号即可,无需关心字形的实际尺寸,缺点是字大小受号的限制,有时不够用,大字无法用号数来表达;号数不能直接表达字形的实际尺寸;字号之间没有统一的倍数关系,折算起来不方便。尽管如此,号数制仍是目前中文表示字形规格最广泛的方法。 需要注意的是,传统标准铅字的字号大小与一般字处理软件实际输出的文字尺寸往往有一些误差,这是由于字的变倍计算处理造成的。
点数制。是国际上通行的印刷字形的一种计量方法。这里的“点”不是计算机字形的点阵,“点”是传统计量字大小的单位,是从英文Point的译音来的,一般用小写p表示,俗称“磅”。也有人将此称为级。其换算关系通常为: 1p=0.35146mm≈0.35mm 1英寸=72p 但是却不是总是如上面的公式,点数制其实又分法国点制和美国点制:
事情还不是这么简单,在不同的程序中1点代表的距离也会有微小的差别,比如在 Postscript 使用的是 big point(bp)。 1 pt (TeX) = 0.3514598035 mm = 1/72.27 inch 1 bp (Postscript) = 0.3527777778 mm = 1/72 inch 关于点数制更多内容: http://en.wikipedia.org/wiki/Font_size http://www.sizes.com/tools/type.htm http://www.artlebedev.com/mandership/81/ 汉字大小的标准,称为字号,前文也说过,看看字号和点制之间的转换关系。在wiki的对照表中发现中文 Microsoft Word 中用的竟然是 Didot 点(法式点制),很奇怪,如果再换算成 TeX 使用的点(美式点制度),结果如下: 初号:42 p = 44.9 pt 小初:36 p = 38.5 pt 一号:26 p = 27.8 pt 小一:24 p = 25.7 pt 二号:22 p = 23.5 pt 小二:18 p = 19.3 pt 三号:16 p = 17.1 pt 小三:15 p = 16.0 pt 四号:14 p = 15.0 pt 小四:12 p = 12.8 pt 五号:10.5 p = 11.2 pt 小五:9 p = 9.6 pt 六号:7.5 p = 8.0 pt 小六:6.5 p = 7.0 pt 七号:5.5 p = 5.9 pt 八号:5 p = 5.3 pt
在字处理中,点数制与号数制并存使用,互为补充,两者相互之间有对应的折算关系,可以通过查表得到。由于计算机处理汉字时,字大小可以灵活地无级变化,且对于一些大字,号数制有限的号数也无法计量,所以计量单位比较小的点数制更适合字处理系统对字形的计量。
计算实例讲解通过以上的这些讲解,读者应该已经知道了字体大小的一些概念和内容,下面我们来看几个实际的例子,看完之后相信你应该明白字体的大小的一些转化关系。 以Firefox为例,无论在哪个操作系统中,Firefox 浏览器默认的 Dpi都是 96,所以对firefox来书,9pt的字,大小等于12px字。 9pt = 9 * 1/72 * 96 = 12px。 假如Dpi为128,那么9pt的字,实际大小为: 9pt = 9 * 1/72 * 128 = 16px 这说明Dpi越大,字的包含的像素号越大。
下面来计算一个9pt的字物理长度到底是多少cm(这个单位我们更熟悉),可以计算如下: 先使用尺子,丈量你的显示器的可见宽度 (例如 11.2992 英寸),除以横向分辨率 (例如 1024 像素),得到的就是每个像素的物理长度。现在可以计算9pt的字物理长度到底是多少cm: 9 * 1/72 * 96 * 11.2992 / 1024 = 0.1324 英寸 = 0.3363 厘米 或者使用前面已经得到的像素数12直接计算: 12 * 11.2992 / 1024 = 0.1324 英寸 = 0.3363 厘米 如果更改Dpi为128,同样对于11.2992 英寸的显示器,分辨率设置 16 * 11.2992 / 1024 = 0.1807872 = 0.4502厘米 可以看出同样的显示器分辨率下,Dpi增加字就变大。 X Window系统中的DPI因为我在Solaris系统中现在使用的是X.org的X window系统,所以下面主要来谈谈X Window系统中的DPI 在通常设置字体大小的时候,让用户选择的多是pt的大小,应用程序使用X server的Dpi值将pt值转化为对应的px(像素值)。例如,对于“Sans 10”字体,如果X server 被配置为75Dpi,那么它的像素数将比X server 被配置为75Dpi的时候少。考虑以下几个问题
xdpyinfo | grep resolution可以检查当前DPI值
Gnome也提供了设定Xft DPI的接口,“gnome-settings-daemon”运行时,运“gnome-f ont-properties”在对话框中就可以看到一个设置DPI的。这个实际是通过XSETTINGS, 设置Xft.dpi 这个X resource。在“gnome-settings-daemon”之后运行的Qt程序都将使 用用通过gnome配置的DPI。
在桌面系统(Desktop)中DPI,是这样定义的:
可以在http://scanline.ca/dpi/ 看到Billy Biggs关于DPI的文章。想了解更多DPI的知识这里 http://www.linuxsir.org/bbs/showthread.php?t=266659 有很全面的介绍,内容已经涉及到字体的配置了,本章暂不谈及配置的内容。
Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License. |
BigAdmin SubscriptionsBigAdmin Areas
BigAdmin Sun Center
BigAdmin Topics |