导入和裁剪 EPS 图像的良好工作流程是什么?

导入和裁剪 EPS 图像的良好工作流程是什么?

我希望能够将 EPS 文件导入 LaTeX,同时使用第三方图像查看器/编辑器快速找到裁剪坐标。有哪些好的免费工具可以实现这一点?GIMP(GNU 图像处理程序)是一款适用于所有主要平台的免费程序,但它不是矢量图形编辑器;它可以工作吗?似乎您可以在导入时使用 GIMP 选择任何分辨率。此外,由于 EPS 文件是矢量图形文件,LaTeX 是否有可以识别的本机单位?

答案1

方法A:直接处理PostScript

由于您正在处理 PostScript 图像,因此一种选择可能是使用GhostView;我过去曾成功做到过。例如,考虑tiger.eps

  1. tiger.eps使用 GhostView打开。

  2. 显示边界框如果你想查看现有空白的范围:

    在此处输入图片描述

  3. 将光标放在识别左边底部正确的顶部坐标。在我的示例中,这些是 l b r t = 15 175 564 743。

  4. 打开并找到“序言”中tiger.eps以以下内容开头的行:%%BoundingBox

    %!PS-Adobe-2.0 EPSF-1.2
    %%边界框:1 2 611 792
    
  5. 更新此内容以包含新的边界框:

    %!PS-Adobe-2.0 EPSF-1.2
    %%边界框:15 175 564 743
    

    可能还会有一个%%HiResBoundingBox条目,您可以相应地进行更新。

  6. 刷新 GhostView 中的视图,现在显示裁剪的边界框:

    在此处输入图片描述

  7. 像往常一样通过 包含\includegraphics,因为边界框已永久更新。如果你不想永久更新 EPS,你也可以使用

    \includegraphics[...,bb=15 175 564 743, clip=true...]{tiger}
    

    在您的文档中。


方法 B:通过 PDF 裁剪

  1. 使用命令行转换

    epstopdf 老虎.eps
    

    从而产生tiger.pdf

  2. 使用pdfcrop

    pdfcrop tiger.pdf
    

    从而产生tiger-crop.pdf

  3. 使用以下方式转换回 EPS

    pdftops -eps tiger-crop.pdf tiger.eps
    

    tiger.eps用现在裁剪的版本覆盖:

    在此处输入图片描述

    新的边界框类似于

    %%边界框:0 0 548 576
    

    这与方法 A(得出宽度为 564 - 15 = 549;高度为 743 - 175 = 568)。

答案2

您可以使用epspdftkSiep Kroonenberg 的 的 GUI 界面epspdf.texlua script。它适用于 Windows 和 Linux,一步完成所有操作(转换和裁剪生成的 .pdf)。我将以我的一个旧图形文件为例,该文件是用 和 生成的pstrickspst-eps边界框计算得(非常)糟糕。该过程非常简单:启动 epspdftk 并选中Compute tight bounding box,然后单击Open选择要转换的文件:

在此处输入图片描述

一旦选择,您可能会要求查看.eps 文件:

在此处输入图片描述

然后点击Convert and save…。一秒钟后,你就可以在自己最喜欢的 PDF 查看器中查看生成的 .pdf 文件:

在此处输入图片描述

如果您想进行批量转换,也可以从命令行启动.texlua 脚本。

答案3

我只是将其作为补充沃纳的回答“B”,它在bash脚本中使用他的方法,处理eps指定目录中的所有文件:

#!/bin/bash

D=$1

# Process all EPS file in passed directory
for filename in $D/*.eps; do

    # Get path and filename without extension
    base=${filename%.*}

    # Convert EPS to PDF
    epstopdf "$base"".eps"

    # Crop PDF
    pdfcrop "$base"".pdf"

    # Convert PDF back to EPS
    pdftops -eps "$base""-crop.pdf" "$base"".eps"
done

# Remove the intermediate "crop" pdfs
rm $D/*-crop.pdf

答案4

OP 没有说明完成的 PDF 文档是否用于打印到纸上,还是以数字形式分发。

如果目的是打印到纸上,则矢量图就没有必要,因为最终用户无法缩放图像。事实上,矢量图可能并不受欢迎,因为矢量图可能包含模糊的绘图指令,不同的打印机可能会以不同的方式解释这些指令。如果打印量是商业数量,则矢量图可能会被禁止。

对于纸张,最好的解决方案通常是将 EPS 栅格化。GIMP 可以完成这项工作,其他一些程序也可以。忽略 EPS 的“原始”分辨率。相反,考虑图像的物理打印尺寸(以英寸为单位)和分辨率(每英寸点数)。除非您的作品是美术作品,否则通常 300dpi 足以处理彩色或灰度图像,600dpi 足以处理黑白线条艺术。

因此,如果您的彩色图像尺寸为 4"W x 3"H,则在将 EPS 导入 GIMP 时要求分辨率为 300dpi。栅格化图像将为 1200 x 900 像素。但是,这是未裁剪的。

导入时,会指定 dpi,并计算尺寸。您可以通过在导入时更改 dpi 来有效地更改尺寸。然后,使用“图像缩放”菜单将 dpi 更改为 300,让尺寸随之变化。

使用时请务必指定分辨率\includegraphics

相关内容