如何在 gnuplot 中合并父脚本的子脚本输出?

How to combine the output of child scripts from the parent script in gnuplot?

我有一个父 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_sthere_is_p 是我之前在父脚本中定义的条件。

我的子脚本 child.gplot 是:

set terminal postscript
set output "child".ARG1.".eps"
#plot graph here

我基本上希望将子脚本的 2 个图形合并到一个 .eps 文件中,每页一个,同时使用此方法创建 5 个不同的图 child1.eps

我尝试删除子脚本中将终端设置为后记的选项,但这只给我一个对应于 child0.eps 的单一图形,而 child1.eps 无处可寻。感谢您的帮助!

一个 EPS 文件中不能有多个页面。 EPS 图形旨在包含在页面上,因此它们可能不包含用于结束一页并开始另一页的 PostScript 运算符 showpage

所以你要么需要按照 Wrzlpmft 的评论中的 URL 并创建一个 PostScript 文件而不是 EPS(假设 gnuplot 能够做到这一点,link 用于 PDF输出),或者您需要自己将 EPS 文件合并到 PostScript 程序中。

如果你想做后者,那么你需要从 EPS 文件中读取 DSC 评论(以 %% 开头的行),找到 BoundingBox 评论,在 EPS 之前插入请求的媒体大小的区域BoundingBox(使用 setpagedevice 运算符),如果左下角坐标不是 0,0(使用 translate 运算符),则将 EPS 内容转换到媒体上,并在后面放置一个 showpage每股收益内容。然后对第二个 EPS 文件执行相同操作并将两个结果连接起来。