包含数百张相同图片的最有效方法

包含数百张相同图片的最有效方法

我有一个 pspicture,涉及来自 psvectorian 包的装饰品:

\begin{pspicture}(0mm,10mm)(0mm, 10mm)
\rput[tl](5mm,5mm){\psvectorian[height=5mm]{10}}
\end{pspicture}

我在长文档的每一页中多次使用此代码片段。就目前而言,我已将其制作成宏并在需要装饰的任何地方执行它,但编译速度非常慢,并且容易出现渲染错误。每次编译时,一些图形都会被随机转置或反映到其他地方,下次编译时会修复这些问题,而其他地方会出现其他问题,因此我最终编译了几次并将正确渲染的页面拼接在一起。

我确信有更好的方法可以做到这一点,但不知道该怎么做。

答案1

根据我的评论添加答案:

比较以下两个文档编译所需的时间:

有盒子

\documentclass[]{article}

\usepackage{pstricks}
\usepackage{psvectorian}

\newsavebox\MyPSbox
\sbox\MyPSbox
  {%
    \begin{pspicture}(0mm,10mm)(0mm, 10mm)
    \rput[tl](5mm,5mm){\psvectorian[height=5mm]{10}}
    \end{pspicture}%
  }
\newcommand*\mypspic{\usebox\MyPSbox}

\newcounter{testcount}

\begin{document}
\loop\ifnum\value{testcount}<100
\stepcounter{testcount}%
\mypspic\par
\repeat
\end{document}

不带盒子

\documentclass[]{article}

\usepackage{pstricks}
\usepackage{psvectorian}

\newcommand*\mypspic
  {%
    \begin{pspicture}(0mm,10mm)(0mm, 10mm)
    \rput[tl](5mm,5mm){\psvectorian[height=5mm]{10}}
    \end{pspicture}%
  }

\newcounter{testcount}

\begin{document}
\loop\ifnum\value{testcount}<100
\stepcounter{testcount}%
\mypspic\par
\repeat
\end{document}

在我的计算机上,盒装版本花了 0.18 秒来编译,而后一个版本花了 0.42 秒。

答案2

\documentclass{article}
\usepackage{pstricks}
\usepackage{psvectorian}
\newsavebox\PSBox
\sbox\PSBox{\rule{0pt}{5mm}%
    \rput[tl](5mm,5mm){\psvectorian[height=5mm]{10}}}

\begin{document}
    \psforeach{\iA}{1,2,..,100}{\usebox\PSBox\par}
\end{document}

仅有的latex

实际 0m0,487s 用户 0m0,403s 系统 0m0,049s

附加 ? dvips andps2pdf`

实际 0m1,311s 用户 0m1,004s 系统 0m0,102s

相关内容