我有一个父gnuplot脚本,根据特定条件调用子gnuplot脚本。我想将子脚本的输出图组合成一个.eps
文件。我该怎么做呢?
例如,我的父脚本是:
set terminal postscript
set output "combined.eps"
if (there_is_s == 1) call "child.gplot" "0"
if (there_is_p == 1) call "child.gplot" "1"
there_is_s
和there_is_p
是我之前在父脚本中定义的条件。
我的孩子脚本child.gplot
是:
set terminal postscript
set output "child".ARG1.".eps"
#plot graph here
我基本上希望将子脚本的2个图形组合成一个合并的.eps
文件,每页一个,同时使用此方法创建5个不同的图child1.eps
等。
我尝试删除在子脚本中将terminal设置为postscript的选项,但这只是给了我一个与child0.eps
对应的图表,而child1.eps
无处可寻。谢谢你的帮助!
答案 0 :(得分:3)
EPS文件中不能有多个页面。 EPS图形旨在包含在页面上,因此它们可能不包含用于结束一个页面并启动另一个页面的PostScript操作符showpage
。
所以你需要按照Wrzlpmft注释中的URL并创建一个PostScript文件而不是EPS(假设gnuplot能够做到这一点,链接用于PDF输出),或者你需要结合EPS将自己归入PostScript程序。
如果你想做后者,那么你需要从EPS文件(开始%%的行)中读取DSC注释,找到BoundingBox注释,在EPS之前插入BoundingBox区域所需的媒体大小(使用setpagedevice
运算符),如果左下坐标不是0,0(使用translate
运算符),则将EPS内容转换为媒体,并在EPS之后放置showpage
内容。然后对第二个EPS文件执行相同操作并连接两个结果。