从 TikZ II 导出 eps 图形

从 TikZ II 导出 eps 图形

这个问题与从 TikZ 导出 eps 图形然而,那里接受的解决方案对我来说似乎不起作用。

我也尝试了第 344 页 pgfmanual (v2.10) 中的示例。它可以用于创建 pdf,但我无法使生成 eps 文件所需的部分正常工作(第 345 页所述)

我已经在两台不同的机器上尝试过,但两台机器都运行着带有 TeXLive-2013 和 TeXShop 的 mac os 10.9.2。

在我尝试了 pgfmanual 中提供的示例并且无法用它生成 eps 文件(根本无法)之后,我使用了提供的代码提供 Caramdir(Unix 系统版本在最上面)。我曾经latex -shell-escape运行过代码,一切似乎都很好。但是我无法使用“预览”、“mac 版 word(绝望的尝试)”或“adobe illustrator(win 7)”打开生成的 .eps 文件。前两个会向我显示一条错误消息,后者会向我显示一个空白区域。然而奇怪的是,如果我用 texshop 打开 eps 文件,它似乎能够将文件转换为 pdf 文档并显示它(如果我先手动重命名文件,也可以)。

我尝试了几个不同的版本,但总是得到相同的结果。以下是我尝试的最后一个代码:

\documentclass{article}
\usepackage{tikz}

% set up externalization
\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
 %  activate!
\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);.
\end{document}

我并不打算使用此种方法来制作 tikzpictures 的 eps 版本,因此我很乐意听取任何其他创建图片的想法。

还有一件可能影响不大的事情:我使用独立包将所有 tikz 图像放在单独的文件中。我希望这不会造成任何问题。还是我需要担心?

原因也可能是pdftoeps 安装不正确? 问题是提供的链接好像坏了。

找到可能的解决方案了吗?

我刚刚发现这个问题。它没有可接受的答案,但我pluton还是尝试了一下。一切都像以前一样工作,但我没有得到 eps 文件。幸运的是,其中一条评论引起了我的注意(也是来自 pluton),结果将是一个 *.ps 文件,但可以重命名为 *.eps。这似乎适用于他的方法以及我上面发布的代码。

这种方法有问题吗?*.ps 和 *.eps 可以互换吗?

答案1

这种方法也不太有效。出于某种原因,我在某些图片中收到了错误消息。在这些情况下,\end{tikzpiture}似乎被忽略了。但是我确实得到了一个可读的 .eps 文件。

问题中的代码似乎几乎正确。它将生成 *.ps 和 *.eps 文件。但它们都不会按预期运行。

以下代码将创建所需的 *.eps 文件(所有更改\tikzset{...}):

\documentclass{article}
\usepackage{tikz}

% set up externalization
\usetikzlibrary{external}
\tikzset{external/system call={latex \tikzexternalcheckshellescape -halt-on-error
-interaction=batchmode -jobname "\image" "\texsource";
dvips -o "\image".eps "\image".dvi}}

\tikzexternalize %  activate!

\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);.
\end{document}

相关内容