texlive 更新后编译错误

texlive 更新后编译错误

我曾经使用该类pstricksbeamer覆盖语法(例如使用\only<2>{<some pstricks code>})制作动画图片standalone

这里有一个完成这项工作的 MWE:

\documentclass[beamer,pstricks,preview=true]{standalone}

\standaloneenv{{pspicture}}

\psset{unit=2cm}
\begin{document}
\begin{standaloneframe}
  \begin{pspicture}[showgrid=bottom](-5,-5)(5,5)
    \psdot(0,0)
    \only<2>{\psdot(1,1)}
  \end{pspicture}
\end{standaloneframe}
\end{document}

此 MWE 确实可以使用 texlive2013 (iso 版本) 进行编译latex -> dvips -> ps2pdf:一个包含两页的 pdf,并且只有 pspictures 环境被正确裁剪。但是,它无法使用完全更新的 texlive2013 发行版进行编译,从 ps 到 pdf 的转换失败,并显示以下消息:

Error: /typecheck in --div--
Operand stack:

   1   1   0.0   0.0   a   65781.8

Execution stack:

   %interp_exit   .runexec2   --nostringval--   --nostringval--   
--nostringval--   2   %stopped_push   --nostringval--   --nostringval--   
--nostringval--   false   1   %stopped_push   1910   1   3   %oparray_pop   
1909   1   3   %oparray_pop   1893   1   3   %oparray_pop   1787   1   3   
%oparray_pop   --nostringval--   %errorexec_pop   .runexec2   
--nostringval--   --nostringval--   --nostringval--   2   %stopped_push   
--nostringval--   --nostringval--   --nostringval--   --nostringval--   4   
--nostringval--   %repeat_continue   --nostringval--

Dictionary stack:

   --dict:1168/1684(ro)(G)--   --dict:0/20(G)--   --dict:127/200(L)--   
--dict:173/300(L)--

Current allocation mode is local

Last OS error: 2

Current file position is 101382

GPL Ghostscript 9.05: Unrecoverable error, exit code 1

此代码确实通过删除preview包进行了编译,但结果并非预期。我也尝试使用包preview选项进行激活standalone,但这也没有效果。

有人知道如何解决这个问题,或者如何修改 MWE 以便它编译并给出正确的输出?

答案1

因此,经过多次尝试和错误,我还是无法找出为什么此代码不再适用于更新的 TexLive 发行版。不过,我找到了一种解决方法。

似乎不知何故preview包和pstricks不再一起出现。因此,解决方法是停用standalone包的预览选项。这样就不会再出现编译错误,但结果不是预期的。实际上,standaloneframe环境会覆盖指令\standaloneenv{{pspicture}},以便裁剪到的尺寸standaloneframe而不是的尺寸pspicture。使用geometry包允许设置的尺寸,standonealoneframe以便它们与的尺寸相匹配,从而pspicture解决了问题:

\documentclass[beamer,pstricks,preview=false]{standalone}

\geometry{paperheight=20cm,paperwidth=20cm,left=0cm,right=0cm,bottom=0cm,top=0cm}

\psset{unit=2cm}
\begin{document}
\begin{standaloneframe}%
  \begin{pspicture}[showgrid=bottom](-5,-5)(5,5)
    \psdot(0,0)
    \only<2>{\psdot(1,1)}
  \end{pspicture}%
\end{standaloneframe}
\end{document}

相关内容