![外部图形和 tikz externalize 无法一起工作](https://linux22.com/image/264336/%E5%A4%96%E9%83%A8%E5%9B%BE%E5%BD%A2%E5%92%8C%20tikz%20externalize%20%E6%97%A0%E6%B3%95%E4%B8%80%E8%B5%B7%E5%B7%A5%E4%BD%9C.png)
我经常使用 tikz 库,external
到目前为止效果不错。现在,我需要导入外部文件(eps、png、pdf……我不在乎),并添加轴。我知道我可以用 来做到这一点\addplot graphics
,但它只适用于没有 externalize 的文档。如果我使用这个库,图形将保持空白或产生一些奇怪的东西。这是一个 MWE:
\documentclass[a4paper,fontsize=10pt]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize[optimize=false,prefix=pics/]
\tikzset{external/force remake=false}
\usepackage{pgfplots}
\usepackage{graphicx}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis on top,title=Test]
\addplot graphics[xmin=0,xmax=1,ymin=0,ymax=1]
{testfile};
\end{axis}
\end{tikzpicture}
\end{document}
如果我删除有关外部化的三行,它可以正常工作,但不是这样的。
有什么方法可以让我在同一文档中同时使用这两者,还是我必须通过在单独的文档中编译它们来获取冲浪图周围的轴?
编辑:刚刚发现删除该选项prefix=pics/
有效。我不知道为什么。另外,这实际上不是一个选项,因为我的所有其他外部化图片都在这个文件夹中……
答案1
出现此问题的原因是testfile.png
应该与文件位于同一文件夹中.tex
。当您使用external
带有prefix=pics/
选项的库时,文件就位于该文件夹中.tex
,因此也testfile.png
应该位于该文件夹中。pics
解决此问题有几种不同的方法:
- 移至文件
testfile.png
夹pics
。 - 添加
\graphicspath{..}
到序言中告诉 LaTeX 图像位于.tex
文件上方的一个文件夹中。 - 用于
\addplot graphics ... {../testfile};
指定图像位于上面的文件夹中。 - 指定图像文件名时使用绝对路径。