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
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
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
tvlct,r,g,b,/get
r[*] = 100 & g[*]=200 & b[*]=30
tvlct,r,g,b
endif
device,file=old_fname
popened = 1
return
end