这个问题与从 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}