字形宽度——也就是字形的水平位移,是它在水平书写的文本行的基线上占用的空间量。换言之,它是当前文本位置在绘制字形时(通过转换文本空间)应移动的距离。简单的理解,就是文字所占用的宽度。但是需要注意的是,这个宽度与文字轮廓的实际尺寸是不同的。
对于一些字体,文字的宽度是固定的;它不会因文字不同而不同。这种字体被称为固定间距或等距字体。这种字体大多应用打字机式打印。然而,对于大多数用于高质量排版的字体,不同文字都有不同的宽度。这种字体称为比例字体或可变间距字体。无论是哪种字体,Tj应根据其字形宽度定位字符串的连续字形。
字形宽度信息会保存在字体字典和字体文件中,且应该保持相同。将这些字形宽度信息存储在字体字典中,其实是有些多余的,只是为了PDF阅读器无需解析字体文件内部就可以确定字形的位置(但对于PDF格式分析来说,是非常又必要的)。
其实用于显示文本的运算符是基于以下假设设计的:字形通常根据其标准宽度进行定位。然而,PDF中有提供了一些改变定位的方法。例如,TJ运算符允许在与文本字符串中的字符之间调整文字位置。graphics state也可以调整字符和单词距离。
除了宽度之外,字形还有其他几个影响字形定位和绘制的指标。对于大多数字体类型,这些信息属于字体程序的内部信息,并且没有在PDF字体字典中明确指定。但是,来了,就有奇葩的角色存在,来彰显与众不同——对于type3字体,所有度量都是显式指定的