aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v3dv/texpdf.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v3dv/texpdf.rb')
-rw-r--r--lib/sisu/v3dv/texpdf.rb90
1 files changed, 48 insertions, 42 deletions
diff --git a/lib/sisu/v3dv/texpdf.rb b/lib/sisu/v3dv/texpdf.rb
index ee623cec..f8010511 100644
--- a/lib/sisu/v3dv/texpdf.rb
+++ b/lib/sisu/v3dv/texpdf.rb
@@ -208,8 +208,8 @@ module SiSU_TeX
when /\.(?:-|ssm\.)?sst$/
if FileTest.directory?(@env.processing_path.tex)==true
Dir.chdir(@env.processing_path.tex)
- texfile=@md.fns.gsub(/$/,".#{ps}.tex")
- texfile=texfile.gsub(/~/,'-')
+ texfile=@md.fns.gsub(/$/,".#{ps}.tex").
+ gsub(/~/,'-')
if File.exist?(texfile) \
and File.size(texfile) > 0
@tex_f_no+=1
@@ -347,7 +347,7 @@ module SiSU_TeX
dob.tmp=dob.obj #.dup
if dob.is=='para' \
or dob.is=='heading'
- dob.tmp.gsub!(/#{Mx[:mk_o]}:name#\S+?#{Mx[:mk_c]}/,'')
+ dob.tmp=dob.tmp.gsub(/#{Mx[:mk_o]}:name#\S+?#{Mx[:mk_c]}/,'')
dob.tmp=SiSU_TeX_Pdf::SpecialCharacters.new(@md,dob.tmp).special_characters
if dob.tmp =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/
dob.tmp=SiSU_TeX_Pdf::FormatTextObject.new(@md,dob.tmp).url_str_internal(dob.tmp)
@@ -374,9 +374,9 @@ module SiSU_TeX
data.each do |dob|
# EMBEDDED FOOTNOTES / ENDNOTES should be straightforward but not quite a synch.
if dob.tmp =~/#{Mx[:en_a_o]}[\d*+]+\s|#{Mx[:en_b_o]}([*+]\d+)\s/
- dob.tmp.gsub!(/#{Mx[:en_a_o]}(\d+)\s+(.+?)#{Mx[:en_a_c]}/m,"\\footnote[\\1]{%\n \\2} ")
- dob.tmp.gsub!(/#{Mx[:en_b_o]}([*+]\d+)\s+(.+?)#{Mx[:en_b_c]}/m,"\\FootnoteA{\\1}{%\n \\2} ")
- dob.tmp.gsub!(/#{Mx[:en_a_o]}([*+]+)\s+(.+?)#{Mx[:en_a_c]}/m,"\\FootnoteA{\\1}{%\n \\2} ")
+ dob.tmp=dob.tmp.gsub(/#{Mx[:en_a_o]}(\d+)\s+(.+?)#{Mx[:en_a_c]}/m,"\\footnote[\\1]{%\n \\2} ").
+ gsub(/#{Mx[:en_b_o]}([*+]\d+)\s+(.+?)#{Mx[:en_b_c]}/m,"\\FootnoteA{\\1}{%\n \\2} ").
+ gsub(/#{Mx[:en_a_o]}([*+]+)\s+(.+?)#{Mx[:en_a_c]}/m,"\\FootnoteA{\\1}{%\n \\2} ")
end
end
data
@@ -416,14 +416,14 @@ module SiSU_TeX
def box_boites(dob,ocn)
sp_char=SiSU_TeX_Pdf::SpecialCharacters.new(@md,dob.tmp,dob.is)
dob.tmp=sp_char.special_characters_safe
- dob.tmp.gsub!(/(#{Mx[:nbsp]})/m,'{\color{mywhite}\1}')
- #dob.tmp.gsub!(/#{Mx[:nbsp]}/m,'{~}') # dob.tmp.gsub!(/#{Mx[:nbsp]}\s*/m,'{~}')
- dob.tmp.gsub!(/#{Mx[:vline]}/m,'\vline')
- dob.tmp.gsub!(/ \\( |#{Mx[:br_nl]})/,' {\textbackslash}\1')
- dob.tmp.gsub!(/#{Mx[:br_nl]}\s*\Z/m,'')
- dob.tmp.gsub!(/#{Mx[:br_nl]}{2}/,'\newline \\\\\\ ')
- dob.tmp.gsub!(/#{Mx[:br_nl]}/,' \\\\\\ ')
- dob.tmp.gsub!(/\n\n\n/m," \\newline\n\n")
+ dob.tmp=dob.tmp.gsub(/(#{Mx[:nbsp]})/m,'{\color{mywhite}\1}').
+ #dob.tmp.gsub(/#{Mx[:nbsp]}/m,'{~}') # dob.tmp.gsub(/#{Mx[:nbsp]}\s*/m,'{~}')
+ gsub(/#{Mx[:vline]}/m,'\vline').
+ gsub(/ \\( |#{Mx[:br_nl]})/,' {\textbackslash}\1').
+ gsub(/#{Mx[:br_nl]}\s*\Z/m,'').
+ gsub(/#{Mx[:br_nl]}{2}/,'\newline \\\\\\ ').
+ gsub(/#{Mx[:br_nl]}/,' \\\\\\ ').
+ gsub(/\n\n\n/m," \\newline\n\n")
ocn=SiSU_TeX_Pdf::FormatTextObject.new(@md).ocn_display(dob)
dob.tmp = ocn \
+ @tex_ml.paraskip_small \
@@ -439,11 +439,11 @@ module SiSU_TeX
def box_listings(dob,ocn)
sp_char=SiSU_TeX_Pdf::SpecialCharacters.new(@md,dob.tmp,dob.is)
dob.tmp=sp_char.characters_code_listings
- dob.tmp.gsub!(/^\s+/m,'') #bug, fix earlier, should be made unecessary
- dob.tmp.gsub!(/#{Mx[:nbsp]}/m,' ')
- dob.tmp.gsub!(/#{Mx[:vline]}/m,'|')
- dob.tmp.gsub!(/#{Mx[:br_nl]}(?:\s?\n)?/m,"\n")
- dob.tmp.gsub!(/\n\n\n/m," \n\n")
+ dob.tmp=dob.tmp.gsub(/^\s+/m,''). #bug, fix earlier, should be made unecessary
+ gsub(/#{Mx[:nbsp]}/m,' ').
+ gsub(/#{Mx[:vline]}/m,'|').
+ gsub(/#{Mx[:br_nl]}(?:\s?\n)?/m,"\n").
+ gsub(/\n\n\n/m," \n\n")
ocn=SiSU_TeX_Pdf::FormatTextObject.new(@md).ocn_display(dob)
dob.tmp = ocn \
+ @tex_ml.paraskip_small \
@@ -466,9 +466,9 @@ module SiSU_TeX
if dob.of=='block'
@lineone=case dob.is
when /block|group|alt|verse/
- dob.tmp.gsub!(/#{Mx[:nbsp]}/m,'{~}')
- dob.tmp.gsub!(/#{Mx[:gl_bullet]}/m,'$\txtbullet$\hspace{\enspace}') #Bullet environment not used for grouped text, ∴ no hanging indent here
- dob.tmp.gsub!(/#{Mx[:br_nl]}+/m,"\n\n") #match not ideal, but currently not inserting extra newlines anyway
+ dob.tmp=dob.tmp.gsub(/#{Mx[:nbsp]}/m,'{~}').
+ gsub(/#{Mx[:gl_bullet]}/m,'$\txtbullet$\hspace{\enspace}'). #Bullet environment not used for grouped text, ∴ no hanging indent here
+ gsub(/#{Mx[:br_nl]}+/m,"\n\n") #match not ideal, but currently not inserting extra newlines anyway
ocn=SiSU_TeX_Pdf::FormatTextObject.new(@md).ocn_display(dob)
dob.tmp=if dob.is=='group' \
or dob.is=='block' \
@@ -568,16 +568,16 @@ module SiSU_TeX
and (dob.indent != dob.hang or dob.indent =~/[1-9]/)
dob.tmp=tst.hang
else
- dob.tmp.strip!
+ dob.tmp=dob.tmp.strip
dob=enclose(dob) unless dob.tmp =~/^$/
end
else
- dob.tmp.strip! unless dob.is=='code'
+ dob.tmp=dob.tmp.strip unless dob.is=='code'
dob=enclose(dob) unless dob.tmp =~/^$/
end
if dob.class==String
- dob.tmp.gsub!(/\s*(?:#{Mx[:br_line]}|#{Mx[:br_nl]})\s*/,' \newline ') #% tread with care
- dob.tmp.gsub!(/(\.#{Tex[:tilde]}\S*\s*|<:\S+>|#{Mx[:fa_o]}.*?#{Mx[:fa_c]}|#{Mx[:gr_o]}.*?#{Mx[:gr_c]}|<!.*?!>|<!>)/,' ') #% tread with care
+ dob.tmp=dob.tmp.gsub(/\s*(?:#{Mx[:br_line]}|#{Mx[:br_nl]})\s*/,' \newline '). #% tread with care
+ gsub(/(\.#{Tex[:tilde]}\S*\s*|<:\S+>|#{Mx[:fa_o]}.*?#{Mx[:fa_c]}|#{Mx[:gr_o]}.*?#{Mx[:gr_c]}|<!.*?!>|<!>)/,' ') #% tread with care
end
dob
end
@@ -872,12 +872,16 @@ WOK
ps,h,fn=o[:ps],o[:h],o[:filename]
if h[ps] \
and (h[ps][:p] and h[ps][:l])
- h[ps][:p].gsub!(/[ ]+$/m,'') if h[ps][:p]
- h[ps][:l].gsub!(/[ ]+$/m,'') if h[ps][:l]
- #h[ps][:p].gsub!(/(?:^[ ]+|[ ]+$)/m,'') if h[ps][:p]
- #h[ps][:l].gsub!(/(?:^[ ]+|[ ]+$)/m,'') if h[ps][:l]
- h[ps][:p].gsub!(/\n\n\n+/m,"\n\n") if h[ps][:p]
- h[ps][:l].gsub!(/\n\n\n+/m,"\n\n") if h[ps][:l]
+ if h[ps][:p]
+ h[ps][:p]=h[ps][:p].gsub(/[ ]+$/m,'').
+ gsub(/\n\n\n+/m,"\n\n")
+ end
+ if h[ps][:l]
+ h[ps][:l]=h[ps][:l].gsub(/[ ]+$/m,'').
+ gsub(/\n\n\n+/m,"\n\n")
+ end
+ #h[ps][:p].gsub!(/(?:^[ ]+|[ ]+$)/m,'') if h[ps][:p]
+ #h[ps][:l].gsub!(/(?:^[ ]+|[ ]+$)/m,'') if h[ps][:l]
if h[ps][:p] !~/\A\s*\Z/
fn[:portrait].puts h[ps][:p],"\n"
end
@@ -885,12 +889,16 @@ WOK
fn[:landscape].puts h[ps][:l],"\n"
end
elsif (h[:p] and h[:l])
- h[:p].gsub!(/[ ]+$/m,'') if h[:p]
- h[:l].gsub!(/[ ]+$/m,'') if h[:l]
- #h[:p].gsub!(/(?:^[ ]+|[ ]+$)/m,'') if h[:p]
- #h[:l].gsub!(/(?:^[ ]+|[ ]+$)/m,'') if h[:l]
- h[:p].gsub!(/\n\n\n+/m,"\n\n") if h[:p]
- h[:l].gsub!(/\n\n\n+/m,"\n\n") if h[:l]
+ if h[:p]
+ h[:p]=h[:p].gsub(/[ ]+$/m,'').
+ gsub(/\n\n\n+/m,"\n\n")
+ end
+ if h[:l]
+ h[:l]=h[:l].gsub(/[ ]+$/m,'').
+ gsub(/\n\n\n+/m,"\n\n")
+ end
+ #h[:p].gsub!(/(?:^[ ]+|[ ]+$)/m,'') if h[:p]
+ #h[:l].gsub!(/(?:^[ ]+|[ ]+$)/m,'') if h[:l]
if h[:p] !~/\A\s*\Z/
fn[:portrait].puts h[:p],"\n"
end
@@ -901,9 +909,7 @@ WOK
end
end
def output(array)
- array.flatten!
- array.compact!
- @array=array
+ @array=array=array.flatten.compact
fns_l=@md.fns.gsub(/~/,'-') #this is a sorry fix, but necessary as it appears latex programs like not ~
@md.papersize_array.each do |ps|
file={
@@ -924,7 +930,7 @@ WOK
and morph.tmp.class==String
if morph.is !='code' \
&& morph.of !='block'
- morph.tmp.gsub!(/^\s+/,'')
+ morph.tmp=morph.tmp.gsub(/^\s+/,'')
else morph.tmp
end
if morph.tmp !~/\A\s*\Z/ \