将 UserDict 加载到 Postscript 文件中

将 UserDict 加载到 Postscript 文件中

如何将用户字典存储在一个文件中并在另一个文件的开头加载相同的字典?这应该给出相同的结果,就好像字典是在同一文件的顶部定义的一样。

更明确地说:我写了一本全球词典对象字典,包含几个变量和过程定义。

!%PS-Adobe-3.0 EPSF-3.0

/ObjDict 30 dict def
ObjDict begin
...
/particle 
{  
     /posy exch def
     /posx exch def
     ...
} bind def
...
end %ObjDict

%%EOF

现在我想调用程序粒子与相应的位置POSX来自另一个文件,我想由我的模拟程序创建该文件。例如:

!%PS-Adobe-3.0 EPSF-3.0

ObjDict begin
    0.5 0.5 particle
    0.1 0.0 particle
    0.3 0.3 particle
end %ObjDict

%%EOF

有没有一种简单的方法可以让第二个文件知道第一个文件中定义的字典 ObjDict?提前致谢!

答案1

这个问题可能更适合 StackOverflow,但它太旧了,无法迁移。也是userdict后记语言定义的特定词典;其他字典只是被称为字典或者听写

您似乎正在尝试制作 EPS(封装 PostScript)文件。 EPS 文件旨在是独立的。因此它们不应该依赖于另一个文件中的数据。

要制作这些常规 PostScript,请将第一行更改为

%!

或者

%!PS

。然后您可以使用run运算符来运行带有字典的文件。

  • (文件名)   跑步   -

true setglobal另外,除非您使用将分配模式更改为全局,否则您还没有创建“全局”字典。但也要注意,您不能简单地使用def全局内存中分配的对象。全局内存中的对象不能存储在本地内存中的字典或数组中(如userdict)。因此,如果您确实需要一个全局数组,则必须将其放入globaldict.

currentglobal
  true setglobal
  globaldict /ObjDict 30 dict put
setglobal

但您可能不需要使用全局内存。

相关内容