研究僧们在搬砖的时候常常需要将 eps(matlab 仿真的输出图像,fig 图另存为即可得到 eps 格式)转换成为 pdf 格式,以方便插入 Latex 写的论文中,与此同时,除了进行格式转换以外,还需要去除原图无用的白边。一般同学们都是都是用 Acrobat 来转的。但是上述的任务其实都是固定的套路,每次用 Acrobat 转难免烦心,而且安装 Acrobat 也比较麻烦。下面推荐的一个命令行工具 epstool.

1 安装 epstool

1.1 macOS 下的安装方法

epstool 可以通过 Homebrew 安装

1
2
brew update
brew install epstool

1.2 windows 下的安装方法

前往网站 Epstool 下载,解压缩后 bin 目录下即有可执行文件 epstool.exe

2 使用方法

epstool 的使用过程也非常简单。以下面这个图表为例:

原图

首先用下面的命令来去除白边。因为是程序来做的,去除白边的效果甚至比人自己做好:

1
epstool --copy --bbox input_file.eps input_file_temp.eps

实测发现有些 EPS 文件由 Windows 版本的 epstool 处理时会出现 BoundingBox 读取失败的问题,换用 Linux/macOS 平台下的 epstool 则没有这个问题。

输出的 input_file_temp.eps 文件就是完成白边切除的中间文件,如下图所示:

去除白边后的图

第二步也是最后一步,将 eps 图像转成 pdf,也只需要一行命令

1
epstopdf --hires --outfile=output.pdf input_file_temp.eps

epstopdf 在 Ubuntu 操作系统上可以通过 texlive-font-utils 这个包来安装:

1
sudo apt install texlive-font-utils

这样就完成了 eps 到 pdf 的转换了。

上述的操作流程可以写成一个脚本

1
2
3
epstool --copy --bbox $1 my_epstopdf_temp.eps
epstopdf --hires --outfile=$2 my_epstopdf_temp.eps
rm my_epstopdf_temp.eps