我正在关注这个非常好的答案这解释了如何使用 TikZ 在图像上绘图。现在我尝试使用 Tikz 库实现我得到的这个新的 tikz 图片external
,但出现了错误
包 tikz 错误:抱歉,系统调用“pdflatex -shell-escape -halt-on-e rror -interaction=batchmode -jobname“tikz/myTikzFileName”未产生可用的输出文件“tikz/myTikzFileName”(预期为 .pdf:.jpg:.jpeg:.png: 之一)。
我最后一次从事一个有大约 20 个图形的项目,这些图形都是用 tikz 和 pgfplots 制作的,外部化命令运行完美,直到现在我将 png 文件插入到 tikz 中。
我想要插入到文档中的图形是文件myGraphics.tikz
,
% myGraphics.tikz
\begin{tikzpicture}
\node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=0.9\textwidth]{some-image.png}};
\begin{scope}[x={(image.south east)},y={(image.north west)}]
\draw[red,ultra thick,rounded corners] (0.62,0.65) rectangle (0.78,0.75);
\end{scope}
\end{tikzpicture}
使用tikzscale
包实现:
% main.tex
\documentclass[dvipsnames]{beamer}
\usepackage{tikz,tikzscale}
%% To reduce compilation time
\usetikzlibrary{external}
\tikzexternalize[prefix=tikz]
\begin{document}
\begin{frame}{Lorem Ipsum}{dolor sit amet}
Some text
\begin{figure}
\tikzsetnextfilename{myExternalTikzFile}
\includegraphics[height=100pt]{myGraphics}
\end{figure}
\end{frame}
\end{document}
我确实得到了一个非空md5
文件,但仅此而已。
有人知道如何解决这个问题吗?
(some-image.png
是这个图片)
答案1
我发现在创建输出文件时可能存在两个问题:
- 使用来
\includegraphics
调用.tikz
文件;它应该是这样的\input
(参见@sheß回答) --shell-escape
也许您在运行文档时没有使用选项;您需要类似的东西pdflatex -synctex=1 -interaction=nonstopmode --shell-escape main.tex
。
我在下面插入代码,但其中的重要部分是从 sheß 的答案中借用的。
代码
\documentclass[11pt]{article}
\usepackage{tikz, tikzscale}
%% To reduce compilation time
\usetikzlibrary{external}
\tikzexternalize[prefix=tikz]
\newcommand{\inputtikz}[1]{\tikzsetnextfilename{#1}\input{#1.tikz}}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}[htb!]
\centering
\inputtikz{myGraphics}
\caption{Boletus nubes}
\label{fig:1}
\end{figure}
\lipsum[2]
\end{document}