防止 Tikz externalize 重建图形

防止 Tikz externalize 重建图形

我正在使用 Tikz externalize 来制作手稿中的图片。包含 Tikz/pgfplots 代码的原始文件已被删除(但当我的模拟运行结束后,几个小时后会重新生成)。

与此同时,我想对文本做一些修改,然后交给其他人审阅。我仍然有之前 Tikz 编译的输出文件。有没有办法阻止 Tikz 尝试重建这些文件,而是按原样使用它们?

答案1

当您至少提供一些虚拟tikz;命令或\begin{tikzpicture} \end{tikzpicture}环境时,这是可能的。

你没有提供 TikZ 代码的示例,因此我无法建议你如何详细操作。因为你写的是“完成模拟”,并且你正在使用 PGFPlots,所以我假设你想要展示一些模拟结果图。最佳情况下,你只存储数据在一些数据文件中并像 一样绘制它们\addplot table {<filename>};。那么可能/应该只会发生这些数据文件在模拟运行期间被删除,但tikzpicture环境本身仍然存在。那么下面的解决方案将非常适合你。

有关详细信息,请查看代码中的注释以及PGFPlots 手册第 530 页(v1.14)中的“使用未安装 PGF 或 PGFPlots 的库”部分

\documentclass[border=5pt]{standalone}
% -----------------------------------------------------------------------------
% use this block to externalize your figures
\usepackage{pgfplots}
    \usetikzlibrary{
        % at present the PGFPlots External library is newer as the one in
        % TikZ so I use this one
        % (some bugs are fixed in it)
        pgfplots.external,
    }
    \tikzexternalize[
        % Because I think it is good practice to give your to externalize
        % pictures a name, I use the following option
        only named=true,
    ]
%% -----------------------------------------------------------------------------
%% use this block after externalizing
%% the only thing that needs to be present is either a `\tikz ...' command
%% or a `tikzpicture environment'
%% (copy the file
%%  <tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzexternal.sty>
%% into the directory of your main file (\jobname) and rename it to
%% "tikzexternal.sty")
%\usepackage{tikzexternal}
%% -----------------------------------------------------------------------------
    % store the externalized files in the following folder
    % (this folder must already exist; otherwise you will get an error)
    \tikzsetexternalprefix{Pics/pgf-export/}
\begin{document}
    \tikzsetnextfilename{test}
    \begin{tikzpicture}
% -----------------------------------------------
% this part can be commented, deleted or whatever
% after externalization and further use of the
% `tikzexternal' package
        \begin{axis}
            \addplot coordinates { (0,0) };
        \end{axis}
% -----------------------------------------------
    \end{tikzpicture}
\end{document}

答案2

代替

\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize

%\usepackage{tikz}
\usepackage{graphicx}
\usepackage{tikzexternal}
%\usetikzlibrary{external}
\tikzexternalize

由于您没有提供示例,而且我从未这样做过,因此这未经测试。但是,它是50.5 在未安装 PGF 的情况下使用外部图形在 TiZ 手册也讨论了该方法在加速编译方面的用途。请参阅那里的讨论以了解该方法的局限性。有几件事你需要确保以特定的方式而不是其他方式来做,其中库external和 TiZ 本身支持多种方式来实现同一件事。

如果你正在使用pgfplots,你应该查阅其手册,而不是 PGF/TiZ one,因为你可能正在使用它的外部化功能,而不是通用功能。请参阅Stefan Pinnow 的回答在这种情况下,整个过程似乎比通常的情况要复杂得多。

否则,尝试Tobi 的建议

相关内容