一个相似的问题已经有人问过,但还没有得到答案。我正在使用 tikz externalise 库生成 EPS 图像。当我在不同的 latex 文档中使用这些 EPS 图像时,它们工作正常。但相同的图像无法在 Adobe Illustrator 或 GIMP 中打开。我正在使用 MacTex,在 Mac(Mavericks)系统上。我用来生成图像的 MWE 是,
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzset{external/system call={latex \tikzexternalcheckshellescape -halt-on- error
-interaction=batchmode -jobname "\image" "\texsource" &&
dvips -o "\image".ps "\image".dvi;
ps2eps "\image.ps"}}
\tikzexternalize
\begin{document}
\begin{tikzpicture}
\draw (0,0) circle (1cm);
\end{tikzpicture}
\end{document}
为了编译我正在使用latex --shell-escape file.tex
。
答案1
PGF 生成的 EPS 文件应该始终可查看和使用。
我知道 PGF 的 EPS 输出驱动程序有一个错误(它产生了错误的边界框,比较Tikz 外部化:Latex dvi/ps 生成围绕图形的 a4paper 边界框)。我在 PGF 3.0.0 发布后修复了这个问题。如果您使用的是pgfplots
1.11 版,并且您写的\usepgfplotslibrary{external}
是,那么此修复也可用\usetikzlibrary{external}
。使用新版本,您不再需要ps2eps "\image.ps"
。
事实上,我猜你的外部化编译失败了。但是由于ps2eps "\image.ps"
被调用没有检查返回代码(它位于分号后面而不是&&
),即使dvi
在编译错误后生成的文件已损坏,它也会被执行。
我看到以下行动项目可以解决您的问题:
确保您拥有
pgfplots
1.11 版本,并改写\usepgfplotslibrary{external}
。\usetikzlibrary{external}
它还会激活 PGF 3.0.0 的错误修复。然后,删除 的调用ps2eps
。(1) 的替代方案:
;
用替换&&
。这可能仍会产生意外的边界框。查看
.log
外部图片的文件并修复任何报告的编译问题。验证你的代码没有像 MWE 中的空格,即
-halt-on- error
。这不能编译。