module GraphKit::Writer
Public Instance Methods
gnuplot_write(file_name, options={})
click to toggle source
# File lib/graphkit/gnuplot.rb, line 485 def gnuplot_write(file_name, options={}) #logf :gnuplot_write old_gp_term = gp.term old_gp_output = gp.output if file_name gp.output = file_name unless gp.term or options[:terminal] case File.extname(file_name) when '.pdf' gp.term = 'pdf size 20cm,15cm' when '.ps' gp.term = 'post color' when '.eps' unless options[:latex] gp.term = %[post eps color enhanced size #{options[:size] or "3.5in,2.33in"}] else gp.term ||= "epslatex color dashed size #{options[:size] or "3.5in,#{options[:height] or "2.0in"}"} colortext standalone 8" (gp.term += " header '#{options[:preamble].inspect.gsub(/\\\n/, "\\\\\\n")}'"; options.delete(:preamble)) if options[:preamble] end when '.jpg' gp.term = "jpeg size #{options[:size] or "3.5in,2.33in"}" when '.png' gp.term = "png size #{options[:size] or "640,480"}" when '.gif' gp.term = "gif size #{options[:size] or "640,480"}" end end end gp.output = file_name.sub(/\.eps/, '.tex') if options[:latex] options.delete(:size) gnuplot(options) if options[:latex] name = file_name.sub(/\.eps$/, '') raise "No file output by gnuplot" unless FileTest.exist? name + '.tex' raise 'latex failed' unless system "latex #{name}.tex --interaction nonstopmode --halt-on-error -q" raise 'dvips failed' unless system "dvips #{name}.dvi" FileUtils.rm "#{name}.eps" if FileTest.exist? "#{name}.eps" raise 'ps2eps failed' unless system "ps2eps #{name}.ps" end # ep file_name gp.term = old_gp_term gp.output = old_gp_output return File.basename(file_name, File.extname(file_name)) end