当我使用 pdflatex 进行编译以及使用 pdflatex-shell-escape 进行编译时,都会出现消息“包 tikz 错误:抱歉,系统调用‘pdflatex -hell-escape -halt-on-e”。
如果我从序言中删除 \ tikzexternalize,它可以正确编译,但我知道如果希望将 tikz 图像包含在其他文本文件中,则必须使用它。哪个函数恰好有 \ tikzexternalize,因为这种情况不需要使用。
PS:摘自如何在其他 tex 文件中正确包含 tikz 图片?
主文件
\documentclass{book}
\usepackage{pgf}
\usepackage{tikz}
\usetikzlibrary{shapes,external}
\tikzexternalize
\usepackage{lipsum}
\tikzset{naming/.style={align=center,font=\footnotesize}}
\tikzset{area/.style = {draw, shape = regular polygon, regular polygon sides = 10, thick, minimum width = 5cm}}
\begin{document}
\lipsum[1]
\input{tikzcode}
\lipsum[2]
\end{document}
简化文件 (tikzcode)
\begin{figure}[htb]
\centering
\begin{tikzpicture}[font=\footnotesize]
\node [area] at (0,0) (cell1) {};
\end{tikzpicture}
\caption{test}
\label{fig:test}
\end{figure}
編輯:
正确的是 pdflatex 后面有一个空格(见图 1)该配置是针对 MikTex 中的 TeXstudio 的。
在图 2 中出现了错误但它生成了文档。
已编辑 2
以下是使用 pdflatex -shell-escape 编译的两幅图像
答案1
不确定您是否能够解决这个问题,但我遇到了同样的问题并注意到以下情况:
- 即使您看到错误,图像仍会生成的唯一原因是您已经创建了 pdf。如果您删除所有内容(tour .tex 文件除外)并再次运行,错误将导致什么也不会生成。
- externalize 函数为每个 tikzpicture 创建一堆 pdf 文件。这取决于很多因素,例如标记,因此如果您要重做一张图片,则可能需要在创建它们的外部文件夹中删除几个 pdf 文件(这很麻烦,因为您只能确定为主图像文件指定的名称)。如果不这样做,您将遇到您提到的错误。
- 我遇到同样错误的另一个原因是,当我重新打开 texstudio 时,编译命令已恢复正常(即“-shell-escape”不存在)。
希望这些评论能够对您有所帮助。
答案2
我最近遇到了这个错误,但找到了解决办法。我在公司的笔记本电脑上使用 Tex,并将主 Tex 文件存储在网络驱动器上。尽管使用 -—shell escape 进行编译,但我还是不断收到错误消息。
当我将主文档的文件夹切换到我的桌面,突然它就可以正常工作,并且没有任何错误消息。
也许这可以帮助您或其他遇到此错误的人。