第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