如何使用 TikZ 外部通过 includegraphics 自动替换 tikzpicture?

如何使用 TikZ 外部通过 includegraphics 自动替换 tikzpicture?

有没有办法使用externalTikZ 库从主 LaTeX 文档生成另一个 LaTeX 源,其中每个tikzpicture环境都由适当的命令替换includegraphics

在包含许多此类环境的文档中手动执行此操作可能会很麻烦。

主文档示例x.tex

\documentclass{article}

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

\begin{document}
  ...
  \begin{figure}
    \begin{tikzpicture}
      ...
    \end{tikzpicture}
    \caption{A}
  \end{figure}

  \begin{figure}
    \begin{tikzpicture}
      ...
    \end{tikzpicture}
    \caption{B}
  \end{figure}
  ...
\end{document}

期望输出:

\documentclass{article}

\usepackage{graphics}

\begin{document}
  ...
  \begin{figure}
    \includegraphics{x-figure0}
    \caption{A}
  \end{figure}

  \begin{figure}
    \includegraphics{x-figure1}
    \caption{B}
  \end{figure}
  ...
\end{document}

答案1

有关所有内容均externalization在“50 外部化库”一节中进行了说明,而如何在tikzpictures不使用的情况下发送 tex 文件tikz则在“50.5 使用未安装 pgf 的外部图形”一节中进行了说明。因此,请阅读这些页面。以下只是一个简短的配方,没有太多细节。代码是从 借来的pgfmanual

原始文件包含tikzpictures已外部化的。它加载tikzexternal库。使用命令\tikzexternalize,所有内容tikzpictures都将被提取和处理。对于一个main.tex文件,有多个main-figureX.pdf(和一些.dpth)。

\documentclass{article}
% main document, called main.tex
\usepackage{tikz}
%\usepackage{graphicx}
%\usepackage{tikzexternal}
\usetikzlibrary{external}
\tikzexternalize
\begin{document}
\begin{tikzpicture}
\node {root}
child {node {left}}
child {node {right}
child {node {child}}
child {node {child}}
};
\end{tikzpicture}
A simple image is \tikz \fill (0,0) circle(5pt);.
Furthermore, we might want to draw \tikz[baseline]\draw (0,-1) rectangle (1,1);
\end{document}

一旦所有数字都正确。序言更改为:

\documentclass{article}
% main document, called main.tex
%\usepackage{tikz}
\usepackage{graphicx}
\usepackage{tikzexternal}
%\usetikzlibrary{external}
\tikzexternalize

tikz包和external库不再使用,并被graphicxtikzexternal包(tikzexternal.sty在文件夹中latex/pgf/utilities/tikzexternal.sty,您必须将其复制到您的工作文件夹)替换。

下次运行将加载.pdf图形而不是生成它们。

相关内容