我正在写一本数学书,书中用到了大量 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 所需的磁盘空间。我计划在下一个“独立”版本中内置类似的功能。