Tikz 生成的 EPS 无法通过其他应用程序(例如 Illustrator 或 GIMP)打开?

Tikz 生成的 EPS 无法通过其他应用程序(例如 Illustrator 或 GIMP)打开?

一个相似的问题已经有人问过,但还没有得到答案。我正在使用 tikz externalise 库生成 EPS 图像。当我在不同的 latex 文档中使用这些 EPS 图像时,它们工作正常。但相同的图像无法在 Adob​​e 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 发布后修复了这个问题。如果您使用的是pgfplots1.11 版,并且您写的\usepgfplotslibrary{external}是,那么此修复也可用\usetikzlibrary{external}。使用新版本,您不再需要ps2eps "\image.ps"

事实上,我猜你的外部化编译失败了。但是由于ps2eps "\image.ps"被调用没有检查返回代码(它位于分号后面而不是&&),即使dvi在编译错误后生成的文件已损坏,它也会被执行。

我看到以下行动项目可以解决您的问题:

  1. 确保您拥有pgfplots1.11 版本,并改写\usepgfplotslibrary{external}\usetikzlibrary{external}它还会激活 PGF 3.0.0 的错误修复。然后,删除 的调用ps2eps

  2. (1) 的替代方案:;用替换&&。这可能仍会产生意外的边界框。

  3. 查看.log外部图片的文件并修复任何报告的编译问题。

  4. 验证你的代码没有像 MWE 中的空格,即

    -halt-on- error。这不能编译。

相关内容