字距调整数据在实际字体文件中的存储位置在哪里/如何存储?

字距调整数据在实际字体文件中的存储位置在哪里/如何存储?

在大多数字体文件中,它们在哪里存储诸如“如果字符 %1 后面跟着字符 %2,则将间距减少 x 点”之类的信息?所有 (%1,%2, resulting_kerning) 元组是否都单独位于中心位置,或者描述 %2 的字体文件部分是否有一个将 %1 标识为字距调整对的部分(或者如果 %2 对于不同的前导字符具有多个可能的字距调整结果,则为 (%1, resulting_kerning) 元组的表)?还是其他什么?它在大多数字体文件格式中实际上是如何构建的?

在我的问题中,%1 和 %2 只是用作符号占位符。

答案1

对于使用tfm文件的 Classic TeX,字距调整和连字符信息位于 tfm 文件中的 ligtable 中。这是一个二进制文件,但有一个人类可读的“属性列表”格式版本,以及一个tftopl用于转换文件的实用程序:

在命令行上(texlive 版本,其他实现可能略有不同)

tftopl cmr10.tfm

生成一长串字体度量信息,您可能希望将其直接发送到文件中。您感兴趣的部分是

(LIGTABLE
   (LABEL O 40)
   (KRN C l R -0.277779)
   (KRN C L R -0.319446)
   (STOP)

例如你可以在哪里找到

   (LABEL C F)
   (LABEL C V)
   (LABEL C W)
   (KRN C o R -0.083334)
   (KRN C e R -0.083334)
   (KRN C u R -0.083334)
   (KRN C r R -0.083334)
   (KRN C a R -0.083334)
   (KRN C A R -0.111112)

哪些信息在人物主条目中作为注释重复出现:

(CHARACTER C V
   (CHARWD R 0.750002)
   (CHARHT R 0.683332)
   (CHARIC R 0.013888)
   (COMMENT
      (KRN C o R -0.083334)
      (KRN C e R -0.083334)
      (KRN C u R -0.083334)
      (KRN C r R -0.083334)
      (KRN C a R -0.083334)
      (KRN C A R -0.111112)
      (KRN C O R -0.027779)
      (KRN C C R -0.027779)
      (KRN C G R -0.027779)
      (KRN C Q R -0.027779)
      )

它会告诉您大写字母的高度宽度和斜体校正,以及如果后跟 则V其字距为负的事实。-0.111112 *10ptA

答案2

在 Computer Modern 系列 (METAFONT) 中,此类信息在 *.mf (METAFONT) 文件中描述并通过 *.tfm (字体度量表) 文件使用。

相关内容