;+ ;PROCEDURE: popen, filename ;PURPOSE: ; Change plot device to postscript. ;INPUT: optional; if: ; string : string used as filename, '.ps' extension is added automatically ; integer X: filename set to 'plotX.ps'. value of x is incremented by 1. ; none: filename set to 'plot.ps' ;KEYWORDS: See print_options for info. ; COPY: pass COPY keyword to set_plot ; INTERP: pass INTERP keyword to set_plot (default is to have interp off) ; XSIZE: postscript plot size in the x direction ; YSIZE: postscript plot size in the y direction ; UNITS: plot size units (inches or cm) ;SEE ALSO: "pclose", ; "print_options", ; "popen_com" ;HISOTRY: ; 4-apr-2008 cg, added optional keywords for postscript plot size ; units for plot size variables ;CREATED BY: Davin Larson ;LAST MODIFICATION: @(#)popen.pro 1.21 98/06/23 ;- pro popen,n, $ port=port, $ landscape=land, $ color=color, $ bw=bw, $ printer=printer, $ directory=printdir, $ font = font, $ aspect = aspect, $ xsize = xsize, $ ysize = ysize, $ units = units, $ interp = interp, $ ctable = ctable, $ options = options, $ copy = copy, $ encapsulated = encap @popen_com.pro common colors, r_orig, g_orig, b_orig, r_curr, g_curr, b_curr ; lphilpott 9-may-2012, check to see whether a color table has been loaded (this is the way loadct checks) if (n_elements(r_orig) lt !d.table_size) then begin dprint, dlevel=2, 'No color table set, loading color table 39.' loadct, 39 endif old_colors_com = {r_orig: r_orig, g_orig: g_orig, b_orig: b_orig,$ r_curr: r_curr, g_curr: g_curr, b_curr: b_curr} print_options,directory=printdir,land=land,port=port str_element,options,'encapsulated',encap str_element,options,'filename',n str_element,options,'xsize',xsize str_element,options,'ysize',ysize str_element,options,'units',units str_element,options,'ctable',ctable str_element,options,'charsize',charsize str_element,options,'landscape',land str_element,options,'noplot',ignore if keyword_set(ignore) then return extension = (['.ps','.eps'])(keyword_set(encap)) if n_elements(n) ne 0 then begin if data_type(n) eq 0 then n = 1 if data_type(n) eq 2 then begin fname = strcompress('plot'+string(n)+extension,/REMOVE_ALL) n = n+1 endif if data_type(n) eq 7 then $ if strpos(n,extension) ne strlen(n)-strlen(extension) then $ fname=n+extension else fname = n endif if data_type(fname) ne 7 then fname = 'plot'+extension if print_directory ne '' then fname = print_directory+'/'+fname if n_elements (old_device) eq 0 then popened = 0 if popened then pclose,printer=printer print ,'Opening postscript file ',fname,' Use PCLOSE to close' old_device = !d.name old_fname = fname old_plot = !p ;old_color = !p.color ;old_font = !p.font ;old_bckgrnd= !p.background if n_elements(interp) eq 0 then interp = 0 if n_elements(copy) eq 0 then copy =0 set_plot,'PS',interp=interp,copy=copy if keyword_set(encap) then device,encap=1 else device,encap=0 if keyword_set(charsize) then !p.charsize = charsize print_options,port=port,land=land,color=color,bw=bw, $ printer=printer,font=font,aspect=aspect, $ xsize=xsize,ysize=ysize,units=units if n_elements(ctable) ne 0 then loadct2,ctable if keyword_set(bw) then begin ; force all colors to black tvlct,r,g,b,/get r(*) = 100 & g(*)=200 & b(*)=30 tvlct,r,g,b endif device,file=old_fname popened = 1 return end