![将使用 TikZ 生成的多个图形保存为单独的图像](https://linux22.com/image/426022/%E5%B0%86%E4%BD%BF%E7%94%A8%20TikZ%20%E7%94%9F%E6%88%90%E7%9A%84%E5%A4%9A%E4%B8%AA%E5%9B%BE%E5%BD%A2%E4%BF%9D%E5%AD%98%E4%B8%BA%E5%8D%95%E7%8B%AC%E7%9A%84%E5%9B%BE%E5%83%8F.png)
我正在循环内生成一组图形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 节,了解有关其工作原理的更多详细信息。请注意,要使外部化工作,您必须启用系统调用(您可以参考手册)。