[pstricks] problem with \msave in \pscustom

John Frampton j.frampton at neu.edu
Thu Apr 21 16:28:56 CEST 2005


Dear PSTricks gurus (guru?),

I have been trying to learn how \pscustom works.  Either
something is wrong with my setup or I am missing something. When
I run the following simple program, neither Tex nor dvips has any
difficulty.  But Ghostscript cannot handle the output.  I have
included the log files from Tex and from GS.

%%%%% Tex file
\input pstricks

\pscustom{
\psline(0,0)(1,0)
\msave
\rotate{45}
\psline(0,0)(1,0)
\mrestore
\psline(0,0)(1,0)
}
\bye

%%%%% log file from Tex run
This is TeX, Version 3.14159 (Web2c 7.3.2x) (format=tex 2002.4.3)
   21 APR 2005 10:11
**C:/LING/TEX/TEXTG/DPUT/CUSTOM
(c:/LING/TEX/TEXTG/DPUT/CUSTOM.tex
(c:/TeX/texmf/tex/generic/pstricks/pstricks.tex
\@unused=\write0

`PSTricks' v97 patch 14  <1999/12/23> (tvz)
\pst at dima=\dimen16
\pst at dimb=\dimen17
\pst at dimc=\dimen18

   etc.

%%%%% log file from Ghostscript failure
Loaded Ghostscript DLL c:\gstools\gs5.50\gsdll32.dll
Aladdin Ghostscript 5.50 (1998-9-11)
Copyright (C) 1998 Aladdin Enterprises, Menlo Park, CA.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Displaying DSC file C:/LING/TEX/TEXTG/DPUT/CUSTOM.ps
Displaying page 1
Unrecoverable error: stackunderflow in length

--- Begin offending input ---
%%Page: 1 1
1 0 bop 2920 663 a @beginspecial @setspecial
 tx at Dict begin STP newpath 0.8 SLW 0. setgray  0.8 SLW 0. setgray
/ArrowA { /lineto load stopped { moveto } if } def /ArrowB { } def
[ 28.45274 0.0 0.0 0.0  /currentpoint load stopped pop /Lineto /lineto
load def false Line  /msavemtrx [ tx at Dict /msavemtrx known { msavemtrx
aload pop } if CM ] def  45. rotate 0.8 SLW 0. setgray  /ArrowA { /lineto
load stopped { moveto } if } def /ArrowB { } def [ 28.45274 0.0 0.0
0.0  /currentpoint load stopped pop /Lineto /lineto load def false
Line  tx at Dict /msavemtrx known { length 0 gt } { false } ifelse { /msavematrx
[ msavematrx aload pop setmatrix ] def } if  0.8 SLW 0. setgray  /ArrowA
{ /lineto load stopped { moveto } if } def /ArrowB { } def [ 28.45274
0.0 0.0 0.0  /currentpoint load stopped pop /Lineto /lineto load def
false Line  gsave 0.8 SLW 0. setgray 0 setlinecap stroke  grestore
end

@endspecial
26430 73413 a Fa(1)p eop

--- End offending input ---
file offset = 0
gsdll_execute_cont returns -17






More information about the PSTricks mailing list