专栏导航
下一篇:无
本节前言
对于本节所讲解的知识,有可能,你会需要时不时地参考本专栏的其它文章。真的遇到了需要参考之前的文章的知识点,请你自行查阅。
我呢,也会提到一部分的参考课节。但是呢,你不应该依赖于我的主动提及。最好呢,你自己能够多去了解和查看本专栏目录。
想要学习本节,需要你具备下述的先修课节知识。
参考课节:设备的尺寸一,待修改
参考课节:设备的尺寸二,待修改
本节内容,主要来自于对佩措尔德原教材的大段抄录。涉及大字体与小字体的字符点阵图画,是我自己画的。
我们开始。
一. 本节内容
上一节,我们讲到了,在自己的电脑上,查看和修改显示器分辨率的方法。
我们也可以在自己的电脑上,修改系统字体的大小。
存在这种设置方法的原因是因为,用于 640 × 480 显示器的字体在显示在 1024 × 768 或更大时,字体会显得太小而难以辨认。所以你会想要选择一个较大的系统字体。
修改系统字体大小的方法,随着系统版本的差异,而有所变化。
在这里,我仍然是以我本机的设置方法,向大家演示。至于说,你的电脑上,如何来设置系统字体大小,请你自行探索。你也可以自行查阅浏览器 AI。
首先呢,我们在桌面上,点击鼠标右键。然后在弹出的右键菜单中点选【显示设置】,过程如下面几张图所示。
图1
图2
在图2 里面,红色框线所标注的部分,是【缩放】选项。右边有一个选择框,当前选择框所展示的内容,为当前的设置情况。我们点选选择框的向下箭头,弹出一个下拉列表,如下图所示。
图3
在图3 里,有四个选项。默认的,我这里是 125%,我们可以选择其他的缩放选项,选完了以后,桌面的字体会变化,图2 所示的界面的字体大小也会发生变化。
在这里,我还是保持着默认的 125% 的缩放设置。
**在佩措尔德原教材中,他的教材案例中,他是在控制面板中,在【显示】程序的【设置】界面里面,设置的系统字体的大小。在【设置】界面里,选择【大尺寸】就会将系统字体设置为 "大字体",选择【正常尺寸】就会将系统字体设置为 "小字体"。**本篇文章在讲解的时候,会使用佩措尔德教材的 "小字体" 与 "大字体" 的概念。
我们接着往下讲。
传统的排版中,字体字符的大小是由 "点值"(point size,字号,也叫做磅值)来表示的。1 点大约是 1/72 英寸。在计算机排版中,1 点通常假定正好是 1/72 英寸。
从理论上来说,一个字体的点值是从这个字体中,最高字符的顶部到下部字符底端(例如 j、p、q 和 v 等字母)的距离,这里不包括重音符号。例如,字号 10 磅的字体从上到下的距离是 10/72 英寸。用 TEXTMETRICS 结构中的术语来说,字号(字体的大小)等于字段 tmHeight 减去字段 tmInternalLeading,如下图所示。
图4
本节的图4,与下述参考课节中的图1 是同一张图。
在现实生活的排版中,字体的点值并不精确地与字体中字符的实际大小对应。字体设计者可能会使实际字符比该点值表示的大小稍微大一点或小一点。毕竟,字体设计是一门艺术,而不是科学。
TEXTMETRICS 结构的 tmHeight 字段表示文本的相邻行在屏幕或者打印机上间隔有多大。这个间隔也可以由磅值来测量。例如,一个 12 点的行间距表示文本相邻行基线之间的距离为 12/72 英寸。不应该为 10 点值的字体使用 10 点的行间距,因为文本的相邻两行可能会碰在一起。
佩措尔德原教材的英文版使用的是 10 磅字号,13 磅的行间距。10 点值的字读起来会很舒服,任何小于 10 点的字都不适合长时间阅读。
Windows 系统字体(不管是小字体还是大字体,也不管你选择什么样的视频像素规模)都被假定是一个 10 点的字并使用 12 点的行间距,这似乎有点奇怪。既然都是 10 磅的字,为什么系统字体还有 "小字体" 和 "大字体" 之分呢?
问题的关键就在于,当在控制面板中选择小字体(依据佩措尔德原教材的 "小字体" 的概念与设置方法)或者大字体(依据佩措尔德原教材的 "大字体" 的概念与设置方法)时,实际上是选择了以每英寸点数计算的假定的视频显示器分辨率。当选择小字体时,也就是说你希望 Windows 假定视频显示器的分辨率是每英寸 96 个像素。当选择大字体时,你希望 Windows 假定视频显示器的分辨率是每英寸 120 个像素。
请再次看图4,那是基于显示器分辨率为每英寸 96 像素的小字体。我说过它的字号是 10 磅。10 点就是 10/72 英寸,如果乘上每英寸 96 像素就会产生大约 13 像素的结果。这也就是 tmHeight 减去 tmInternalLeading 的值。行间距是 12 点,或者 12/72 英寸,乘上每英寸 96 像素就会产生 16 像素,即是 tmHeight 的值。
下图显示了大字体。
图5
图5 所示的字符点阵图画,是基于分辨率为每英寸 120 像素的大字体。同样,一个 10 点的字,10/72 乘以每英寸 120 像素等于 16 像素(四舍五入),这就是 tmHeight 减去 tmInternalLeading 的值。12 点间距是 20 个像素,也就是 tmHeight 的值。(像第四章一样,再次强调,这里所显示的是实际度量的大小,这样你可以理解其工作方式。不要在程序中直接使用这些数字。)
有一点,我需要说明一下。佩措尔德原教材里面,对应于图5 的图片 5-4,佩措尔德在文字标注部分,佩措尔德将对应于 tmAscent 上边的三行方格的重音符号部分给标注错了。这三行方格的部分,它主要用于标注一个字母的重音符号,它属于是 tmInternalLeading,而不是 tmExternalLeading 。
原因在于,在第四章,在【文本尺寸的度量】一节,也就是在本专栏下述的参考课节里面:
佩措尔德已经说了,一个字符的高度由字段 tmHeight 来标识。它包含着基线以上的 tmAscent 字段和 tmDescent 两部分的高度值。其中,在 tmAscent 字段里面,它的最上边,还包含着 tmInternalLeading 字段的高度值。tmInternalLeading 字段的高度值,用作字母的重音符号。
所以,在本文的图5 里面,我给重音符号区域的文字标注是 tmInternalLeading,而不是佩措尔德原教材的 tmExternalLeading 。
结束语
本篇文章所涉及的大字体和小字体的字符点阵图画,是我用 Windows 程序设计的知识,来画出的。关于图4 和图5,学完了本章,你自己应该就可以将其画出来了。不过呢,作为初学者的你,有可能,绘制起来,会有些费力。
为了让大家多一些画图方面的练习,我准备在本章的末尾,将图4 和图5 的去掉文字标注的点阵图部分,将它的绘图代码,展示给大家。以便大家可以学会这种图的绘制方法。
学习了 Windows 程序设计的知识以后,一个用处就是,对于一些个不太容易绘制的图,对于那些个,用 PhotoShop,Illustrator 等作图软件不太容易绘制出来的图,我们还可以考虑着用 Windows 程序设计的知识,将其绘制出来。
虽说这可能会有些麻烦。但是呢,这也算是绘图的一种方法,是属于 Windows 程序员的一种方绘图法。
我个人觉得,Windows 程序设计的知识,有趣,也很有用啊。
希望大家能够学好 Windows 程序设计的知识。
专栏导航
下一篇:无