将使用 TikZ 生成的多个图形保存为单独的图像

将使用 TikZ 生成的多个图形保存为单独的图像

我正在循环内生成一组图形foreach。我想将每个图形保存为单独的图像(带有任何扩展名)。我该如何实现?以下是我用来生成图形的代码:

\documentclass[11pt]{article}
\usepackage{float}
\usepackage{tikz}
\begin{document} 

\foreach \x/\y in {3.8/4,5.7/5,6.4/5 }
{   
    \begin{figure}[H]
        \centering
        \begin{tikzpicture}
            \draw[draw=black, very thick, fill=gray!30] (0,0) rectangle ++(\x,\y);
        \end{tikzpicture}
        \caption{Base \x~cm and height \y~cm.}
    \end{figure}
}

\end{document}

实际上,我在循环内生成了超过 200 个复杂图形。有人能给我指出正确的方向吗?

答案1

通过使用 的tikz库,external您在其中创建的所有图像tikzpicture将在创建时自动在外部保存为单独的文件(在下面的情况下,保存在工作文件夹中的 /tikzpics 中)。这的主要优点是后续编译不会重新创建每个图像,而是在保存文件夹中搜索并加载它们,除非它们在源代码中被修改。

\documentclass[11pt]{article}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{external}

\tikzexternalize
\tikzsetexternalprefix{tikzpics/}

\begin{document} 

\foreach \x/\y in {3.8/4,5.7/5,6.4/5 }
{   
    \begin{figure}[H]
        \centering
        \begin{tikzpicture}
            \draw[draw=black, very thick, fill=gray!30] (0,0) rectangle ++(\x,\y);
        \end{tikzpicture}
        \caption{Base \x~cm and height \y~cm.}
    \end{figure}
};

\end{document}

这样,您创建的所有图像都将作为单独的 pdf 文件出现在指定的文件夹中。

您可以查看 pgfmanual 的第 52 节,了解有关其工作原理的更多详细信息。请注意,要使外部化工作,您必须启用系统调用(您可以参考手册)。

相关内容