蓝调对于Type 1字体意味着什么?

时间:2012-01-01 13:21:39

标签: fonts postscript typography

我无法理解Type 1字体规​​范的蓝调部分。你能用一些例子来向我解释一下过度抑制的执行或停止吗?

1 个答案:

答案 0 :(得分:5)

Adob​​e Systems的 Type 1 Font Format 一书中描述了/BlueScale值。请参见第5.6节 BlueScale (第45页),它提供了整页以描述BlueScale值。

简单地说,BlueScale告诉字体渲染器它应该关闭的字体比例过冲抑制 Overshoot 是指字形形状的一个特征,它在字形设计中落入一个重要的水平带。 Type 1格式将这些波段指示为对齐区域。对齐区域可用于基线或x高度。 过冲抑制意味着字体渲染器应渲染所有字体特征,这些特征最终位于对齐区域中相同的像素高度。

过冲抑制是Type 1字体格式中的几个提示之一,它允许字体渲染器生成好看的字形,当没有很多设备像素渲染字形时,因此不可能保持对fordity的保真度。字形轮廓的细微差别。通过确保对齐区域中的所有要素都以相同的像素高度渲染,渲染器可以提供均匀性(如果不是保真度)。另外,在字形较大或设备像素较小的情况下,有足够的像素来保持字形轮廓的保真度,因此不需要过冲抑制。

/BlueScale值是一个数字,它根据设备像素给出一个字符单位的大小(其中1 em是1000个字符单位)。如果字符单元的大小大于此值,则关闭过冲抑制。如果字符单元的大小较小,则打开过冲抑制。 类型字体1格式不清楚如果字符单元的大小恰好等于BlueScale值会发生什么。

第5.6节给出了在300 dpi设备上设置BlueScale值的建议。约束是:

  • 设置BlueScale = (pointsize - 0.49) / 240即。将BlueScale设置为允许一个整数点大小接收过冲抑制的值,并且下一个最大整数点大小关闭过冲抑制。
  • 设置BlueScale,使(pointsize - 0.49) * (maximum alignment zone height) < 240 BlueScale的值足够小,以便在字体中最大的对齐区域变为一个设备像素高之前,过冲抑制结束。< / LI>

值240基于每英寸72个PostScript语言点单位和每英寸300个设备像素以及每平方英寸1000个字符单位的组合。 1点em-square每点有1000个字符单位,或每英寸72 * 1000个字符单位,或每个设备像素72 * 1000/300个字符单位,=每个设备像素240个字符单位。

第5.6节给出了两个示例BlueScale值,用于300 dpi设备上的字体点大小:

  • 0.039625允许在9点处发生过冲抑制,但不会在10点发生
  • 0.04379允许在10点发生过冲抑制,但不会发生11点
  • 对于23个字符单位的最大对齐区域高度,BlueScale公式中必须使用10而不是11的点大小,以便在调用过冲抑制时23个字符单位小于1个设备像素

过冲抑制也受/BlueShift参数的影响,如 Type 1字体格式的第5.7节 BlueShift 中所述。细节超出了这个答案的范围;你真的必须阅读Type 1本书。

类型1字体格式的第5.6节 BlueScale 解释了所有这些,但并不完全严格。这不是一个简单的话题。阅读整本 Type 1字体格式书籍,加上 PostScript Language Reference Manual 的坐标系和字体部分,以及自己完成公式的工作,这一点非常重要,如果你真的想了解这种材料。