如果OpenType中的Local和Global Subr INDEX基本上是可重用的组件

时间:2019-01-17 07:28:44

标签: fonts specifications opentype

我无法从description for the CFF2 table中得知,但这似乎表明您的字体可以包含可重用的组件。

  

子例程(“ subr”)通常是一系列CharString字节,表示一个子程序,该子程序在字体的CharString数据中在多个地方使用。可以通过使用调用子例程运算符(将要调用的subr的编号作为操作数)从一个或多个CharString中存储一次,但多次引用

我的问题是确切的含义是什么,是否意味着您可以基本上将CharString定义为模块或组件,这将缩小字体文件的大小并使内容更加精致。

如果是这种情况,我想知道具有局部子程序与全局子程序的目的是什么。如果实际上只是模块化,我看不到这种隔离级别的优势。

嗯,我猜这就是chapter 8中描述的内容。只是想澄清。

1 个答案:

答案 0 :(得分:0)

它们听起来像是:它们使您可以定义用于将字形定义为子例程的任何字节序列,以便您可以在charstring中的任何位置引用它,包括其他子例程。它既是压缩的一种形式,又是通过允许任意数据有效地用作宏而不是仅允许包含整个字形的组合来实现更广泛字形组合的方法。

此外,在全局压缩和局部区分之间既可以增加压缩量,又可以帮助子程序组织:如果您根据多个DICT对象组织了CFF / CFF2字体数据,则子程序步骤可以包括先进行全局遍历,以从字体中的所有字典中找到字形共享的所有字节子字符串,然后可以仅基于那些DICT结构中的子字符串进一步分别压缩每个DICT。

还请注意,此时Type1规范是完全没有意义的:Type1字体在几年前就已过时,甚至Adobe也不再使用它们(事实上,当该规范最终定稿时,他们非常积极地将所有字体切换到Type2 )。在进行规范咨询时,您需要"the compact font format""the Type2 Charstring format"技术说明,以及有关CFF2和CFF2新字符字符串格式之间差异的OpenType 1.8文档。

您将来也可能想在http://typedrawers.com上问类似的问题,这是一个专门的空间,印刷术人员和印刷工程师可以在这里进行问答。