假设以下简单的乳胶testeps.eps
中有一些.eps 文件:同一目录、父目录和一个名为的子目录testsub
。
\documentclass{article}
\usepackage{pstool}
\begin{document}
\psfragfig*[width=15cm]{testeps} {}
\psfragfig*[width=15cm]{testsub/testeps} {}
\psfragfig*[width=15cm]{../testeps} {}
\end{document}
前两个工作正常,最后一个说:
"I can't write on file `../testeps-pstool.tex'}
"Emergency stop }
No file "../testeps.tex" or "../testeps-psfrag"
我在 Windows 上使用 miktex,并对我的 PdfLaTex 使用类似以下内容(在 TeXstudio 中,但我认为这并不重要)。
pdflatex.exe" -shell-escape -synctex=1 --aux-directory=C:\Windows\Temp -interaction=nonstopmode %.tex
我尝试了-shell-escape
能找到的所有 write18 排列组合。当然,\graphicspath
在转换为 psfragfig 之前我曾经使用过,但它不兼容?
答案1
pstool-package
CTAN 中的文档指出了此功能(不要称之为问题) :
pstool 自身无法解决的一个问题是包含主文档子目录中不存在的图像。例如,
\pstool{../Figures/myfig}
默认情况下无法处理,因为pdfTEX
通常没有权限写入比主文档层次更高的文件夹。目前可以通过两种不同的方式解决这个问题:(尽管可能仅适用于 Mac OS X 和 Linux):
- 使用以下命令授予 pdflatex 在任何地方写入的权限:
openout_any=a pdflatex
... - 在工作目录中创建一个指向路径中更高位置的符号链接:
ln -s ../testeps ./testeps
例如,然后通过这个符号链接引用图形。
我已经成功测试了第二种解决方案。
花了一整天时间寻找解决方案后,我希望我在这个小组中的第一个贡献可以帮助其他人:-)