PRO MAKEPNG,IMGXSIZE=IMGXSIZE,IMGYSIZE=IMGYSIZE,$ XSIZE=XSIZE,YSIZE=YSIZE,POSITION=POSITION ; save some system plot/device variables which we will change common save_p,dname,pfont,pthick,xthick,ythick,pchsz,xchsz,ychsz dname=!d.name pfont=!p.font pthick=!p.thick xthick=!x.thick ythick=!y.thick pchsz=!p.charsize xchsz=!x.charsize ychsz=!y.charsize position=fltarr(4,/nozero) set_plot,'Z' IF (keyword_set(IMGXSIZE) and keyword_set(IMGYSIZE)) THEN BEGIN MAXX=IMGXSIZE MAXY=IMGYSIZE DEVICE,SET_RESOLUTION=[IMGXSIZE,IMGYSIZE] ENDIF ELSE BEGIN MAXX=800 MAXY=800 DEVICE,SET_RESOLUTION=[MAXX,MAXY] ENDELSE ;change some system variables which make the PS plots look better !p.font=1 !p.thick=2. !x.thick=2. !y.thick=2. !p.charsize=1.5 !x.charsize=1.25 !y.charsize=1.25 ; get number of arguments ;narg=N_PARAMS() IF (keyword_set(xsize) and keyword_set(ysize)) THEN BEGIN xlen=xsize ylen=ysize x1=float(xlen)/maxx y1=float(ylen)/maxy ENDIF ELSE BEGIN xlen=0.75*maxx ylen=0.75*maxy x1=0.75 y1=0.75 ENDELSE ;make sure given lengths are not too long xlen=MIN([maxx,xlen]) ylen=MIN([ylen,maxy]) ;setup position for PLOT/TV xorg=(maxx-xlen)/2. yorg=(maxy-ylen)/2. x0=xorg/maxx y0=yorg/maxy x1=x0+x1 y1=y0+y1 position=[x0,y0,x1,y1] RETURN END