使用 MacTex 将 TikZ 导出为 EPS

使用 MacTex 将 TikZ 导出为 EPS

我已按照此处提供的说明将.epsTikZ 绘图导出到文件:https://tex.stackexchange.com/a/8646/8078。但是,我无法获得任何方法来.eps成功生成文件。

我正在使用 MAC、OS 10.6.8,通过 TexShop 运行 MacTeX。

当我使用以下代码时,.pdf会创建 a,但没有.eps创建任何文件。代码如下:

\documentclass{article}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{tikz}

\usetikzlibrary{external}

\tikzset{external/system call={pdflatex \tikzexternalcheckshellescape -halt-on-error 
-interaction=batchmode -jobname "\image" "\texsource" &&
pdftops -eps "\image".pdf}}
\tikzexternalize

\begin{document}

\tikzset{external/force remake}

\begin{tikzpicture}[yscale=3.5,xscale=4.5]

\draw[->] (0,0) -- (2,0) node[below, text width=2cm] {Before Tax Income $z$};
\draw[->] (0,0) -- (0,2) node[below left, text width=1.8cm] {After Tax Income $z - T(z)$};

\begin{scope}
\clip (0,0) rectangle (1,2);
\draw (0,0) -- (1.5,1.5);
\end{scope}

\begin{scope}
\clip (1,0) rectangle (2,2);
\draw (0,0) -- (1.5,1.5);
\end{scope}

\draw[rotate around={45:(1,1)},red] (.6,1.1) node[left] {$L$} parabola bend (1,1) (1.4,1.1);

\draw[shift={(.125,.125)},rotate around={45:(1,1)},cyan] (.6,1.1) node[left] {$M$} parabola bend (1,1) (1.4,1.1);

\draw[shift={(.25,.25)},rotate around={45:(1,1)},ForestGreen] (.6,1.1) parabola bend (1,1) (1.4,1.1) node[right] {$H$};

\draw[dashed] (1,0) node[below] {\textcolor{red}{$z^{*}$}} -- (1,2);

\draw[dashed] (1.25,0) node[below] {\textcolor{ForestGreen}{$z^{*}+\triangle z^{*}$}} -- (1.25,2);

\path (.15,.1) node[right] {slope = $1-t$};

\end{tikzpicture}

\end{document} 

正如建议的那样https://tex.stackexchange.com/a/8646/8078,我也尝试了其他方法来创建.eps,即使用以下代码,其中系统调用被改变,并latex用于编译,而不是pdflatex

\documentclass{article}
\usepackage[usenames,dvipsnames]{xcolor}
\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}

\tikzset{external/force remake}

\begin{tikzpicture}[yscale=3.5,xscale=4.5]

\draw[->] (0,0) -- (2,0) node[below, text width=2cm] {Before Tax Income $z$};
\draw[->] (0,0) -- (0,2) node[below left, text width=1.8cm] {After Tax Income $z - T(z)$};

\begin{scope}
\clip (0,0) rectangle (1,2);
\draw (0,0) -- (1.5,1.5);
\end{scope}

\begin{scope}
\clip (1,0) rectangle (2,2);
\draw (0,0) -- (1.5,1.5);
\end{scope}

\draw[rotate around={45:(1,1)},red] (.6,1.1) node[left] {$L$} parabola bend (1,1) (1.4,1.1);

\draw[shift={(.125,.125)},rotate around={45:(1,1)},cyan] (.6,1.1) node[left] {$M$} parabola bend (1,1) (1.4,1.1);

\draw[shift={(.25,.25)},rotate around={45:(1,1)},ForestGreen] (.6,1.1) parabola bend (1,1) (1.4,1.1) node[right] {$H$};

\draw[dashed] (1,0) node[below] {\textcolor{red}{$z^{*}$}} -- (1,2);

\draw[dashed] (1.25,0) node[below] {\textcolor{ForestGreen}{$z^{*}+\triangle z^{*}$}} -- (1.25,2);

\path (.15,.1) node[right] {slope = $1-t$};

\end{tikzpicture}

\end{document}

在这种情况下,我收到以下错误消息:

./tikz_eps2.tex:55: 软件包 tikz 错误:抱歉,系统调用“latex -shell-es cape -halt-on-error -interaction=batchmode -jobname "tikz_eps2-figure0" "\def\t ikzexternalrealjob{tikz_eps2}\input{tikz_eps2}"; dvips -o "tikz_eps2-figure0".ps "tikz_eps2-figure0".dvi; ps2eps "tikz_eps2-figure0.ps"”未产生可识别的输出文件“tikz_eps2-figure0”(应为 .pdf:.jpg:.jpeg:.png: 之一)。请确认您已启用系统调用。对于 pdflatex,这是“pdflat ex -shell-escape”。有时它也被命名为“write 18”或类似名称。或者也许命令只是失败了?错误消息可以在“tikz_eps2 -figure0.log”中找到。如果您现在继续,我将尝试排版图片。

我按下回车键,LaTeX 继续编译.pdf。结果,.ps创建了一个我可以打开的文件,但.eps创建的文件是“空的”。也就是说,当我尝试用 打开它时.epsPreview我收到错误“警告:空作业。没有生成 PDF 文件。”或者,如果我.eps在 Adob​​e Illustrator 中打开文件,显示的只是一个空白的画布。

最后,我还对 extranlize 命令使用了以下语法:

\tikzset{external/system call={latex \tikzexternalcheckshellescape -halt-on-error
-interaction=batchmode -jobname "\image" "\texsource" && 
dvips -o "\image".ps "\image".dvi &&
ps2eps "\image.ps"}}
\tikzexternalize[shell escape=-enable-write18]

此后,我得到与第二种情况相同的结果。

我还应该提到,我尝试直接在 OS X 终端中使用它ps2eps来转换。我在终端中收到以下消息:.ps.eps

输入文件:/Users/nomad/Dropbox/tex_remote/TiKz/tikz_eps2-figure0.ps 处理:/Users/nomad/Dropbox/tex_remote/TiKz/tikz_eps2-figure0.ps 使用现有的 %%BoundingBox 进行渲染:0 0 345 225 正在计算边界框...已准备就绪。%%BoundingBox:4 3 332 225 正在创建输出文件 /Users/nomad/Dropbox/tex_remote/TiKz/tikz_eps2-figure0.eps ...已准备就绪。

然而,结果.eps仍然是“空白”,就像前面的情况一样。

相关内容