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.rb79
1 files changed, 42 insertions, 37 deletions
diff --git a/lib/sisu/v0/texpdf_format.rb b/lib/sisu/v0/texpdf_format.rb
index e1e3a583..7d0f3967 100644
--- a/lib/sisu/v0/texpdf_format.rb
+++ b/lib/sisu/v0/texpdf_format.rb
@@ -803,23 +803,26 @@ WOK
# clean up ! - work area, testing
dir=SiSU_Env::Info_env.new(@md.fns)
@words=[]
+ @url_generic_rgx=/\\\{.+?\\?\}(?:https?|file|ftp):\S+/
@string.each do |word|
- @words << if word=~/\\\{.+?\\\}(?:https?|file|ftp):\S+/
- if word =~/\\\{(.+?)\\\}((?:https?|file|ftp):\/\/\S+?\.[^'"><\s]+?)([;.,]?(?:\s|$))/
- r=%r/\\\{(.+?)\\?\}((?:https?|file|ftp):\/\/\S+?\.[^'"><\s]+?)(?:[;.,]?(?:\s|$)|(?:\s|$))/
- d=/\\\{.+?\\?\}(?:https?|file|ftp):\/\/\S+?\.[^'"><\s]+?([;.,]?(?:\s|$))/.match(word).captures.to_s
+ @words << if word=~@url_generic_rgx
+ if word =~/\\\{(?:.+?)\\?\}(?:https?|file|ftp):\/\/\S+?\.[^'"><\s]+?(?:[;.,]?(?:\s|$)|(?:\s|$))/
+ regx_url=%r/\\\{(.+?)\\?\}((?:https?|file|ftp):\/\/\S+?\.[^'"><\s]+?)(?:[;.,]?(?:\s|$)|(?:\s|$))/
+ punctuate=/\\\{.+?\\?\}(?:https?|file|ftp):\/\/\S+?\.[^'"><\s]+?([;.,]?(?:\s|$))/.match(word).captures.join
else
- r=%r/\\\{(.+?)\\?\}((?:https?|file|ftp):\S+)/
- d=''
+ regx_url=%r/\\\{(.+?)\\?\}((?:https?|file|ftp):\S+)/
+ punctuate=''
end
- z,url=r.match(word).captures if word =~r
+ z,url=regx_url.match(word).captures if word =~regx_url
url=url.strip
if word =~/\{\s*\S+\.?(?:png|jpg|gif)/ \
and word=~/\s+\d+x\d+\s+/
image,x,y=z.scan(/\S+/)
image.gsub!(/\\/,'')
- width=200
- width=z[/(\d+)x\d*/,1] ||='200' #watch
+ width=if z =~/(\d+)x\d*/
+ z[/(\d+)x\d*/,1]
+ else 200
+ end
dm=case @md.papersize
when /a4/; @tx.a4
when /letter/; @tx.letter
@@ -829,58 +832,60 @@ WOK
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
+ 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
+ width=if width.to_i > dm.landscape.img_px
+ dm.landscape.img_px
+ else width
end
end
c=z[/``(.+?)''/m,1]
hsp="\n{\\color{mywhite} .}&~\n" # ~ character for hardspace
- caption="{\\\\\ \n\\begin{scriptsize}#{hsp*3}#{c}\\end{scriptsize}&}" if c
+ caption=if c
+ "{\\\\\ \n\\begin{scriptsize}#{hsp*3}#{c}\\end{scriptsize}&}"
+ else ''
+ end
elsif word =~/\{\s*(\S+\.?\.(?:png|jpg|gif))/
tell=SiSU_Screen::Ansi.new(@md.cmd,%{document built without image: "#{$1}" as image dimensions not provided (& librmagick-ruby is not installed)?\n})
tell.print_grey #unless @opt.cmd =~/q/
end
- ins=if image #most images fc etc. #% clean up !
- out=if @md.fns =~/\.(?:ssm\.)?sst$/ \
+ word=if image #most images fc etc. #% clean up !
+ word=if @md.fns =~/\.(?:ssm\.)?sst$/ \
and FileTest.file?("#{dir.path.image_source_local_tex}/#{image}")
- @center_begin +
- "\\\n\\href{#{url}}" + #not satisfactory: \\ added to ^line to mimic reference file output
- "{\\includegraphics*[width=#{width}pt]" +
- "{#{dir.path.image_source_local_tex}/#{image}}}" +
- "#{caption}" +
- @center_end if word =~ /(\{[a-zA-Z0-9_\\]+\.(?:png|jpg|gif).+?\}(?:https?|file|ftp):\/\/\S+)/
+ word=if word =~ /(\{[a-zA-Z0-9_\\]+\.(?:png|jpg|gif).+?\}(?:https?|file|ftp):\/\/\S+)/
+ "#@center_begin\\\n\\href{#{url}}{\\includegraphics*[width=#{width}pt]{#{dir.path.image_source_local_tex}/#{image}}}#{caption} #@center_end"
+ end
+ word
elsif @md.fns =~/\.-ss[tm]$/ \
and FileTest.file?("#{dir.path.image_source_remote_tex}/#{image}")
- @center_begin +
- "\\\n\\href{#{url}}" + #not satisfactory: \\ added to ^line to mimic reference file output
- "{\\includegraphics*[width=#{width}pt]" +
- "{#{dir.path.image_source_remote_tex}/#{image}}}" +
- "#{caption}" +
- @center_end if word =~ /(\{[a-zA-Z0-9_\\]+\.(?:png|jpg|gif).+?\}(?:https?|file|ftp):\/\/\S+)/
+ word=if word =~ /(\{[a-zA-Z0-9_\\]+\.(?:png|jpg|gif).+?\}(?:https?|file|ftp):\/\/\S+)/
+ "#@center_begin\\\n\\href{#{url}}{\\includegraphics*[width=#{width}pt]{#{dir.path.image_source_remote_tex}/#{image}}}#{caption}#@center_end"
+ end
+ word
elsif FileTest.file?("#{dir.path.image_source_tex}/#{image}")
- @center_begin +
- "\\\n\\href{#{url}}\n" + #not satisfactory: \\ added to ^line to mimic reference file output, mirror above ... not tested
- "{\\includegraphics*[width=#{width}pt]" +
- "{#{dir.path.image_source_tex}/#{image}}}" +
- "#{caption}" +
- @center_end if word =~/(\{[a-zA-Z0-9_\\]+\.(?:png|jpg|gif).+?\}(?:https?|file|ftp):\/\/\S+)/
+ word=if word =~/(\{[a-zA-Z0-9_\\]+\.(?:png|jpg|gif).+?\}(?:https?|file|ftp):\/\/\S+)/
+ "#@center_begin\\\n\\href{#{url}}\n{\\includegraphics*[width=#{width}pt]{#{dir.path.image_source_tex}/#{image}}}#{caption}#@center_end"
+ end
+ word
else
tell=SiSU_Screen::Ansi.new(@md.cmd,"ERROR - image:",%{"#{image}" missing},"search locations: #{dir.path.image_source_local_tex},#{dir.path.image_source_remote_tex} and #{dir.path.image_source_tex}")
tell.error2 unless @md.cmd =~/q/
- '' if word =~ /\{\S+\.(png|jpg|gif).+?\}(?:https?|file|ftp):\/\/\S+/
+ word='' if word =~ /\{\S+\.(png|jpg|gif).+?\}(?:https?|file|ftp):\/\/\S+/
+ word
end
else
link=z.strip #[/(.+?)\\/m,1]
- word="\\href{#{url}}{#{link}}#{d}" if word =~/\\\{.+?\\\}(?:https?|file|ftp):\/\/\S+/
+ word="\\href{#{url}}{#{link}}#{punctuate}" if word =~/\\\{.+?\\\}(?:https?|file|ftp):\/\/\S+/
+ word
end
else word
end
end
- @words.join
+ @words=@words.join
+ @words
end
def http(orientation)
wm=@string.dup.scan(/\\\{.+?\\\}(?:(?:https?|file|ftp):\S+|image)|\w+\s*|./m)