peterk@hparc0.HP.COM (Peter Kempinski) (07/23/90)
I'm trying to use a troff to PostScript translator which is a part
of AT&T SYSV DWB.
I am familiar with troff but I have very little understanding of
PostScript.
While printing a file I received a stack underflow error on one of
the exch operators.
I included a copy of the offending header file in hope that one of the
net experts may help me pinpoint the problem.
I apologize for a long include ...
--
Peter M. Kempinski _
Hewlett-Packard Australia ___ _ -
Phone: +61 3 284 2219 _- . -__-.-
UUCP !hp-lsd.cos.hp.com!hparc0.hp.com!peterk --. . . . . .-
Internet: peterk@hparc0.HP.COM - . . . . . . . . -
ACSnet: peterk%hparc0@aso.oz.au - . . . . . . . . . -
DESK: Peter KEMPINSKI / HP9061/HU -. . . . . . . . . ._
Snail: 126-142 Trenery Crescent -_ ._------_ . . ._
Abbotsford, Vic. 3067 -- -_.X_-
AUSTRALIA. -- \__________
___________________________________________________________________________
( /usr/lib/dwb/dpost.ps )
%!PS
%%Version: 2.2
%%DocumentFonts: (atend)
%%Pages: (atend)
%%EndComments
save
mark
%
% Library file used by the PostScript translator for device independent troff
% output.
%
/margin 5 def
/min {
1 index 1 index gt {exch} if pop
}def
/mapfonts {
/Symbol /S Sdefs cf
/Times-Roman /S1 S1defs cf
/R /Times-Roman def
/I /Times-Italic def
/B /Times-Bold def
/BI /Times-BoldItalic def
/H /Helvetica def
/HI /Helvetica-Oblique def
/HB /Helvetica-Bold def
/HX /Helvetica-BoldOblique def
/CW /Courier def
/CO /Courier def
/CI /Courier-Oblique def
/CB /Courier-Bold def
/CX /Courier-BoldOblique def
/PA /Palatino-Roman def
/PI /Palatino-Italic def
/PB /Palatino-Bold def
/PX /Palatino-BoldItalic def
/Hr /Helvetica-Narrow def
/Hi /Helvetica-Narrow-Oblique def
/Hb /Helvetica-Narrow-Bold def
/Hx /Helvetica-Narrow-BoldOblique def
/KR /Bookman-Light def
/KI /Bookman-LightItalic def
/KB /Bookman-Demi def
/KX /Bookman-DemiItalic def
/AR /AvantGarde-Book def
/AI /AvantGarde-BookOblique def
/AB /AvantGarde-Demi def
/AX /AvantGarde-DemiOblique def
/NR /NewCenturySchlbk-Roman def
/NI /NewCenturySchlbk-Italic def
/NB /NewCenturySchlbk-Bold def
/NX /NewCenturySchlbk-BoldItalic def
/S /S def
/S1 /S1 def
/GR /Symbol def
/ZD /ZapfDingbats def
/ZI /ZapfChancery-MediumItalic def
} def
/setup {
/res exch def
/penwidth exch def
/aspect exch def
/mag exch def
/mode exch def
/forms exch def
/copies exch def
-72 mul /yorigin exch def
72 mul /xorigin exch def
forms 1 eq {/margin 0 def} if
/columns forms sqrt ceiling cvi def
/rows forms columns div ceiling cvi def
/form 0 def
clippath pathbbox
2 index margin 2 mul add sub dup
/height exch def /pheight exch def
2 index margin 2 mul add sub dup
/width exch def /pwidth exch def
margin add exch margin add exch translate
0 pheight translate
(landscape) mode eq {
height width /height exch def /width exch def
rows columns /rows exch def /columns exch def
} if
pwidth width columns mul div pheight height rows mul div min
pheight width columns mul div pwidth height rows mul div min
1 index 1 index lt {
0 pheight neg translate
90 rotate
pwidth pheight /pwidth exch def /pheight exch def
exch
} if
pop dup dup scale
dup pwidth exch div width columns mul sub 2 div
exch pheight exch div height rows mul sub 2 div neg translate
/fac 72 res div def
mapfonts
xorigin yorigin translate
0 0 moveto
senv
} def
/ff {
renv
forms 1 gt {
gsave
.1 setlinewidth
border stroke
grestore
} if
width 0 translate
/form form 1 add def
form columns mod 0 eq {
columns width mul neg height neg translate
} if
form forms mod 0 eq {
sp
form columns mod width mul neg
forms columns idiv height mul translate
/form 0 def
} if
0 0 moveto
senv
} def
/border {
newpath
xorigin neg yorigin neg moveto
width 0 rlineto
0 height neg rlineto
width neg 0 rlineto
closepath
} def
/senv {
save /env exch def
mag fac mul dup aspect mul exch scale
} def
/renv {
env restore
} def
/sf {
dup /font exch def findfont exch
dup /ptsize exch def fac div dup /size exch def scalefont setfont
penwidth ptsize mul fac 10 mul div setlinewidth
} def
/t {
count 2 idiv {y moveto show} repeat
} def
/m {
neg dup /y exch def moveto
} def
/sp {
copies {copypage} repeat
erasepage
} def
/done {
form 0 gt {sp} if
} def
/Dl {
newpath
neg moveto
neg lineto
stroke
} def
/De {
newpath
2 div /yrad exch def
2 div /xrad exch def
/savematrix matrix currentmatrix def
neg exch xrad add exch translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
stroke
} def
/Da {
newpath
neg /dy2 exch def
/dx2 exch def
/dy1 exch def
neg /dx1 exch def
dy1 dx1 atan /angle1 exch def
dy2 dx2 atan /angle2 exch def
dx1 dx1 mul dy1 dy1 mul add sqrt /radius exch def
neg dy1 sub exch dx1 sub exch radius angle1 angle2 arc
stroke
} def
/Ds {
newpath
neg /y2 exch def
/x2 exch def
neg /y1 exch def
/x1 exch def
neg /y0 exch def
/x0 exch def
x0 x1 add 2 div y0 y1 add 2 div moveto
x0 5 x1 mul add 6 div
y0 5 y1 mul add 6 div
x2 5 x1 mul add 6 div
y2 5 y1 mul add 6 div
x1 x2 add 2 div
y1 y2 add 2 div
curveto
stroke
} def
/cf {
dup length 2 idiv
/entries exch def
/chtab exch def
/newfont exch def
findfont dup length 1 add dict
/newdict exch def
{
1 index /FID ne
{newdict 3 1 roll put}
{pop pop}
ifelse
} forall
newdict /Metrics entries dict put
newdict /Metrics get
begin
chtab aload pop
1 1 entries {pop def} for
newfont newdict definefont pop
end
} def
%
% A few arrays used to adjust reference points and character widths in some
% of the printer resident fonts. If square roots are too high try changing
% the lines describing /radical and /radicalex to,
%
% /radical [0 -75 550 0]
% /radicalex [-50 -75 500 0]
%
/Sdefs [
/bracketlefttp [220 500]
/bracketleftbt [220 500]
/bracketrighttp [-70 380]
/bracketrightbt [-70 380]
/braceleftbt [220 490]
/radical [0 0 550 0]
/radicalex [-50 0 500 0]
/parenleftex [-20 -170 0 0]
/integral [100 -50 500 0]
/infinity [10 -75 730 0]
] def
/S1defs [
/underscore [0 80 500 0]
/endash [7 90 65 0]
] def
/resolution 720
setup
%%EndProlog
%%Page: 1 1
save
mark
cleartomark
showpage
restore
%%EndPage: 1 1
%%Page: 2 2
save
mark
cleartomark
showpage
restore
%%EndPage: 2 2
%%Trailer
done
restore
%%Pages: 2