有没有办法使用external
TikZ 库从主 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
已外部化的。它加载tikz
和external
库。使用命令\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
库不再使用,并被graphicx
和tikzexternal
包(tikzexternal.sty
在文件夹中latex/pgf/utilities/tikzexternal.sty
,您必须将其复制到您的工作文件夹)替换。
下次运行将加载.pdf
图形而不是生成它们。