【问题标题】:Glyph width in Open Type fontOpen Type 字体中的字形宽度
【发布时间】:2012-08-12 02:31:28
【问题描述】:

我有 MinionPro-Regular.otf 文件。我使用它的结构。我发现它有:

Table 'hhea': reference on 1668 metrics in 'hmtx' table. 
Table 'hmtx': 1668 pairs of hMetrics('advanceWidth', 'leftSideBearing').
Table 'CFF ': 1429 glyph names.
Table 'CFF ': param 'CharStrings' have offset to the index of 1668 elements. 
              Each element consist the Width property if it is not the same 
              as DefaultWidth.

CFF 规范规定,OTF 字体总字形数量(或者如果嵌入字体,则仅显示在 PDF 文件的 CFF 流中)必须是:

  1. 带有预定义的 ISO Adob​​e 字符集(228 个名称)1429 + 228 = 1649
  2. 带有预定义的“专家”字符集(115 个名称)1429 + 115 = 1544
  3. 带有预定义的“专家子集”字符集(86 个名称)1429 + 116 = 1515

最接近 1668 的数字是 1649,但相差 19 意味着我在这个索引想法中丢失了一些重要的东西。

问题是:

  1. 名称 INDEX 与指标/字符字符串 INDEX 之间的关系在哪里?
  2. FLAG 在哪里,使用哪种预定义字符集?

重要更新

字符集无关紧要!这是错误的方式!

【问题讨论】:

    标签: pdf typography opentype fontmetrics


    【解决方案1】:

    好吧,我终于明白了!

    高分辨率:https://docs.google.com/drawings/pub?id=1gM7gs-ibJ_0qsUrsxIkF5rYUmC9Ix2F9WD9d3aqwc0g&w=1209&h=1179

    它是如何工作的:

    Open Type Font 文件 (OTF) 由带有参数 numberOfHMetricshhea 表和带有字体中每个字形的水平指标数组的 hmtx 表组成。

    CFF 表由字符串数组组成。 versionNotesFullNameFamilyName 参数有 0...1428 个字形名称和 1429...1432 个字符串值。我的理解是,这 4 个字符串总是多余的。

    现在我们有了Predefined Standard Strings - 全世界所有开放式字体都通用。如上所述,该表有 0...378 个常用字形名称和 379...390 个额外参数名称。

    现在我们必须将两个名称表合并到一个数组中。预定义名称表的第一个元素,包括 .nondef 元素(这对我来说很奇怪,因为它是系统“无”,但正如我们看到的水平度量 500)和整个 CFF 字符串数组,除了参数的名称。元素总数必须为numberOfHMetrics

    我浪费了 60 个小时来了解整个情况。

    【讨论】:

      猜你喜欢
      • 2016-10-08
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 2012-11-23
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多