我在文档中使用了大量 png/jpg 图像,因此我决定使用pdfLaTeX。这种方法的主要问题是技巧不直接支持。因为我找到了一个包(自动 pst pdf) 应该可以解决这个问题,所以我尝试了一下。但是我发现了一个问题。
我们来看一个简单的例子:
\documentclass[12pt,a4paper]{report}
\usepackage[pdf]{pstricks}
\usepackage[on]{auto-pst-pdf}
\begin{document}
This is a test file
\newline
\newline
\begin{pspicture}(-5.25,-5.25)(5.25,5.25)
\pscircle*[linecolor=cyan]{5}
\psgrid[subgriddiv=0,gridcolor=lightgray,gridlabels=0pt]
\Huge\sffamily\bfseries
\rput(-4.5,4.5){A} \rput(4.5,4.5){B}
\rput(-4.5,-4.5){C}\rput(4.5,-4.5){D}
\rput(0,0){auto-pst-pdf}
\rmfamily
\rput(0,-3.8){PSTricks}
\rput(0,3.8){\LaTeX}
\end{pspicture}
\end{document}
如果我们尝试在其文件夹中编译此文件(输出文件夹= build
):
pdflatex -shell-escape -output-directory=build test.tex
一切运行正常,生成的 PDF 被移动到result
。现在,让我们假设我们有一个具有以下结构的文件夹:
-- root (Makefile)
|___ src (tex files)
|___ build (everything generated by pdfLaTeX)
如果我们从根文件夹调用 make,则会执行以下命令:
pdflatex -shell-escape -output-directory=build src/test.tex
尽管唯一的区别是 tex 文件的位置,但这不起作用:临时图像文件(dvi、ps、pdf)未经编译,并且生成的文档不会获得其图形。
我曾尝试使用一些 auto-pst-pdf 选项:
\usepackage[on,
latex={-out-directory=. -jobname=test-pics test.tex},
dvips={-o test-pics.ps test-pics.dvi},
pspdf={-dAutoRotatePages=/None test-pics.ps test-pics.pdf},
crop=off
]{auto-pst-pdf}
但到目前为止,这种方法不起作用,我不知道这是否是正确的方法。有人遇到过类似的问题吗?如果有,你是如何解决的?
答案1
您从 开始pdflatex
。root
所以这是当前目录。auto-pst-pdf
首先将调用latex --jobname=test-autopp test
来生成test-autopp.dvi
带有图片的 。第一步将失败,因为latex
显然无法test
在当前目录中找到root
,并且不知道应该在 中查找scr
。
你应该总是pdflatex
从主文件的目录开始。其他一切都可能让人相当困惑。
答案2
插入到你的序言中:
\graphicspath{{./}{./src/}{./build/}}