2016-11-23 67 views
1

当使用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目录。

我的假设是否正确?如果是这样,我该如何处理这个问题?

回答

0

至于我发现最简单的解决办法是建立在你的主文件夹的符号连接到内搭的tikz文件夹。像这样:ln -s build/tikz .

这是我在another tikz externalizing library文档中找到的解决方案。

0

这也可能是关于权限的问题。 尝试使用

chmod 777 tikz 

刚创建文件夹后。

您也可以尝试将main.tex文件移动到build文件夹中,以查看是否会更改内容。

相关问题