我正在使用以下 TeX 代码(最小示例),该代码编译良好,运行时pdflatex
再运行make -f filename.makefile
并重复该过程第二次以包含引用的图例:
\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{external}
\usepackage{tikz}
\pgfplotsset{
/tikz/external/mode=list and make
}
\tikzexternalize
\begin{document}
\begin{figure}
\ref{leg}
\begin{tikzpicture}
\begin{axis}[legend to name=leg]
\addplot {x};
\addlegendentry{$x=0,1$};
\end{axis}
\end{tikzpicture}%
\end{figure}
\end{document}
由于我需要将文件提交给期刊,因此我无法使用该pgfplots
软件包,因此我想使用该tikzexternal.sty
软件包。为了做到这一点,我尝试用替换第 3-9 行\usepackage{tikzexternal}
并将tikzexternal.sty
文件放入目录中。但是,这似乎与该功能不兼容legend to name
。
答案1
我尝试用 替换编译结果,tikzexternal.sty
只要我定义 即可\ifpgfpicture
。该legend to name
功能使用属于 PGF 的这个开关。但是,应该保存以定义它并将其保持在值“false”。
以下示例对我有用:
\documentclass{article}
%\usepackage{pgfplots}
%\usepgfplotslibrary{external}
%\usepackage{tikz}
\usepackage{tikzexternal}
\newif\ifpgfpicture
\tikzset{
/tikz/external/mode=list and make
}
\tikzexternalize
\begin{document}
\begin{figure}
\ref{leg}
\begin{tikzpicture}
\begin{axis}[legend to name=leg]
\addplot {x};
\addlegendentry{$x=0,1$};
\end{axis}
\end{tikzpicture}%
\end{figure}
\end{document}
我似乎认为这个定义需要成为的一部分tikzexternal.sty
。请注意,我还用替换了\pgfplotsset
,\tikzset
因为tikzexternal.sty
不知道该控制序列。
对于复杂的文档,您可以定义
\def\pgfplotsset#1{}
以便也可以替代它。