aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v0/texpdf_format.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v0/texpdf_format.rb')
-rw-r--r--lib/sisu/v0/texpdf_format.rb95
1 files changed, 63 insertions, 32 deletions
diff --git a/lib/sisu/v0/texpdf_format.rb b/lib/sisu/v0/texpdf_format.rb
index f7d2177a..9506e17b 100644
--- a/lib/sisu/v0/texpdf_format.rb
+++ b/lib/sisu/v0/texpdf_format.rb
@@ -64,8 +64,8 @@ module SiSU_TeX_Pdf
include SiSU_Viz
class Use_TeX
attr_accessor :url,:txt,:date
- def initialize(md,orientation='')
- @md,@orientation=md,orientation
+ def initialize(md)
+ @md=md
@vz=SiSU_Env::Get_init.instance.skin
@date=SiSU_Env::Info_date.new # #{@date.year}
@copymark='{\\begin{footnotesize}\\raisebox{1ex}{\\copyright}\\end{footnotesize}}'
@@ -122,8 +122,8 @@ module SiSU_TeX_Pdf
"Contact Details for Original Promulgating Authority"
end
#BOOK standard dimensions - 229x156
- def newpage
- case @orientation
+ def newpage(orientation)
+ case orientation
when /landscape/ # using longtable latex package
<<WOK
\\clearpage
@@ -268,7 +268,7 @@ WOK
@@tex_backslash="\\\\"
@@tilde='\\\\\\~' #?? debug crazy
@@tex_pattern_margin_number="\\\\begin\\\{tiny\\\}~\\\\end\\\{tiny\\\}\\\{\\\\marginpar.+?\s+"
- @@tableheader=0
+ @@tableheader={ :p => 0, :l => 0 }
@@sys=SiSU_Env::System_call.new
@@flag_code=false
@@dp=nil
@@ -298,12 +298,12 @@ WOK
else @tx.a4.landscape.w #default currently A4
end
textwidth=(tw.to_i/2) - 24
- @@tableheader=1 if @string =~/<!Th/
- @w=cols_width.split(/;\s*/)
+ @@tableheader[:l]=1 if @string =~/<!Th/
+ w=cols_width.split(/;\s*/)
@@number_of_cols=no_of_cols
@colW=[]
@colW << '{'
- @w.each do |x|
+ w.each do |x|
x.strip!
x=(x.to_i * textwidth)/100
col_w=x.to_s # x.gsub(/.+/,'l\|') #unless x.nil?
@@ -319,14 +319,14 @@ WOK
@string.gsub!(/<!TZ!>/," #@end_table\n\\end{tiny}")
end
@string.gsub!(/<!¡/,'')
- if @@tableheader == 1
+ if @@tableheader[:l] == 1
if @string =~/¡\d+?¡(.+?)(?:¡|!)/
tablefoot=@string[/\<!f(.+?)!\>/,1]
@string.gsub!(/\<!f(.+?)!\>/,'')
@string.gsub!(/¡\d+?¡(.+?)(?:¡|!)/,'\bfseries \1&')
@string.gsub!(/&>\s*$/," #@row_break \\hline\\endhead #@row_break")
@string="#@string \\multicolumn{#{@@number_of_cols}}{l}{\\tiny #{tablefoot}} \\\\ \\hline\n\\endfoot\n\\hline\n" if tablefoot
- @@tableheader,@@number_of_cols=0,0
+ @@tableheader[:l],@@number_of_cols=0,0
end
else
if @string =~/¡\d+?¡(.+?)(?:¡|!)/
@@ -334,7 +334,9 @@ WOK
@string.gsub!(/&>\s*$/," #@row_break")
end
end
- @string="<~#{ocn}>" + @string
+ @string=if ocn; "<~#{ocn}>" + @string
+ else @string
+ end
end
def longtable_portrait
@end_table='\end{longtable}'
@@ -350,12 +352,12 @@ WOK
else @tx.a4.portrait.w #default currently A4
end
textwidth=tw.to_i - 20
- @@tableheader=1 if @string =~/<!Th/
- @w=cols_width.split(/;\s*/)
+ @@tableheader[:p]=1 if @string =~/<!Th/
+ w=cols_width.split(/;\s*/)
@@number_of_cols=no_of_cols
@colW=[]
@colW << '{'
- @w.each do |x|
+ w.each do |x|
x.strip!
x=(x.to_i * textwidth)/100
#x=(x.to_i/100.0 * 160)
@@ -372,14 +374,14 @@ WOK
@string.gsub!(/<!TZ!>/," #@end_table\n\\end{tiny}")
end
@string.gsub!(/<!¡/,'')
- if @@tableheader == 1
+ if @@tableheader[:p] == 1
if @string =~/¡\d+?¡(.+?)(?:¡|!)/
tablefoot=@string[/\<!f(.+?)!\>/,1]
@string.gsub!(/\<!f(.+?)!\>/,'')
@string.gsub!(/¡\d+?¡(.+?)(?:¡|!)/,'\bfseries \1&')
@string.gsub!(/&>\s*$/," #@row_break \\hline\\endhead #@row_break")
@string="#@string \\multicolumn{#{@@number_of_cols}}{l}{\\tiny #{tablefoot}} \\\\ \\hline\n\\endfoot\n\\hline\n" if tablefoot
- @@tableheader,@@number_of_cols=0,0
+ @@tableheader[:p],@@number_of_cols=0,0
end
else
if @string =~/¡\d+?¡(.+?)(?:¡|!)/
@@ -387,7 +389,9 @@ WOK
@string.gsub!(/&>\s*$/," #@row_break")
end
end
- @string="<~#{ocn}>" + @string
+ @string=if ocn; "<~#{ocn}>" + @string
+ else @string
+ end
end
def scopedtable
# some features related to headers have been incorporated in longtable that are not included yet here,
@@ -799,7 +803,7 @@ WOK
@string.gsub!(/\\\{\S+\.(png|jpg|gif).+?\}(image|png)/,'') # fragile match operator\\ fragile !
end
end
- def http_word_mode(orientation='')
+ def http_word_mode #(orientation='')
# clean up ! - work area, testing
dir=SiSU_Env::Info_env.new(@md.fns)
@words=[]
@@ -831,16 +835,9 @@ WOK
when /a5/; @tx.a5
else @tx.a4
end
- width=if orientation =~/portrait/ #value is not currently passed
- width=if width.to_i > dm.portrait.img_px
- dm.portrait.img_px
- else width
- end
- else
- width=if width.to_i > dm.landscape.img_px
- dm.landscape.img_px
- else width
- end
+ width=if width.to_i > dm.landscape.img_px
+ dm.landscape.img_px
+ else width
end
c=z[/``(.+?)''/m,1]
hsp="\n{\\color{mywhite} .}&~\n" # ~ character for hardspace
@@ -887,9 +884,9 @@ WOK
@words=@words.join
@words
end
- def http(orientation)
+ def http
wm=@string.dup.scan(/\\\{.+?\\\}(?:(?:https?|file|ftp):\S+|image)|\w+\s*|./m)
- @string=SiSU_TeX_Pdf::Format_text_object.new(@md,wm).http_word_mode(orientation)
+ @string=SiSU_TeX_Pdf::Format_text_object.new(@md,wm).http_word_mode #(orientation)
end
def language
@lang=if @md.dc_language[:code]
@@ -1000,6 +997,18 @@ WOK
\\setlength{\\marginparwidth}{#{d[:marginparwidth]}}
WOK
end
+ def tex_head_paper_portrait_dvi(d)
+ <<WOK
+#{tex_head_info}
+\\documentclass[#{d[:fontsize]},#{d[:papertype]},#{tex_head_lang},titlepage]{scrartcl} %with titlepage
+\\setlength{\\textheight}{#{d[:textheight]}mm} \\setlength{\\textwidth}{#{d[:textwidth]}mm}
+\\setlength{\\oddsidemargin}{#{d[:oddsidemargin]}} \\setlength{\\evensidemargin}{#{d[:evensidemargin]}}
+\\setlength{\\topmargin}{#{d[:topmargin]}} \\setlength{\\headheight}{#{d[:headheight]}}
+\\setlength{\\headsep}{#{d[:headsep]}}
+\\setlength{\\marginparsep}{#{d[:marginparsep]}}
+\\setlength{\\marginparwidth}{#{d[:marginparwidth]}}
+WOK
+ end
def tex_head_paper_dimensions
d={}
case @string
@@ -1067,7 +1076,7 @@ WOK
tex_head_paper_landscape(tex_head_paper_dimensions)
end
end
- def tex_head_pdftex
+ def tex_head_pdftex_dvi
color=case @string
when /portrait/
<<WOK
@@ -1084,6 +1093,7 @@ WOK
linkcolor=myred, % \\href{...} and \\pageref{...}
WOK
end
+ if @string =~/portrait|landscape/
<<WOK
\\usepackage{url}
\\usepackage{alltt}
@@ -1121,6 +1131,27 @@ WOK
\\definecolor{myblue}{rgb}{0,0,0.5}
\\definecolor{mywhite}{rgb}{1,1,1}
WOK
+ elsif @string =~/dvi/
+ <<WOK
+\\usepackage{url}
+\\usepackage{alltt}
+ #{color.strip}
+ pageanchor=true,
+ plainpages=true,
+ pagebackref,
+ bookmarks=true,
+ bookmarksopen=true,
+ plainpages=false,
+]
+{hyperref}
+\\usepackage[usenames]{color}
+\\definecolor{myblack}{rgb}{0,0,0}
+\\definecolor{myred}{rgb}{0.75,0,0}
+\\definecolor{mygreen}{rgb}{0,0.5,0}
+\\definecolor{myblue}{rgb}{0,0,0.5}
+\\definecolor{mywhite}{rgb}{1,1,1}
+WOK
+ end
end
def tex_head_misc
<<WOK
@@ -1143,7 +1174,7 @@ WOK
<<WOK
#{tex_head_paper}
#{tex_head_encode}
-#{tex_head_pdftex}
+#{tex_head_pdftex_dvi}
#{tex_head_misc}
\\setcounter{secnumdepth}{2}
\\setcounter{tocdepth}{4}