diff options
Diffstat (limited to 'lib/sisu/v0/sysenv.rb')
-rw-r--r-- | lib/sisu/v0/sysenv.rb | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/lib/sisu/v0/sysenv.rb b/lib/sisu/v0/sysenv.rb index 22a0bc4a..3f23b7e5 100644 --- a/lib/sisu/v0/sysenv.rb +++ b/lib/sisu/v0/sysenv.rb @@ -665,9 +665,14 @@ module SiSU_Env end @texpdf end - def latex2pdf #convert from latex to pdf - tell=if @cmd =~/[MVv]/; '' - else '> /dev/null' + def latex2pdf(md=nil) #convert from latex to pdf + tell=((@cmd =~/[MVv]/) ? '' : '> /dev/null' ) + papersize='a4' + if md and defined? @md.papersize and md.papersize.empty? + papersize=if @md.papersize =~/(?:a4|letter|legal|book|a5|b5)\b/ + md.papersize + else papersize + end end mode='batchmode' #mode='nonstopmode' @@ -675,9 +680,20 @@ module SiSU_Env texpdf=tex2pdf_engine if @pdfetex_flag; texpdf_cmd=case texpdf - when /xetex/; "#{texpdf} -interaction=#{mode} -fmt=xelatex #@input #{tell}\n" + when /xetex/ + if @input =~/landscape\.tex$/ + %{#{texpdf} -interaction=#{mode} -fmt=xelatex -papersize="#{papersize} -l" #@input #{tell}\n} + else + "#{texpdf} -interaction=#{mode} -fmt=xelatex #@input #{tell}\n" + end + when /xelatex/ + if @input =~/landscape\.tex$/ + %{#{texpdf} -interaction=#{mode} -papersize="#{papersize} -l" #@input #{tell}\n} + else + "#{texpdf} -interaction=#{mode} #@input #{tell}\n" + end when /pdftex/; "#{texpdf} -interaction=#{mode} -fmt=pdflatex #@input #{tell}\n" - when /xelatex|pdflatex/; "#{texpdf} -interaction=#{mode} #@input #{tell}\n" + when /pdflatex/; "#{texpdf} -interaction=#{mode} #@input #{tell}\n" end system(texpdf_cmd) else puts "\tWARN: none of the following programs are installed: #{program[0]}, #{program[1]}, #{program[2]} is installed. #{program_ref}" |