pgfplots 中的操作模式(引用外部化图形)

pgfplots 中的操作模式(引用外部化图形)

我正在使用 tikz/pgf 的外部化功能来节省论文空间。我在 Mac 上使用 TeXShop。我在从外部化的 tikzpicture 引用主文档中的某些内容时遇到了麻烦。主文件的 MWE:

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\usepackage{tikz}
\usepgfplotslibrary{external}
\tikzexternalize[prefix=pdfimages/]

\newcommand{\includetikz}[1]{%
    \tikzsetnextfilename{#1}%
    \input{#1.tex}%
}

\begin{document}

\begin{equation} \label{eq:equation}
y = x + x^2
\end{equation}

\includetikz{image}

\end{document}

“image.tex” 的 MWE:

\begin{tikzpicture}
    \begin{axis}
        \addplot [color=black,solid,line width=1.0pt,domain=0:1,samples=11]{x+x^2};
        \addlegendentry{Eq. \ref{eq:equation}};
    \end{axis}
\end{tikzpicture}

生成: 無法參考!

pgfplots 手册(第 7.1 节中的操作模式)建议使用mode=list and make来解决此问题,但我无法理解如何运行生成的 makefile。使用 TeXShop 实现此问题的可靠方法是什么?感谢您的帮助。

编辑:make到目前为止,使用命令行是唯一对我有用的方法。我将其添加mode=list and make\tikzexternalizeTeXShop 中,然后从 TeXShop 编译它。在编译器的提示下,运行make -f main.makefile(main 是文件名)生成了图像。再编译几次文档,图形中的引用就可以正常工作了。这有效,但不是我最初想要的。如果有人知道在 TeXShop 中不使用命令行的方法,我将不胜感激。

答案1

截至目前pgfplots 1.13,它无需任何修改即可运行,即,只需运行pdflatex -shell-escape file.tex两次即可得到所需的输出。

这是一个简化的极小值,没有额外的image.tex(但其他方面相同),用和pgfplots 1.13编译pgf 3.0.1

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\usepackage{tikz}
\usepgfplotslibrary{external}
\tikzexternalize

\begin{document}

\begin{equation} \label{eq:equation}
y = x + x^2
\end{equation}

\begin{tikzpicture}
    \begin{axis}
        \addplot [color=black,solid,line width=1.0pt,domain=0:1,samples=11]{x+x^2};
        \addlegendentry{Eq. \ref{eq:equation}};
    \end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

您的解决方案可能是更新您的 TeX 发行版。

答案2

您是否尝试过重新运行 Latex?第一次运行时我收到警告LaTeX Warning: External picture 'pdfimages/Latex1' contains undefined references on input line 6.LaTeX Warning: There were undefined references.第二次运行 Latex 后警告消失,我得到:

在此处输入图片描述

相关内容