如何定义一个 Postscript 过程,其定义不受分页限制,即具有全局范围?这是一个简单示例,其中转换\newpage
期间失败后的过程调用ps2pdf
:
\documentclass{article}
\usepackage{pstricks}
\begin{document}
test
\pstVerb{/printany {256 string cvs print (\string\n) print} def}
\pstVerb{12345 printany} % works
\pstVerb{(john) printany} % works
\newpage
test
\pstVerb{12345 printany} % printany undefined
\pstVerb{(john) printany} % --"--
\end{document}
答案1
您可以将带有环境的定义写入filecontents
外部文件,然后通过 读取它\pstheader{file}
。
答案2
我找到了一种方法,可以在文档的任何地方对简单或复合的 Postscript 对象(例如过程和数组)进行全局定义。这样,Postscript 变量的内容(例如保存计算结果的内容)可以在文档的后面使用:
\documentclass{article}
\usepackage{pstricks}
\pstVerb{%
true setglobal % global allocation mode for PS objects
globaldict begin % following definitions being put in the global dictionary
/printany {256 string cvs print (\string\n) print} def
% more definitions to follow
end
false setglobal
}
\begin{document}
test
\pstVerb{12345 printany}
\pstVerb{ %global definition of array variable
true setglobal
globaldict /somearray [(john) (linda) (albert) 5678] put
false setglobal
}
\pstVerb{somearray 1 get printany} % linda
\newpage
test
\pstVerb{somearray 3 get printany} % 5678
\end{document}