如何使用 \graphicspath + epstopdf

如何使用 \graphicspath + epstopdf

背景:我正在使用 MiKTeK 和 TeXnicCenter。由于我使用的是 Windows,所以我必须处理名称中有空格的文件夹,例如, C:/Documents and Settings/... 我使用\usepackage[space]{grffile}和 来处理这个问题。

问题:我在一个文件夹中保存了一堆 .eps图片,并使用\graphicspath在我的 LaTeX 文档中指定该文件夹。我尝试了一些方法来获取带有图片的 PDF:

1) 如果我使用该软件包epstopdf,它不知道必须将 PDF 版本的图形保存在该文件夹中,它只会抱怨找不到该图形。它最终会生成一个没有图片的 PDF 文件。

2) 如果我使用 LaTeX => PS => PDF 编译,它会抱怨找不到图片,但还是会显示它(!?)。问题是它以混乱的方式显示图片。将我尝试加载的所有图片放在第一页。(这是一份包含多页和图片的文档)。

尝试的解决方案:

1) 如果我使用该软件包在图片文件夹中编写一个简短的 LaTeX 文件epstopdf,那么它会在该文件夹中保存图片的 PDF 版本。稍后,当我尝试编译要生成的文档时,它就可以正常工作。但这很麻烦……


这是 xport 添加的。在我之前的回答中(我已将其删除),JJ O 说道:

在此处输入图片描述

答案1

1) 如果我使用该软件包epstopdf,它不知道必须将 PDF 版本的图形保存在该文件夹中,它只会抱怨找不到该图形。它最终会生成一个没有图片的 PDF 文件。

您是否尝试过该命令\epstopdfsetup{outdir=./}(要执行软件包epstopdf是否已加载?这应该会将 PDF 文件写入与主文件相同的目录中。

答案2

如果您希望将图形(或任何其他文件)用于多个 LaTeX 文档,通常的做法是将其放在本地树中,而不是通过路径引用。因此,例如,我将共享图形(徽标、ETC。) 中的%USERPROFILE%\texmf\tex\latex\local。 的位置%USERPROFILE%略有不同,但由于您似乎使用的是 Windows XP,因此它将位于C:\Document and Settings\<username>。 您可以在 内执行相同操作My Documents,但需要具有结构tex\latex\...

创建适当的结构,然后使用 MiKTeX 包管理器将根目录(在我的示例中为%USERPROFILE%\texmf)添加为本地包文件夹。MiKTeX 现在应该能够找到您的图形文件,而无需\graphicspath

另一种方法是自己进行转换,然后使用相对的包含路径。例如,如果你有一个结构

C:\Documents and Settings\myuser\My Documents\Project\LaTeX\main.tex
C:\Documents and Settings\myuser\My Documents\Project\OtherStuff\graphic.eps

然后你可以使用命令行版本epstopdf进行转换,得到一个文件

C:\Documents and Settings\myuser\My Documents\Project\OtherStuff\graphic.pdf

然后将其包含在main.tex使用中\graphicspath{{../OtherStuff/}}。(对于需要或绝对路径的文件,无法进行自动转换,../因为这是一个安全问题。)

答案3

用 运行您的文档,xelatex那么您就不需要包了epstopdfxelatex可以即时进行转换。

答案4

请执行以下步骤。它已经过测试并且运行良好。

  1. 按如下方式设置您的目录结构。

    • Images并且Project目录在xport目录中。

      在此处输入图片描述

    • 所有 EPS 图像均在 Images目录中。

      在此处输入图片描述

    • 主要输入文件,名为main.tex目录Project

      在此处输入图片描述

  2. 写入主输入文件,命名main.tex如下。

    % main.tex
    \documentclass{article}
    
    \usepackage{graphicx}
    \graphicspath{{../Images/}}
    
    \begin{document}
    This is a figure \includegraphics{figure}
    \end{document}
    
  3. 使用记事本创建一个批处理文件,如下所示。

    rem automatic.bat takes input file name without extension.
    echo off
    latex %1
    dvips %1
    ps2pdf %1.ps
    

    Project为方便起见,建议您将此批处理文件保存在文件夹中,并将其命名为automatic.bat。注意:不要忘记选择Save as type: All Files

    在此处输入图片描述

    在此处输入图片描述

  4. 在命令提示符下,更改为Project目录并输入automatic main(不带.tex扩展名),然后按回车键,如下所示。

    在此处输入图片描述

  5. 完成!您将获得main.pdf如下结果。

    在此处输入图片描述


更新以回应 JJO 自己的回答:

  1. 当您选择latex=>ps=>pdf输出配置文件时,TeXniCCenter 会在内部调用我在 中指定的命令automatic.bat。此工作流程旨在编译导入 EPS 的输入文件(扩展名为 .tex 的文件)。
  2. 当您选择latex=>pdf输出配置文件时,TeXniCCenter 会在内部调用如下命令

    rem xport.bat
    echo off
    pdflatex %1
    

    此工作流程旨在编译导入 PDF、PNG、JPEG 的输入文件(扩展名为 .tex 的文件)。

  3. latex=>pdf输出配置文件可用于编译每次加载epstopdf包时导入 EPS 的输入文件。但是编译速度会变慢,因为每个现有的 EPS 都会先转换为 PDF。因此,我建议您不要使用latex=>pdf输出配置文件。它效率不高!!!!

相关内容