背景:我正在使用 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
那么您就不需要包了epstopdf
。xelatex
可以即时进行转换。
答案4
请执行以下步骤。它已经过测试并且运行良好。
按如下方式设置您的目录结构。
Images
并且Project
目录在xport
目录中。所有 EPS 图像均在
Images
目录中。主要输入文件,名为
main.tex
目录Project
。
写入主输入文件,命名
main.tex
如下。% main.tex \documentclass{article} \usepackage{graphicx} \graphicspath{{../Images/}} \begin{document} This is a figure \includegraphics{figure} \end{document}
使用记事本创建一个批处理文件,如下所示。
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
。在命令提示符下,更改为
Project
目录并输入automatic main
(不带.tex
扩展名),然后按回车键,如下所示。完成!您将获得
main.pdf
如下结果。
更新以回应 JJO 自己的回答:
- 当您选择
latex=>ps=>pdf
输出配置文件时,TeXniCCenter 会在内部调用我在 中指定的命令automatic.bat
。此工作流程旨在编译导入 EPS 的输入文件(扩展名为 .tex 的文件)。 当您选择
latex=>pdf
输出配置文件时,TeXniCCenter 会在内部调用如下命令rem xport.bat echo off pdflatex %1
此工作流程旨在编译导入 PDF、PNG、JPEG 的输入文件(扩展名为 .tex 的文件)。
latex=>pdf
输出配置文件可用于编译每次加载epstopdf
包时导入 EPS 的输入文件。但是编译速度会变慢,因为每个现有的 EPS 都会先转换为 PDF。因此,我建议您不要使用latex=>pdf
输出配置文件。它效率不高!!!!