如何管理包含大量 PSTricks 图形的文档?

如何管理包含大量 PSTricks 图形的文档?

我正在写一本数学书,书中用到了大量 PSTricks 图片。为了提高可重用性和保持关注点分离,我总是将自包含的 PSTricks 代码放在单独的文件中.tex。以下代码显示了自包含的 PSTricks 输入文件的示例:

% gridon.tex
\documentclass{minimal}
\usepackage{pstricks}
\pagestyle{empty}

\begin{document}
\begin{pspicture}[showgrid=true](4,3)
\end{pspicture}
\end{document}

然后我gridon.tex使用以下批处理文件进行编译以生成gridon.eps

latex %1.tex
dvips -R %1.dvi
ps2pdf -dCompatibilityLevel#1.5 -dPDFSETTINGS#/prepress %1.ps %1-temp.pdf
pdfcrop --restricted --hires %1-temp.pdf %1.pdf
pdftops -eps %1.pdf %1.eps

.tex然后,我将从主文件中导入gridon.eps以下内容

% main.tex
\documentclass{minimal}
\usepackage[hiresbb]{graphicx}
\usepackage{pst-node}
\begin{document}

\includegraphics[scale=2]{gridon}
\vspace{5mm}

I am \rnode[tl]{A}{xport} not \rnode[tr]{B}{xpert}.
\ncarc[angle=90,linecolor=blue,arrows=<->]{A}{B}

\end{document}

请注意,在main.tex文件中,文本之间还有内联 PSTricks 代码,因此我无法将它们放在单独的文件中。然后使用 编译主输入文件latex->dvips->ps2pdf

如何管理包含大量 PSTricks 图形的文档?

答案1

我写了独立包允许将图片(tikz 或 pstricks)和其他材料作为主文档的一部分或单独编译。虽然主要用于在图片创建期间快速重新编译,但它也可用于从图片创建 eps 或 pdf 图像,然后将其插入到主文档中。因此,您无需在每次编译主文档时重新编译每张图片,只需编译一次,然后仅使用图像即可。如果操作正确,则不会降低质量。

例子:

% Self-contained, compilable PSTricks picture
% e.g. "pic001.tex"
\documentclass{standalone}
\usepackage{pstricks}
\begin{document}   
\begin{pspicture*}(4,3)
\psframe[fillcolor=red,fillstyle=solid](4,3) 
\end{pspicture*}
\end{document}

% Main document
\documentclass{book}
\usepackage{standalone}
\usepackage{pstricks}

\newcommand*{\mypstrickspic}[1]{%
    \IfFileExists{#1.eps}%
         {\includegraphics[<options>]{#1.eps}}%
         {\input{#1.tex}}%
}
% Replace .eps with .pdf if main file uses pdflatex

\begin{document}
 %...
 \mypstrickspic{pic001}
 %...
\end{document}

然后,您首先编译图片文件并将其转换为.eps(dvi->ps,只需将.ps 重命名为.eps)或.pdf。

上述代码未经过全面测试,因为我的机器上没有安装 pstricks。我是 PGF/TikZ 的粉丝,并且很在意 pstricks 所需的磁盘空间。我计划在下一个“独立”版本中内置类似的功能。

相关内容