diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sisu/v0/sysenv.rb | 26 | ||||
| -rw-r--r-- | lib/sisu/v0/texpdf.rb | 4 | 
2 files changed, 23 insertions, 7 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}" diff --git a/lib/sisu/v0/texpdf.rb b/lib/sisu/v0/texpdf.rb index a17033c8..1d37b588 100644 --- a/lib/sisu/v0/texpdf.rb +++ b/lib/sisu/v0/texpdf.rb @@ -169,13 +169,13 @@ module SiSU_TeX          cmd=SiSU_Env::System_call.new("#{tex_fn_base}.tex",'',@md.cmd)          tell=SiSU_Screen::Ansi.new(@md.cmd)          tell.grey_open unless @md.cmd =~/q/ -        2.times { |i| cmd.latex2pdf unless ("#{tex_fn_base}.tex" !~/\w+/) } +        2.times { |i| cmd.latex2pdf(@md) unless ("#{tex_fn_base}.tex" !~/\w+/) }          tell.p_off unless @md.cmd =~/q/          tell=SiSU_Screen::Ansi.new(@md.cmd,'landscape ->')          tell.dark_grey_title_hi if @md.cmd =~/[MVv]/          cmd=SiSU_Env::System_call.new("#{tex_fn_base}.landscape.tex",'',@md.cmd)          tell.grey_open -        2.times { |i| cmd.latex2pdf unless ("#{tex_fn_base}.landscape.tex" !~/\w+/) } +        2.times { |i| cmd.latex2pdf(@md) unless ("#{tex_fn_base}.landscape.tex" !~/\w+/) }          tell.p_off unless @md.cmd =~/q/          pwd=Dir.pwd          portrait_pdf="#{pwd}/#{tex_fn_base}.pdf" | 
