PostScript包含过程集(ProcSets)。 过程集是包含命名过程和操作符的字典。PostScript过程集和资源存储在哪里?
这些程序集按类别排列。 现在这些类别存储在哪里?
- 哪里是(常规)资源存储? (例如字体,CIDFont,CMap,ProcSet,...)
- ProcSet的类别存储在哪里?
你需要systemdict只是两个额外的词典
更新1(localDict和globalDict存储资源,或者究竟是这些存储?):
(KENS的答案后)好的,也许现在的第一个问题应该是。资源如何存储在解释器中。
从我的理解是,有可能是这样的结构:
Resources (Dictionary ??? is this local or global or ...?)
- Font (Dictionary)
- CIDFont (Dictionary)
--- CIDFontType (integer)
--- CIDFontName (name)
--- CIDSystemInfo (dictionary)
--- FontBBox (array)
--- FontMatrix (array)
--- FontType (integer)
--- ...
--- ...
- CMap (Dictionary)
- FontSet (Dictionary)
- Encoding (Array)
- Form (Dictionary)
- Pattern (Dictionary)
- ProcSet (Dictionary)
--- BitmapFontInit (Dictionary)
--- CIDInit (Dictionary)
--- ColorRendering (Dictionary)
--- FontSetInit (Dictionary)
--- Trapping (Dictionary)
- ColorSpace (Array)
- ...
- ...
- Category (Dictionary)
--- Generic (Dictionary)
大多数是存储在VM字典。在本地VM或全局VM中。
难道这些资源也加入了UserDict和globaldict,因为:
- 如果存储在本地虚拟机的东西是最有可能加入到了UserDict。
- 如果您在全局VM中存储了某些内容,则很可能会将其添加到globaldict中。
看到PostScript语言参考手册3(第66页第3章):
的字典的UserDict和globaldict旨在是为应用程序定义的词典等 对象 主存储库。当PostScript程序在本地VM中创建字典时,它通常会将该字典与userdict中的名称关联起来。 同样,当程序在全局VM中创建字典时,它通常会将该字典与globaldict中的名称关联起来。
所以最简单的将创造200点字典:“MyLocalResources”,并在第一储存在UserDict中,另一个在globaldict“MyGlobalResources”。 这两个字典将包含类别(字体,CIDFont,ProcSet等)。
该查找资源运算符是一种机制,你必须实现自己将看看这两个字典之一。
这是正确的吗?
FontDirectory和GlobalFontDirectory是这些实际上是局部和全局的“字体”资源类的实现?