fonts - bluescale 对 Type 1 字体意味着什么?

标签 fonts postscript typography

我无法理解 Type 1 字体规范的蓝调部分。您能否举例说明过冲抑制的执行或停止情况?

最佳答案

/BlueScale值在 Type 1 Font Format 中描述 书,Adobe Systems 出品。请参阅第 5.6 节 BlueScale(第 45 页),其中用整页来描述 BlueScale 值。

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

Overshoot suppression 是 Type 1 字体格式中的几个提示之一,它允许字体渲染器生成漂亮的字形,当没有很多设备像素来渲染字形形状时,因此不可能保持保真度字形轮廓的细微差别。通过确保对齐区域中的所有特征都以相同的像素高度渲染,渲染器即使不能提供保真度也可以提供均匀性。另一方面,在字形较大或设备像素较小的情况下,有大量像素可以保持字形轮廓的保真度,因此不需要过度抑制。

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

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

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

值 240 是基于每英寸 72 个 PostScript 语言点单位和每英寸 300 个设备像素以及每个 em-square 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 中描述的参数。细节超出了这个答案的范围;您真的必须阅读第 1 类书籍本身。

Type 1 字体格式的第 5.6 节 BlueScale 稍微清楚地解释了所有这些,但并不完全严格。这不是一个简单的话题。阅读整本 Type 1 Font Format 书以及 PostScript Language Reference Manual 的坐标系和字体部分非常重要。 ,如果您真的想理解本 Material ,请自己完成公式。

关于fonts - bluescale 对 Type 1 字体意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8693290/

相关文章:

javascript - 我在实时服务器上的 WordPress 项目未对 JS 文件进行排队(收到 404 错误)

java - 我应该如何修复这个字体加载器?

graphviz - 如何在 graphviz 中使用 Metapost 中的后记作为图像?

vim - 为什么字体 DejaVu Sans Mono 在 (G)Vim 和 Emacs 中看起来不同?

html - Canvas 上的大字体在 Chrome 中需要很长时间

减小 EPS 格式的绘图大小

postscript - 一种在路径中的每条线上执行单独笔画的方法

javascript - 确定适合 HTML 元素的最大字符数的方法

css - 流体排版 Sass mixin 为同一元素创建多个规则

web - 响应式网页排版(以ems计算行高)需要代码解释