我正在尝试生成一个eps以包含在LaTeX文档中,并在图形内容周围使用1个像素的空白边框。 该图是我使用后记终端用 gnuplot 制作的图:
set terminal postscript enhanced eps color colortext 14 size 19cm,15cm font 'Courier-Bold,30'
这个图有很多空白,我想把它减少到1个像素。 我可以使用 epstool
实用程序将其裁剪为零空格边框:
epstool --bbox --copy input.eps output.eps
我找不到在不手动编辑.eps文件以更改边界框的情况下添加 1 个像素空白的方法。 像-l
(--loose
)这样的实用程序可以选择ps2eps
它完全符合我的需求。
(在最后一刻添加:刚刚看到你的答案,所以你可能不需要这个)
这在awk
中很容易做到:
awk '/^%%(HiRes)?BoundingBox:/{print $1, $2-1, $3-1, $4+2, $5+2;next}{print}'
我最终编写了一个 python 函数来执行边界框扩展:
def expand_boundingbox(epsfile, outfile):
with open(epsfile, 'r') as f:
with open(outfile, 'w') as o:
lines = f.readlines()
for line in lines:
line = line.split()
if line[0] == '%%BoundingBox:':
line[1] = str(int(line[1]) - 1)
line[2] = str(int(line[2]) - 1)
line[3] = str(int(line[3]) + 2)
line[4] = str(int(line[4]) + 2)
if line[0] == '%%HiResBoundingBox:':
line[1] = str(float(line[1]) - 1.0)
line[2] = str(float(line[2]) - 1.0)
line[3] = str(float(line[3]) + 2.0)
line[4] = str(float(line[4]) + 2.0)
line = ' '.join(line)
o.write(line+'n')