aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v0
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v0')
-rw-r--r--lib/sisu/v0/sysenv.rb26
-rw-r--r--lib/sisu/v0/texpdf.rb4
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"