From 75e3bf86382edf99275a25895b362647158e25c1 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 10 Jan 2012 22:37:26 -0500 Subject: v3dv, add dev branch (use to make some changes to module & class names & test) * (intended as) short term branch, merge back into v3 once tested * sisu --dev (to invoke) --- lib/sisu/v3dv/texpdf.rb | 960 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 960 insertions(+) create mode 100644 lib/sisu/v3dv/texpdf.rb (limited to 'lib/sisu/v3dv/texpdf.rb') diff --git a/lib/sisu/v3dv/texpdf.rb b/lib/sisu/v3dv/texpdf.rb new file mode 100644 index 00000000..47005d16 --- /dev/null +++ b/lib/sisu/v3dv/texpdf.rb @@ -0,0 +1,960 @@ +# encoding: utf-8 +=begin + + * Name: SiSU + + * Description: a framework for document structuring, publishing and search + + * Author: Ralph Amissah + + * Copyright: (C) 1997 - 2012, Ralph Amissah, All Rights Reserved. + + * License: GPL 3 or later: + + SiSU, a framework for document structuring, publishing and search + + Copyright (C) Ralph Amissah + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + this program. If not, see . + + If you have Internet connection, the latest version of the GPL should be + available at these locations: + + + + + + + + * SiSU uses: + * Standard SiSU markup syntax, + * Standard SiSU meta-markup syntax, and the + * Standard SiSU object citation numbering and system + + * Hompages: + + + + * Download: + + + * Ralph Amissah + + + + ** Description: LaTeX generation + +=end +module SiSU_TeX + require 'pstore' + require_relative 'defaults' # defaults.rb + include SiSU_Viz + require_relative 'particulars' # particulars.rb + include SiSU_Particulars + require_relative 'texpdf_format' # texpdf_format.rb + include SiSU_TeX_Pdf + require_relative 'shared_metadata' # shared_metadata.rb + require_relative 'prog_text_translation' # prog_text_translation.rb + @tex_file=@@tex_footnote_array=@@tex_col_w=[] + @@tabular="{tabular}" + @@column_instruct=@@squigle_close=@@tex_line_mode=@@tex_word_mode=@@line_mode='' + @@tex_debug_counter=@@table_pagebreak_counter=@@tex_footnote_call_counter=@@tex_table_flag=@@tex_counter=@@tex_column=@@tex_columns=@@tex_columns=@@counting=0 + @@tex_pattern_margin_number=/\\\\begin\\\{tiny\\\}\\\\hspace\\\{0mm\\\}\\\\end\\\{tiny\\\}\\\{\\\\marginpar.+?\s+/ + @@n=@@tableheader=@@rights=nil + @@date ||=SiSU_Env::Info_date.new + class Source + require 'pstore' + require_relative 'sysenv' # sysenv.rb + include SiSU_Env + include SiSU_Viz + require_relative 'dal' # dal.rb + include SiSU_DAL + include SiSU_TeX + def initialize(opt) + @opt=opt + @particulars=SiSU_Particulars::Combined_singleton.instance.get_all(opt) + @md=@particulars.md + @env=SiSU_Env::Info_env.new(@md.fns) #@env=@particulars.env + end + def directories + begin + case @opt.fns + when /\.(?:-|ssm\.)?sst$/ + SiSU_Env::SiSU_file.new(@md).mkdir + Dir.mkdir(@env.processing_path.tex) unless FileTest.directory?(@env.processing_path.tex) + end + rescue; SiSU_Errors::Info_error.new($!,$@,@opt.cmd,@opt.fns).error + ensure + end + end + def read + song + end + def song + begin + @md=@particulars.md + SiSU_Screen::Ansi.new(@opt.cmd,'LaTeX/PDF',"[#{@opt.f_pth[:lng_is]}] #{@opt.fns}").green_title_hi unless @opt.cmd =~/q/ + if @opt.cmd =~/[MVv]/ + path=@env.url.output_tell + SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"#{@env.program.pdf_viewer} #{@md.file.output_path.pdf.dir}/#{@md.file.base_filename.pdf_l}pdf").flow + SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"#{@opt.fns} #{@env.program.pdf_viewer} #{@md.file.output_path.pdf.dir}/#{@md.file.base_filename.pdf_p}pdf").flow + end + @md=@particulars.md + $flag=@md.opt.cmd #introduced to pass 0 for no object citation numbers... to texpdf_format + directories + #% needed needs to be reprogrammed !!! + SiSU_Env::Info_skin.new(@md).select + dal_array=SiSU_DAL::Source.new(@opt).get # dal file drawn here + SiSU_TeX::Source::LaTeX_create.new(@particulars).songsheet + dal_array='' + pwd=Dir.pwd + SiSU_TeX::Source::LaTeX_to_pdf.new(@md,@particulars.env).latexrun_selective + Dir.chdir(pwd) + rescue; SiSU_Errors::Info_error.new($!,$@,@opt.cmd,@opt.fns).error + ensure + unless @opt.cmd =~/[MV]/ #check maintenance flag + texfiles=Dir["#{@env.processing_path.tex}/#{@opt.fns}*"] + texfiles.each do |f| + if FileTest.file?(f) + File.unlink(f) + end + end + end + @tex_file=@@tex_footnote_array=[] + @@column_instruct='' + @@squigle_close=@@tex_line_mode=@@tex_word_mode=@@line_mode='' + @@tex_debug_counter=@@table_pagebreak_counter=@@tex_footnote_call_counter=@@tex_table_flag=@@tex_counter=@@tex_column=@@tex_columns=@@tex_columns=@@counting=0 + @@tex_col_w=[] + @@n=@@tableheader=@@rights=nil + @@date=SiSU_Env::Info_date.new + @@flag={} + $flag=1 #remove at some stage + SiSU_Env::Clear.new(@opt.cmd,@opt.fns).param_instantiate + end + end + private + class LaTeX_to_pdf + @@n_lpdf||=0 #change + def initialize(md,env) + @md,@env=md,env + @f=SiSU_Env::SiSU_file.new(@md).base_filename + end + def latex_do(texfilename,papersize) + @texfilename=texfilename + @@n_lpdf=@@n_lpdf+1 + SiSU_Screen::Ansi.new(@md.opt.cmd,"#{papersize} portrait ->").dark_grey_title_hi if @md.opt.cmd =~/[MVv]/ + tex_fn_base=@texfilename.gsub(/\.tex$/,'') + cmd=SiSU_Env::System_call.new("#{tex_fn_base}.tex",'',@md.opt.cmd) + tell=SiSU_Screen::Ansi.new(@md.opt.cmd) + tell.grey_open if @md.opt.cmd =~/[MVv]/ + if "#{tex_fn_base}" =~/\w+/ \ + and "#{papersize}" =~/\w+/ + 2.times { |i| cmd.latex2pdf(@md,papersize) } #comment out to skip processing of latex portrait + end + tell.p_off if @md.opt.cmd =~/[MVv]/ + SiSU_Screen::Ansi.new(@md.opt.cmd,"#{papersize} landscape ->").dark_grey_title_hi if @md.opt.cmd =~/[MVv]/ + cmd=SiSU_Env::System_call.new("#{tex_fn_base}.landscape.tex",'',@md.opt.cmd) + tell.grey_open if @md.opt.cmd =~/[MVv]/ + if "#{tex_fn_base}" =~/\w+/ \ + and "#{papersize}" =~/\w+/ + 2.times { |i| cmd.latex2pdf(@md,papersize) } #comment out to skip processing of latex landscape + end + tell.p_off if @md.opt.cmd =~/[MVv]/ + pwd=Dir.pwd + portrait_pdf="#{pwd}/#{tex_fn_base}.pdf" + landscape_pdf="#{pwd}/#{tex_fn_base}.landscape.pdf" + case papersize + when /a4/; pdf_p=@f.pdf_p_a4; pdf_l=@f.pdf_l_a4 + when /a5/; pdf_p=@f.pdf_p_a5; pdf_l=@f.pdf_l_a5 + when /b5/; pdf_p=@f.pdf_p_b5; pdf_l=@f.pdf_l_b5 + when /letter/; pdf_p=@f.pdf_p_letter; pdf_l=@f.pdf_l_letter + when /legal/; pdf_p=@f.pdf_p_legal; pdf_l=@f.pdf_l_legal + else pdf_p=@f.pdf_p_a4; pdf_l=@f.pdf_l_a4 + end + FileUtils::mkdir_p(@md.file.output_path.pdf.dir) unless FileTest.directory?(@md.file.output_path.pdf.dir) + if FileTest.file?(portrait_pdf) + FileUtils::cp(portrait_pdf,"#{@md.file.output_path.pdf.dir}/#{pdf_p}") + FileUtils::rm(portrait_pdf) + else p "#{__FILE__}:#{__LINE__} NOT FOUND: #{portrait_pdf}" if @md.opt.cmd.inspect =~/M/ + end + if FileTest.file?(landscape_pdf) + FileUtils::cp(landscape_pdf,"#{@md.file.output_path.pdf.dir}/#{pdf_l}") + FileUtils::rm(landscape_pdf) + else p "#{__FILE__}:#{__LINE__} NOT FOUND: #{landscape_pdf}" if @md.opt.cmd.inspect =~/M/ + end + SiSU_Screen::Ansi.new(@md.opt.cmd,@@n_lpdf,'processed (SiSU LaTeX to pdf - using pdfetex aka. pdftex or pdflatex)').generic_number if @md.opt.cmd =~/[MVv]/ + end + def latexrun_selective + begin + pwd=Dir.pwd + Dir.chdir(pwd) #watch + @tex_f_no=0 + info={} + if FileTest.file?(@env.source_file_with_path) + @md.papersize_array.each do |ps| + if @md.fns =~/\.(?:-|ssm\.)?sst$/ + case @md.fns + 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(/~/,'-') + if File.exist?(texfile) \ + and File.size(texfile) > 0 + @tex_f_no+=1 + #p "#{__FILE__}:#{__LINE__} texpdf generation disabled" if @md.opt.cmd.inspect =~/M/ #%% disable temporarily, re-enable + latex_do(texfile,ps) + else + puts "\tzero file size #{@env.processing_path.tex}/#{texfile}" + end + end + end + end + end + case @md.papersize_array[0] #default pdf + when /a4/; pdf_p=@f.pdf_p_a4; pdf_l=@f.pdf_l_a4 + when /a5/; pdf_p=@f.pdf_p_a5; pdf_l=@f.pdf_l_a5 + when /b5/; pdf_p=@f.pdf_p_b5; pdf_l=@f.pdf_l_b5 + when /letter/; pdf_p=@f.pdf_p_letter; pdf_l=@f.pdf_l_letter + when /legal/; pdf_p=@f.pdf_p_legal; pdf_l=@f.pdf_l_legal + else pdf_p=@f.pdf_p_a4; pdf_l=@f.pdf_l_a4 + end + if FileTest.file?("#{@md.file.output_path.pdf.dir}/#{pdf_p}") + mklnk=if @md.file.output_dir_structure.by_language_code? \ + or @md.file.output_dir_structure.by_filetype? + "#{@md.fnb}.portrait.pdf" + else 'portrait.pdf' + end + if FileTest.directory?(@md.file.output_path.pdf.dir) + pwd=Dir.pwd + Dir.chdir(@md.file.output_path.pdf.dir) + FileUtils::rm_f(mklnk) + FileUtils::ln_s(pdf_p, mklnk) + Dir.chdir(pwd) + end + end + if FileTest.file?("#{@md.file.output_path.pdf.dir}/#{pdf_l}") + mklnk=if @md.file.output_dir_structure.by_language_code? \ + or @md.file.output_dir_structure.by_filetype? + "#{@md.fnb}.landscape.pdf" + else 'landscape.pdf' + end + pwd_set=Dir.pwd + Dir.chdir(@md.file.output_path.pdf.dir) + FileUtils::rm_f(mklnk) + FileUtils::ln_s(pdf_l, mklnk) + Dir.chdir(pwd_set) + end + else + SiSU_Screen::Ansi.new(@md.opt.cmd,"FILE NOT FOUND: << #{@md.fns} >> - requested latex system processing skipped").warn + end + lst=Dir["*.{aux,log,out}"] + lst.each {|file| File.unlink(file)} if lst + rescue; SiSU_Errors::Info_error.new($!,$@,@md.opt.cmd,@md.fns).error + end + end + end + class LaTeX_create + @@tex_head={ + 'a4'=> { p: nil, l: nil }, + 'a5'=> { p: nil, l: nil }, + 'b5'=> { p: nil, l: nil }, + 'letter'=>{ p: nil, l: nil }, + 'legal'=> { p: nil, l: nil }, + 'book'=> { p: nil, l: nil } + } + @@prefix_b=nil + def initialize(particulars) + @particulars=particulars + @md=@particulars.md + @env=SiSU_Env::Info_env.new(@md.fns) #@env=@particulars.env + @data=@particulars.dal_array # dal file drawn here + @st={ tex: {} } + @tex_ml=SiSU_TeX_Pdf::Use_TeX.new(@md) + @vz=SiSU_Env::Get_init.instance.skin + @dp=@@dp ||=SiSU_Env::Info_env.new.digest.pattern + @brace_url=SiSU_Viz::Skin.new.url_decoration + vz=SiSU_Env::Get_init.instance.skin + l=SiSU_Env::Standardise_language.new(@md.opt.lng).language + @language=l[:n] + @translate=SiSU_Translate::Source.new(@md,@language) + @skin_no_ocn=if defined? vz.ocn_display_off \ + and vz.ocn_display_off==true + true + else false + end + @codeblock_box='listings' #alternative 'boites' + end + def songsheet + begin + data=@data + @@tex_footnote_array=[] + @@rights=nil + SiSU_Screen::Ansi.new(@md.opt.cmd,"pdfTex portrait & landscape").txt_grey if @md.opt.cmd=~/[MVvz]/ + if defined? @md.rights.all \ + and not @md.rights.all.empty? + rght=@md.rights #.author.dup #dup is necessary, else contents of :rights changed + sp_char=SiSU_TeX_Pdf::Special_characters.new(@md,rght.copyright.all) + copymark=@md.author_copymark \ + ? '{\begin{small}\copyright\end{small}} ' + : '' + copymark='Copyright {\begin{small}\copyright\end{small}} ' + copyright=sp_char.special_characters_safe.gsub(/^\s*Copyright \(C\)/, copymark) + @@rights||="\n #{Tex[:backslash]*2}[3]\\ \\linebreak #{copyright}" + end + if defined? @md.notes.prefix_b \ + and not @md.notes.prefix_b.empty? + sp_char=SiSU_TeX_Pdf::Special_characters.new(@md,@md.notes.prefix_b) + prefix_b=sp_char.special_characters_safe + @@prefix_b="\n #{Tex[:backslash]*2}[3]\\ \\linebreak \\ #{prefix_b}\n" unless @@prefix_b + end + data=pre(data) + data=footnote(data) + if @md.flag_tables #WORK ON 2009 + data=tables(data) #uncomment to start experimenting with tables + end + ocn=if @md.markup.inspect =~/no_ocn/ \ + or @md.opt.mod.inspect =~/--no-ocn/ \ + or @skin_no_ocn + false + else true + end + data=number_paras(data) + data=markup(data) + output(data) + rescue; SiSU_Errors::Info_error.new($!,$@,@md.opt.cmd,@md.fns).error + ensure + end + end + protected + def pre(data) + @tex_file=[] + data.each do |dob| + # DEBUG 2003w16 this is a kludge, because i could not get parameters + # from param, Sort out ... revert to more elegant solution + # even more of a kludge as had to insert newlines where code is used not satisfactory, think about + 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=SiSU_TeX_Pdf::Special_characters.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::Format_text_object.new(@md,dob.tmp).url_str_internal(dob.tmp) + end + elsif dob.is =='code' + dob.tmp=if @codeblock_box=='listings' + dob.tmp + else + SiSU_TeX_Pdf::Special_characters.new(@md,dob.tmp).special_characters_code + end + elsif dob.is =='break' + if dob.obj==Mx[:br_page]; dob.tmp='\newpage' + elsif dob.obj==Mx[:br_page_new]; dob.tmp='\clearpage' + elsif dob.obj==Mx[:br_obj]; dob.tmp='\parasep' + end + elsif dob.is=='comment' \ + or dob.is=='meta' + dob.tmp='' #dob.tmp=nil + end + end + data + end + def footnote(data) + 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} ") + end + end + data + end + def tables_hash(md,dob) + @block={} + @dob=dob + @md.papersize_array.each do |ps| + @@tableheader={ ps => { p: 0, l: 0 } } + dob.tmp={ tmp: dob.tmp, paper_size: ps } + format_l=SiSU_TeX_Pdf::Format_text_object.new(md,dob) + dob.tmp={ tmp: dob.tmp, paper_size: ps } + format_p=SiSU_TeX_Pdf::Format_text_object.new(md,dob) + @block[ps]={ + l: format_l.longtable_landscape, + p: format_p.longtable_portrait + } + end + @dob.tmp=@block + @dob + end + def tables(data) + @tex_file=[] + data.each do |dob| + @tex_file << if dob.class==String \ + or dob.class==Hash; dob + elsif dob.is=='table' + tables_hash(@md,dob) #Hash result + else dob + end + end + @tex_file + end + def enclose(dob) + dob + end + def box_boites(dob,ocn) + sp_char=SiSU_TeX_Pdf::Special_characters.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") + ocn=SiSU_TeX_Pdf::Format_text_object.new(@md).ocn_display(dob) + dob.tmp = ocn \ + + @tex_ml.paraskip_small \ + + '\begin{Codeblock}' \ + + '\begin{codeblockboitebox} \hardspace \newline ' \ + + dob.tmp \ + + '\end{codeblockboitebox}' \ + + '\end{Codeblock}' \ + + "\n" \ + + @tex_ml.paraskip_normal + dob + end + def box_listings(dob,ocn) + sp_char=SiSU_TeX_Pdf::Special_characters.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") + ocn=SiSU_TeX_Pdf::Format_text_object.new(@md).ocn_display(dob) + dob.tmp = ocn \ + + @tex_ml.paraskip_small \ + + '\begin{Codeblock}' \ + + "\n" \ + + '\begin{lstlisting} ' \ + + "\n" \ + + dob.tmp \ + + "\n" \ + + '\end{lstlisting} ' \ + + "\n" \ + + '\end{Codeblock}' \ + + "\n" \ + + @tex_ml.paraskip_normal + dob + end + def markup_common(dob) + tex_f=nil + txt_obj={ dal: dob } + 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 + ocn=SiSU_TeX_Pdf::Format_text_object.new(@md).ocn_display(dob) + dob.tmp=if dob.is=='group' \ + or dob.is=='block' \ + or dob.is=='alt' + ocn \ + + @tex_ml.paraskip_small \ + + "\n" \ + + ' \\begin{footnotesize}' \ + + "\n\n" \ + + dob.tmp \ + + '\\end{footnotesize}' \ + + "\n" \ + + @tex_ml.paraskip_normal + elsif dob.is=~/verse/ + ocn \ + + @tex_ml.paraskip_tiny \ + + "\n" \ + + ' \\begin{footnotesize}' \ + + "\n\n" \ + + dob.tmp \ + + '\\end{footnotesize}' \ + + "\n" \ + + @tex_ml.paraskip_normal \ + + "\n\\linebreak\n" + end + dob + when /code/ + dob=if @codeblock_box == 'listings' + box_listings(dob,ocn) + elsif @codeblock_box == 'boites' + box_boites(dob,ocn) + else + box_boites(dob,ocn) + end + dob + else 'error' #should never occur + end + dob=enclose(dob) unless dob.tmp =~/^$/ + dob + else + tst=SiSU_TeX_Pdf::Format_text_object.new(@md,dob) + case dob.is + when 'heading' + case dob.ln + when 1..3 + tst.heading_major + when 4 + tst.level4 + when 5 + tst.level5 + when 6 + tst.level6 + else dob + end + when 'heading_insert' + br="\n\\\\\n" + if dob.name=='book_index' + h=tst.heading_major + heading="\\clearpage\n" + h.tmp + idx_arr=[] + idx=SiSU_Particulars::Combined_singleton.instance.get_idx_tex(@md.opt).tex_idx + idx.each do |x| + x=if x.class==String + x=SiSU_TeX_Pdf::Special_characters.new(@md,x).special_characters + x=SiSU_TeX_Pdf::Format_text_object.new(@md,x).url_str_internal(x,true) + else x=nil + end + idx_arr << x.sub(/,$/,'') if x.class==String + end + idx_str=idx_arr.join(br) + l=heading + br + idx_str + p=heading + br + + '\begin{multicols}{2}' + br + + idx_str + br + + '\end{multicols}' + dob.tmp={ l: l, p: p } + elsif dob.ln==2 \ + and dob.obj=~/Metadata\b/ + tst.heading_major + elsif dob.ln==4 \ + and dob.obj=~/Metadata\b/ + h=tst.level4 + metadata=Metadata::TeX_metadata.new(@md).metadata_tex + dob.tmp=h.tmp + ' ' + '\begin{scriptsize}' + metadata.join(br) + '\end{scriptsize}' + else dob.tmp='' # dob.tmp={ l: '', p: '' } + end + when 'para' + if dob.bullet_ + dob.tmp=tst.bullet + elsif dob.indent \ + and dob.hang \ + and dob.indent =~/[1-9]/ \ + and dob.indent == dob.hang + dob.tmp=tst.indent + elsif dob.hang \ + and dob.hang =~/[0-9]/ \ + and (dob.indent != dob.hang or dob.indent =~/[1-9]/) + dob.tmp=tst.hang + else + dob.tmp.strip! + dob=enclose(dob) unless dob.tmp =~/^$/ + end + else + 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 + end + dob + end + if dob.tmp =~/(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image\b)/m \ + && dob.is !='code' + dob=SiSU_TeX_Pdf::Bare_urls.new(@md,dob).bare_urls + tst=SiSU_TeX_Pdf::Format_text_object.new(@md,dob) + dob=tst.urls_txt_and_images + dob + elsif dob.tmp =~/https?:\/\/\S+\b/m \ + && dob.is =='code' \ + && @codeblock_box !='listings' + dob=SiSU_TeX_Pdf::Bare_urls.new(@md,dob).bare_urls_in_code + dob + end + if dob.class !=Hash \ + && dob.tmp =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}image\b/ \ + && dob.is !='code' + tst=SiSU_TeX_Pdf::Format_text_object.new(@md,dob) + end + dob + end + def tex_box_listings + < 0 # insert tags "hypertargets" + # dob.tags.each do |t| + # tags=tags +"\\hspace{0mm}\\hypertarget{#{t}}{\\hspace{0mm}}" + # end + #end + "\\begin{tiny}\\hspace{0mm}\\end{tiny}{\\marginpar{\\begin{tiny}\\hspace{0mm}\\hypertarget{#{dob.ocn}}{#{dob.ocn}}#{tags}\\end{tiny}}}" #ocn object citation numbering + end + dob.tmp = paranumber_display + dob.tmp + end + dob + end + def number_paras(data) + tex_file=[] + data.each do |dob| + dob=if dob.class==Hash + if ( dob['a4'] \ + or dob['a5'] \ + or dob['b5'] \ + or dob['letter'] \ + or dob['legal']) + para_hash={} + @md.papersize_array.each do |ps| + if defined? dob.tmp and dob.tmp[ps] + if (dob.tmp[ps][:p] and dob.tmp[ps][:l]) + para_hash[ps]={ + p: number_paras_numbering(dob.tmp[ps][:p]), + l: number_paras_numbering(dob.tmp[ps][:l]) + } + dob.tmp=para_hash + else p "#{__FILE__}:#{__LINE__}" if @md.opt.cmd.inspect =~/M/ + end + end + end + elsif (dob.tmp[:p] and dob.tmp[:l]) + dob.tmp = { + p: number_paras_numbering(dob.tmp[:p]), + l: number_paras_numbering(dob.tmp[:l]) + } + else p "#{__FILE__}:#{__LINE__}" if @md.opt.cmd.inspect =~/M/ + end + else + dob=if dob.of !~/comment|meta|layout/ + number_paras_numbering(dob) + else dob + end + end + end + data + end + def output_morph_hash(o) + 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] !~/\A\s*\Z/ + fn[:portrait].puts h[ps][:p],"\n" + end + if h[ps][:l] !~/\A\s*\Z/ + 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] !~/\A\s*\Z/ + fn[:portrait].puts h[:p],"\n" + end + if h[:l] !~/\A\s*\Z/ + fn[:landscape].puts h[:l],"\n" + end + else p "#{__FILE__}:#{__LINE__}" if @md.opt.cmd.inspect =~/M/ + end + end + def output(array) + array.flatten! + array.compact! + @array=array + 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={ + landscape: File.new("#{@env.processing_path.tex}/#{fns_l}.#{ps}.landscape.tex",'w+'), + portrait: File.new("#{@env.processing_path.tex}/#{fns_l}.#{ps}.tex",'w+') + } + file[:portrait] << @@tex_head[ps][:p] + file[:landscape] << @@tex_head[ps][:l] + array.each do |morph| + if morph.class==String + #morph.gsub!(/^\s+/,'') + if morph !~/\A\s*\Z/ + file[:portrait].puts morph,"\n" + file[:landscape].puts morph,"\n" + end + elsif morph.class.inspect =~ /SiSU_document_structure/ \ + and morph.tmp \ + and morph.tmp.class==String + if morph.is !='code' \ + && morph.of !='block' + morph.tmp.gsub!(/^\s+/,'') + else morph.tmp + end + if morph.tmp !~/\A\s*\Z/ \ + or morph.is=='code' + file[:portrait].puts morph.tmp,"\n" + file[:landscape].puts morph.tmp,"\n" + end + elsif morph.class==Hash #inserted headers and the like, only + h={ ps: ps, h: morph, filename: file } + output_morph_hash(h) + elsif morph.tmp.class==Hash #tables & images? + h={ ps: ps, h: morph.tmp, filename: file } + output_morph_hash(h) + end + end + array=@array + file[:portrait].close + file[:landscape].close + end + @@tex_head={ + 'a4'=> { p: nil, l: nil }, + 'a5'=> { p: nil, l: nil }, + 'b5'=> { p: nil, l: nil }, + 'letter'=>{ p: nil, l: nil }, + 'legal'=> { p: nil, l: nil }, + 'book'=> { p: nil, l: nil } + } + array=[] + end + end + end +end +__END__ -- cgit v1.2.3 From 51ba2d70af41137ddc3323d79e01b28fbcb40082 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 10 Jan 2012 22:44:24 -0500 Subject: v3dv: module names, use more CamelCase --- lib/sisu/v3dv/texpdf.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/sisu/v3dv/texpdf.rb') diff --git a/lib/sisu/v3dv/texpdf.rb b/lib/sisu/v3dv/texpdf.rb index 47005d16..c94ce629 100644 --- a/lib/sisu/v3dv/texpdf.rb +++ b/lib/sisu/v3dv/texpdf.rb @@ -919,7 +919,7 @@ WOK file[:portrait].puts morph,"\n" file[:landscape].puts morph,"\n" end - elsif morph.class.inspect =~ /SiSU_document_structure/ \ + elsif morph.class.inspect =~ /SiSU_DocumentStructure/ \ and morph.tmp \ and morph.tmp.class==String if morph.is !='code' \ -- cgit v1.2.3 From 732dca2b21d2261349e639c37e6ed1431e65250c Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 10 Jan 2012 22:47:40 -0500 Subject: v3dv: class names, remove "SiSU_" (reserve for module names for consistency) --- lib/sisu/v3dv/texpdf.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/sisu/v3dv/texpdf.rb') diff --git a/lib/sisu/v3dv/texpdf.rb b/lib/sisu/v3dv/texpdf.rb index c94ce629..aae3b1d5 100644 --- a/lib/sisu/v3dv/texpdf.rb +++ b/lib/sisu/v3dv/texpdf.rb @@ -91,7 +91,7 @@ module SiSU_TeX begin case @opt.fns when /\.(?:-|ssm\.)?sst$/ - SiSU_Env::SiSU_file.new(@md).mkdir + SiSU_Env::FileOp.new(@md).mkdir Dir.mkdir(@env.processing_path.tex) unless FileTest.directory?(@env.processing_path.tex) end rescue; SiSU_Errors::Info_error.new($!,$@,@opt.cmd,@opt.fns).error @@ -148,7 +148,7 @@ module SiSU_TeX @@n_lpdf||=0 #change def initialize(md,env) @md,@env=md,env - @f=SiSU_Env::SiSU_file.new(@md).base_filename + @f=SiSU_Env::FileOp.new(@md).base_filename end def latex_do(texfilename,papersize) @texfilename=texfilename -- cgit v1.2.3 From df67ee1079d074dc2af54aa87187c6538e73d5d7 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 10 Jan 2012 22:50:12 -0500 Subject: v3dv: class names, use more CamelCase --- lib/sisu/v3dv/texpdf.rb | 94 ++++++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 47 deletions(-) (limited to 'lib/sisu/v3dv/texpdf.rb') diff --git a/lib/sisu/v3dv/texpdf.rb b/lib/sisu/v3dv/texpdf.rb index aae3b1d5..f4a18f0d 100644 --- a/lib/sisu/v3dv/texpdf.rb +++ b/lib/sisu/v3dv/texpdf.rb @@ -72,7 +72,7 @@ module SiSU_TeX @@tex_debug_counter=@@table_pagebreak_counter=@@tex_footnote_call_counter=@@tex_table_flag=@@tex_counter=@@tex_column=@@tex_columns=@@tex_columns=@@counting=0 @@tex_pattern_margin_number=/\\\\begin\\\{tiny\\\}\\\\hspace\\\{0mm\\\}\\\\end\\\{tiny\\\}\\\{\\\\marginpar.+?\s+/ @@n=@@tableheader=@@rights=nil - @@date ||=SiSU_Env::Info_date.new + @@date ||=SiSU_Env::InfoDate.new class Source require 'pstore' require_relative 'sysenv' # sysenv.rb @@ -83,9 +83,9 @@ module SiSU_TeX include SiSU_TeX def initialize(opt) @opt=opt - @particulars=SiSU_Particulars::Combined_singleton.instance.get_all(opt) + @particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(opt) @md=@particulars.md - @env=SiSU_Env::Info_env.new(@md.fns) #@env=@particulars.env + @env=SiSU_Env::InfoEnv.new(@md.fns) #@env=@particulars.env end def directories begin @@ -94,7 +94,7 @@ module SiSU_TeX SiSU_Env::FileOp.new(@md).mkdir Dir.mkdir(@env.processing_path.tex) unless FileTest.directory?(@env.processing_path.tex) end - rescue; SiSU_Errors::Info_error.new($!,$@,@opt.cmd,@opt.fns).error + rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error ensure end end @@ -114,14 +114,14 @@ module SiSU_TeX $flag=@md.opt.cmd #introduced to pass 0 for no object citation numbers... to texpdf_format directories #% needed needs to be reprogrammed !!! - SiSU_Env::Info_skin.new(@md).select + SiSU_Env::InfoSkin.new(@md).select dal_array=SiSU_DAL::Source.new(@opt).get # dal file drawn here - SiSU_TeX::Source::LaTeX_create.new(@particulars).songsheet + SiSU_TeX::Source::LaTeXcreate.new(@particulars).songsheet dal_array='' pwd=Dir.pwd - SiSU_TeX::Source::LaTeX_to_pdf.new(@md,@particulars.env).latexrun_selective + SiSU_TeX::Source::LaTeXtoPdf.new(@md,@particulars.env).latexrun_selective Dir.chdir(pwd) - rescue; SiSU_Errors::Info_error.new($!,$@,@opt.cmd,@opt.fns).error + rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error ensure unless @opt.cmd =~/[MV]/ #check maintenance flag texfiles=Dir["#{@env.processing_path.tex}/#{@opt.fns}*"] @@ -137,14 +137,14 @@ module SiSU_TeX @@tex_debug_counter=@@table_pagebreak_counter=@@tex_footnote_call_counter=@@tex_table_flag=@@tex_counter=@@tex_column=@@tex_columns=@@tex_columns=@@counting=0 @@tex_col_w=[] @@n=@@tableheader=@@rights=nil - @@date=SiSU_Env::Info_date.new + @@date=SiSU_Env::InfoDate.new @@flag={} $flag=1 #remove at some stage SiSU_Env::Clear.new(@opt.cmd,@opt.fns).param_instantiate end end private - class LaTeX_to_pdf + class LaTeXtoPdf @@n_lpdf||=0 #change def initialize(md,env) @md,@env=md,env @@ -155,7 +155,7 @@ module SiSU_TeX @@n_lpdf=@@n_lpdf+1 SiSU_Screen::Ansi.new(@md.opt.cmd,"#{papersize} portrait ->").dark_grey_title_hi if @md.opt.cmd =~/[MVv]/ tex_fn_base=@texfilename.gsub(/\.tex$/,'') - cmd=SiSU_Env::System_call.new("#{tex_fn_base}.tex",'',@md.opt.cmd) + cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.tex",'',@md.opt.cmd) tell=SiSU_Screen::Ansi.new(@md.opt.cmd) tell.grey_open if @md.opt.cmd =~/[MVv]/ if "#{tex_fn_base}" =~/\w+/ \ @@ -164,7 +164,7 @@ module SiSU_TeX end tell.p_off if @md.opt.cmd =~/[MVv]/ SiSU_Screen::Ansi.new(@md.opt.cmd,"#{papersize} landscape ->").dark_grey_title_hi if @md.opt.cmd =~/[MVv]/ - cmd=SiSU_Env::System_call.new("#{tex_fn_base}.landscape.tex",'',@md.opt.cmd) + cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.landscape.tex",'',@md.opt.cmd) tell.grey_open if @md.opt.cmd =~/[MVv]/ if "#{tex_fn_base}" =~/\w+/ \ and "#{papersize}" =~/\w+/ @@ -261,11 +261,11 @@ module SiSU_TeX end lst=Dir["*.{aux,log,out}"] lst.each {|file| File.unlink(file)} if lst - rescue; SiSU_Errors::Info_error.new($!,$@,@md.opt.cmd,@md.fns).error + rescue; SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error end end end - class LaTeX_create + class LaTeXcreate @@tex_head={ 'a4'=> { p: nil, l: nil }, 'a5'=> { p: nil, l: nil }, @@ -278,15 +278,15 @@ module SiSU_TeX def initialize(particulars) @particulars=particulars @md=@particulars.md - @env=SiSU_Env::Info_env.new(@md.fns) #@env=@particulars.env + @env=SiSU_Env::InfoEnv.new(@md.fns) #@env=@particulars.env @data=@particulars.dal_array # dal file drawn here @st={ tex: {} } - @tex_ml=SiSU_TeX_Pdf::Use_TeX.new(@md) - @vz=SiSU_Env::Get_init.instance.skin - @dp=@@dp ||=SiSU_Env::Info_env.new.digest.pattern + @tex_ml=SiSU_TeX_Pdf::UseTeX.new(@md) + @vz=SiSU_Env::GetInit.instance.skin + @dp=@@dp ||=SiSU_Env::InfoEnv.new.digest.pattern @brace_url=SiSU_Viz::Skin.new.url_decoration - vz=SiSU_Env::Get_init.instance.skin - l=SiSU_Env::Standardise_language.new(@md.opt.lng).language + vz=SiSU_Env::GetInit.instance.skin + l=SiSU_Env::StandardiseLanguage.new(@md.opt.lng).language @language=l[:n] @translate=SiSU_Translate::Source.new(@md,@language) @skin_no_ocn=if defined? vz.ocn_display_off \ @@ -305,7 +305,7 @@ module SiSU_TeX if defined? @md.rights.all \ and not @md.rights.all.empty? rght=@md.rights #.author.dup #dup is necessary, else contents of :rights changed - sp_char=SiSU_TeX_Pdf::Special_characters.new(@md,rght.copyright.all) + sp_char=SiSU_TeX_Pdf::SpecialCharacters.new(@md,rght.copyright.all) copymark=@md.author_copymark \ ? '{\begin{small}\copyright\end{small}} ' : '' @@ -315,7 +315,7 @@ module SiSU_TeX end if defined? @md.notes.prefix_b \ and not @md.notes.prefix_b.empty? - sp_char=SiSU_TeX_Pdf::Special_characters.new(@md,@md.notes.prefix_b) + sp_char=SiSU_TeX_Pdf::SpecialCharacters.new(@md,@md.notes.prefix_b) prefix_b=sp_char.special_characters_safe @@prefix_b="\n #{Tex[:backslash]*2}[3]\\ \\linebreak \\ #{prefix_b}\n" unless @@prefix_b end @@ -333,7 +333,7 @@ module SiSU_TeX data=number_paras(data) data=markup(data) output(data) - rescue; SiSU_Errors::Info_error.new($!,$@,@md.opt.cmd,@md.fns).error + rescue; SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error ensure end end @@ -348,15 +348,15 @@ module SiSU_TeX if dob.is=='para' \ or dob.is=='heading' dob.tmp.gsub!(/#{Mx[:mk_o]}:name#\S+?#{Mx[:mk_c]}/,'') - dob.tmp=SiSU_TeX_Pdf::Special_characters.new(@md,dob.tmp).special_characters + 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::Format_text_object.new(@md,dob.tmp).url_str_internal(dob.tmp) + dob.tmp=SiSU_TeX_Pdf::FormatTextObject.new(@md,dob.tmp).url_str_internal(dob.tmp) end elsif dob.is =='code' dob.tmp=if @codeblock_box=='listings' dob.tmp else - SiSU_TeX_Pdf::Special_characters.new(@md,dob.tmp).special_characters_code + SiSU_TeX_Pdf::SpecialCharacters.new(@md,dob.tmp).special_characters_code end elsif dob.is =='break' if dob.obj==Mx[:br_page]; dob.tmp='\newpage' @@ -387,9 +387,9 @@ module SiSU_TeX @md.papersize_array.each do |ps| @@tableheader={ ps => { p: 0, l: 0 } } dob.tmp={ tmp: dob.tmp, paper_size: ps } - format_l=SiSU_TeX_Pdf::Format_text_object.new(md,dob) + format_l=SiSU_TeX_Pdf::FormatTextObject.new(md,dob) dob.tmp={ tmp: dob.tmp, paper_size: ps } - format_p=SiSU_TeX_Pdf::Format_text_object.new(md,dob) + format_p=SiSU_TeX_Pdf::FormatTextObject.new(md,dob) @block[ps]={ l: format_l.longtable_landscape, p: format_p.longtable_portrait @@ -414,7 +414,7 @@ module SiSU_TeX dob end def box_boites(dob,ocn) - sp_char=SiSU_TeX_Pdf::Special_characters.new(@md,dob.tmp,dob.is) + 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,'{~}') @@ -424,7 +424,7 @@ module SiSU_TeX dob.tmp.gsub!(/#{Mx[:br_nl]}{2}/,'\newline \\\\\\ ') dob.tmp.gsub!(/#{Mx[:br_nl]}/,' \\\\\\ ') dob.tmp.gsub!(/\n\n\n/m," \\newline\n\n") - ocn=SiSU_TeX_Pdf::Format_text_object.new(@md).ocn_display(dob) + ocn=SiSU_TeX_Pdf::FormatTextObject.new(@md).ocn_display(dob) dob.tmp = ocn \ + @tex_ml.paraskip_small \ + '\begin{Codeblock}' \ @@ -437,14 +437,14 @@ module SiSU_TeX dob end def box_listings(dob,ocn) - sp_char=SiSU_TeX_Pdf::Special_characters.new(@md,dob.tmp,dob.is) + 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") - ocn=SiSU_TeX_Pdf::Format_text_object.new(@md).ocn_display(dob) + ocn=SiSU_TeX_Pdf::FormatTextObject.new(@md).ocn_display(dob) dob.tmp = ocn \ + @tex_ml.paraskip_small \ + '\begin{Codeblock}' \ @@ -469,7 +469,7 @@ module SiSU_TeX 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 - ocn=SiSU_TeX_Pdf::Format_text_object.new(@md).ocn_display(dob) + ocn=SiSU_TeX_Pdf::FormatTextObject.new(@md).ocn_display(dob) dob.tmp=if dob.is=='group' \ or dob.is=='block' \ or dob.is=='alt' @@ -509,7 +509,7 @@ module SiSU_TeX dob=enclose(dob) unless dob.tmp =~/^$/ dob else - tst=SiSU_TeX_Pdf::Format_text_object.new(@md,dob) + tst=SiSU_TeX_Pdf::FormatTextObject.new(@md,dob) case dob.is when 'heading' case dob.ln @@ -529,11 +529,11 @@ module SiSU_TeX h=tst.heading_major heading="\\clearpage\n" + h.tmp idx_arr=[] - idx=SiSU_Particulars::Combined_singleton.instance.get_idx_tex(@md.opt).tex_idx + idx=SiSU_Particulars::CombinedSingleton.instance.get_idx_tex(@md.opt).tex_idx idx.each do |x| x=if x.class==String - x=SiSU_TeX_Pdf::Special_characters.new(@md,x).special_characters - x=SiSU_TeX_Pdf::Format_text_object.new(@md,x).url_str_internal(x,true) + x=SiSU_TeX_Pdf::SpecialCharacters.new(@md,x).special_characters + x=SiSU_TeX_Pdf::FormatTextObject.new(@md,x).url_str_internal(x,true) else x=nil end idx_arr << x.sub(/,$/,'') if x.class==String @@ -551,7 +551,7 @@ module SiSU_TeX elsif dob.ln==4 \ and dob.obj=~/Metadata\b/ h=tst.level4 - metadata=Metadata::TeX_metadata.new(@md).metadata_tex + metadata=Metadata::TeX_Metadata.new(@md).metadata_tex dob.tmp=h.tmp + ' ' + '\begin{scriptsize}' + metadata.join(br) + '\end{scriptsize}' else dob.tmp='' # dob.tmp={ l: '', p: '' } end @@ -583,20 +583,20 @@ module SiSU_TeX end if dob.tmp =~/(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image\b)/m \ && dob.is !='code' - dob=SiSU_TeX_Pdf::Bare_urls.new(@md,dob).bare_urls - tst=SiSU_TeX_Pdf::Format_text_object.new(@md,dob) + dob=SiSU_TeX_Pdf::BareUrls.new(@md,dob).bare_urls + tst=SiSU_TeX_Pdf::FormatTextObject.new(@md,dob) dob=tst.urls_txt_and_images dob elsif dob.tmp =~/https?:\/\/\S+\b/m \ && dob.is =='code' \ && @codeblock_box !='listings' - dob=SiSU_TeX_Pdf::Bare_urls.new(@md,dob).bare_urls_in_code + dob=SiSU_TeX_Pdf::BareUrls.new(@md,dob).bare_urls_in_code dob end if dob.class !=Hash \ && dob.tmp =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}image\b/ \ && dob.is !='code' - tst=SiSU_TeX_Pdf::Format_text_object.new(@md,dob) + tst=SiSU_TeX_Pdf::FormatTextObject.new(@md,dob) end dob end @@ -666,9 +666,9 @@ WOK title=@md.title.full.gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}|#{Mx[:br_paragraph]}|\\\\/,' - ') #no line splitting in heading neither html nor latex @md.papersize_array.each do |ps| txt_obj={ txt: "#{home}: - #{title}", paper_size: ps, orientation: 'portrait' } - orient_portrait=SiSU_TeX_Pdf::Format_head.new(@md,txt_obj) + orient_portrait=SiSU_TeX_Pdf::FormatHead.new(@md,txt_obj) txt_obj={ txt: "#{home}: - #{title}", paper_size: ps, orientation: 'landscape' } - orient_landscape=SiSU_TeX_Pdf::Format_head.new(@md,txt_obj) + orient_landscape=SiSU_TeX_Pdf::FormatHead.new(@md,txt_obj) @@tex_head[ps][:p]=orient_portrait.document_head_with_orientation(@codeblock_box) @@tex_head[ps][:l]=orient_landscape.document_head_with_orientation(@codeblock_box) end @@ -709,13 +709,13 @@ WOK @copymark='' #check and remove as now is superflous x={} txt_obj={ title: @md.title.full } - x[:l]=SiSU_TeX_Pdf::Format_text_object.new(@md,txt_obj).title_landscape - x[:p]=SiSU_TeX_Pdf::Format_text_object.new(@md,txt_obj).title_portrait + x[:l]=SiSU_TeX_Pdf::FormatTextObject.new(@md,txt_obj).title_landscape + x[:p]=SiSU_TeX_Pdf::FormatTextObject.new(@md,txt_obj).title_portrait @tex_file << x x=nil if defined? @md.creator.author \ and @md.creator.author - sp_char=SiSU_TeX_Pdf::Special_characters.new(@md,@md.creator.author) + sp_char=SiSU_TeX_Pdf::SpecialCharacters.new(@md,@md.creator.author) author=sp_char.special_characters @tex_file << if @md.author_home < Date: Tue, 10 Jan 2012 23:16:46 -0500 Subject: v3dv: SiSU_DAL_ for module names in dal, & module Metadata is SiSU_Metadata * v3dv: modify.rb script (& its artifact) removed (after use) from lib/sisu modify.rb script remains available (in generic form) under: data/sisu/v3/conf/convert/modify.rb data/sisu/v3dv/conf/convert/modify.rb --- lib/sisu/v3dv/texpdf.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/sisu/v3dv/texpdf.rb') diff --git a/lib/sisu/v3dv/texpdf.rb b/lib/sisu/v3dv/texpdf.rb index f4a18f0d..ee623cec 100644 --- a/lib/sisu/v3dv/texpdf.rb +++ b/lib/sisu/v3dv/texpdf.rb @@ -551,7 +551,7 @@ module SiSU_TeX elsif dob.ln==4 \ and dob.obj=~/Metadata\b/ h=tst.level4 - metadata=Metadata::TeX_Metadata.new(@md).metadata_tex + metadata=SiSU_Metadata::TeX_Metadata.new(@md).metadata_tex dob.tmp=h.tmp + ' ' + '\begin{scriptsize}' + metadata.join(br) + '\end{scriptsize}' else dob.tmp='' # dob.tmp={ l: '', p: '' } end @@ -919,7 +919,7 @@ WOK file[:portrait].puts morph,"\n" file[:landscape].puts morph,"\n" end - elsif morph.class.inspect =~ /SiSU_DocumentStructure/ \ + elsif morph.class.inspect =~ /SiSU_DAL_DocumentStructure/ \ and morph.tmp \ and morph.tmp.class==String if morph.is !='code' \ -- cgit v1.2.3