485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
|
# File 'lib/graphkit/gnuplot.rb', line 485
def gnuplot_write(file_name, options={})
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
gp.term = old_gp_term
gp.output = old_gp_output
return File.basename(file_name, File.extname(file_name))
end
|