我正在使用 tikzexternalize 处理非常大文档中的大多数图片,效果很好。但对于图像
\tikzsetnextfilename{someName}
\begin{tikzpicture}
\begin{groupplot}[
group style={columns=2, rows=1 ,vertical sep=0cm},
view={0}{-90},
xtick=\empty,
ytick=\empty,
]
\nextgroupplot
\addplot3[surf, shader=interp] table [row sep=newline] {fname1.dat};
\nextgroupplot
\addplot3[surf, shader=interp] table [row sep=newline] {fname2.dat};
\end{groupplot}
\end{tikzpicture}
没有创建任何文件。如果我选择通过 \tikzexternaldisable 禁用外部化,则一切正常。
.dat 文件有 100x100 个条目。如果条目较少(例如 30x30),外部化就可以正常工作。
有人建议如何解决这个问题吗?顺便说一句:我没有收到来自编译器的任何错误或警告。
马萨诸塞州贝斯特
附言:我忘了说了:我的同事使用 Mac 没有任何问题。我使用的是 Windows 计算机,装有 Miktex 2.9。
答案1
好吧,这是我的完整文档中的最小示例,包括指向我使用的文件的链接。关键部分是 TikTexFile.tex - 我没有通过外部化获取 .ps 文件(这就是我发布代码的方式)。如果我取消注释行 \tikzexternaldisable,一切都会正常工作,因为数据是直接加载的。正如我所说,可以独立构建 Tikz 图片并包含 PDF。使用 MikTex 2.9、Windows 7 时会出现此错误。使用同事的 Mac 时一切正常。感谢您的时间!
测试文件
\documentclass[12pt,open=left]{scrbook}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{pgfplots.groupplots}
\usetikzlibrary{datavisualization}
\usetikzlibrary{datavisualization.formats.functions}
\usepgfplotslibrary{groupplots}
\usepgfplotslibrary{external}
\tikzexternalize[shell escape={--enable-write18}, system call={latex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource" & dvips -o "\image".ps "\image".dvi & ps2pdf "\image".ps "\image".pdf}
]
\begin{document}
\begin{figure}[!ht]
\centering
\input{TikzTexFile}
\end{figure}
\end{document}
TikTex文件.tex
%\tikzexternaldisable
\tikzsetnextfilename{TikzFilePDF}
\begin{tikzpicture} [scale = 0.2]
\begin{groupplot}[
group style={columns=5, rows=1 ,vertical sep=0cm},
view={0}{-90},
xtick=\empty,
ytick=\empty,
]
\nextgroupplot
\addplot3[surf, shader=interp] table [row sep=newline] {fn.dat};
\nextgroupplot
\addplot3[surf, shader=interp] table [row sep=newline] {fn.dat};
\end{groupplot}
\end{tikzpicture}
%\tikzexternalenable
文件链接:文档文件