从 TikZ 导出 eps 图形

从 TikZ 导出 eps 图形

第32部分外部化库手册(v2.10) 解释了如何生成 PDF 图形和 EPS 图形。我成功地尝试了 PDF 输出(手册中有一个完整解释的示例),但尝试了 EPS 失败(没有提供示例)。有人能给我一个最小的例子吗?

答案1

手册说,一种方法是pdftops -eps <pdf file> <eps file>在编译生成后运行.pdf

或者,您可以使用external/system call=...v2.10 手册第 345 页中所述的密钥。不幸的是,操作方法在操作系统和 TeX 发行版之间略有不同。以下是三种最常见组合的描述:


在 unixy 操作系统下(Linux、Mac OS X) 和TeX 直播(或者像 MacTeX 这样的衍生产品),下面的方法应该可以工作:

\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

\begin{document}
\begin{tikzpicture}
[some graphic]
\end{tikzpicture}
\end{document}

然后使用latex --shell-escape(不是pdflatex!)运行该文件。


如果你跑TeX 直播在下面视窗,定义;中的system call必须更改为&&(该更改也应该适用于其他操作系统中的至少一些 shell)。

\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

\begin{document}
\begin{tikzpicture}
[some graphic]
\end{tikzpicture}
\end{document}

您应该用它进行编译latex --shell-escape(我自己还没有测试过,但我很确定这会起作用)。


如果你使用MikTeX视窗,你需要进一步更改--shell-escape-enable-write18,并告诉 TikZ 有关更改:

\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[shell escape=-enable-write18] % MikTeX uses a -enable-write18 instead of --shell-escape.

\begin{document}
\begin{tikzpicture}
\draw (0,0) circle (1cm);
\end{tikzpicture}
\end{document}

并运行latex -enable-write18(不是pdflatex!)。


如果要运行pdflatex并从图像创建 .eps 文件,system call请将

pdflatex \tikzexternalcheckshellescape -halt-on-error 
-interaction=batchmode -jobname "\image" "\texsource" && % or ;
pdftops -eps "\image".pdf

相关内容