我正在使用 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
到\tikzexternalize
TeXShop 中,然后从 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 发行版。