当使用pdflatex和-output-directory
时,遇到tikz数字外化时遇到的问题。虽然.md5文件是在我期望的位置创建的,但创建外部化图片文件(.pdf,.log,.dpth)的命令失败。我的假设是,这是因为创建这些文件的pdflatex
不会继承-output-directory
选项,因此无法在正确的位置创建文件。当将pdflatex与-output-directory一起使用时,Tikz会使问题具体化
这是显示行为的最小示例。
main.tex:
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize[prefix=tikz/]
\begin{document}
Test externalize in combination with -output-directory
\tikzsetnextfilename{testpicture}
\begin{tikzpicture}
\node {Node};
\end{tikzpicture}
\end{document}
的bash:
mkdir -p build/tikz
pdflatex -output-directory build -shell-escape main.tex
错误:
===== 'mode=convert with system call': Invoking 'pdflatex
-shell-escape -halt-on-error -interaction=batchmode -jobname
"tikz/testpicture" "\def\tikzexternalrealjob{main}\input{main}"'
======== This is pdfTeX, Version 3.14159265-2.6-1.40.16
(TeX Live 2015/Debian) (preloaded format=pdflatex)
\write18 enabled.
entering extended mode
! I can't write on file `tikz/testpicture.log'.
生成的目录结构(的tree
输出):
.
├── build
│ ├── main.aux
│ ├── main.auxlock
│ ├── main.log
│ ├── main.pdf
│ └── tikz
│ └── testpicture.md5
└── main.tex
所以,据我所知,日志文件创建失败是由于在外部执行的pdflatex
命令的工作目录中缺少tikz目录。
我的假设是否正确?如果是这样,我该如何处理这个问题?