diff options
Diffstat (limited to 'lib/sisu/v2/texpdf_format.rb')
-rw-r--r-- | lib/sisu/v2/texpdf_format.rb | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/sisu/v2/texpdf_format.rb b/lib/sisu/v2/texpdf_format.rb index b53864ec..e756aa03 100644 --- a/lib/sisu/v2/texpdf_format.rb +++ b/lib/sisu/v2/texpdf_format.rb @@ -107,6 +107,19 @@ module SiSU_TeX_Pdf def ocn_display(dob) "\\begin{tiny}\\hspace{0mm}\\end{tiny}{\\marginpar{\\begin{tiny}\\hspace{0mm}\\hypertarget{#{dob.ocn}}{#{dob.ocn}}\\end{tiny}}}" #ocn object citation numbering end + def table_special_characters(r) + r.gsub!(/#{Mx[:tc_p]}|$/u,'&') + r.gsub!(/%/,'\%') + r.gsub!(/#{Mx[:fa_bold_o]}(.+?)#{Mx[:fa_bold_c]}/,'\begin{bfseries}\1 \end{bfseries}') + r.gsub!(/#{Mx[:fa_italics_o]}(.+?)#{Mx[:fa_italics_c]}/,'\emph{\1}') + r.gsub!(/#{Mx[:fa_underscore_o]}(.+?)#{Mx[:fa_underscore_c]}/,'\uline{\1}') # ulem + r.gsub!(/#{Mx[:fa_cite_o]}(.+?)#{Mx[:fa_cite_c]}/,"``\\1''") # quote #CHECK + r.gsub!(/#{Mx[:fa_insert_o]}(.+?)#{Mx[:fa_insert_c]}/,'\uline{\1}') # ulem + r.gsub!(/#{Mx[:fa_strike_o]}(.+?)#{Mx[:fa_strike_c]}/,'\sout{\1}') # ulem + r.gsub!(/#{Mx[:fa_superscript_o]}(.+?)#{Mx[:fa_superscript_c]}/,"\$^{\\textrm{\\1}}\$") + r.gsub!(/#{Mx[:fa_subscript_o]}(.+?)#{Mx[:fa_subscript_c]}/,"\$_{\\textrm{\\1}}\$") + r + end def longtable_landscape end_table='\end{longtable}' row_break='\\\\\\' @@ -137,7 +150,7 @@ module SiSU_TeX_Pdf rows[0].gsub!(/&\s*$/," #{row_break} \\hline\\endhead #{row_break}") end rows.each do |r| - r.gsub!(/#{Mx[:tc_p]}|$/,'&') + r=table_special_characters(r) r.gsub!(/$/," #{row_break}\n") unless r =~/#{row_break*2}$/ if r=~/\<!f(.+?)!\>/ # not tested table footer if any tablefoot=$1 @@ -180,7 +193,7 @@ module SiSU_TeX_Pdf rows[0].gsub!(/&\s*$/," #{row_break} \\hline\\endhead #{row_break}") end rows.each do |r| - r.gsub!(/#{Mx[:tc_p]}|$/u,'&') + r=table_special_characters(r) r.gsub!(/$/," #{row_break}\n") unless r =~/#{row_break*2}$/ if r=~/\<!f(.+?)!\>/ # not tested table footer if any tablefoot=$1 @@ -635,6 +648,7 @@ module SiSU_TeX_Pdf \\usepackage{polyglossia, ucs, fontspec, xltxtra, xunicode} \\setmainlanguage{#{tex_head_lang}} \\setotherlanguage{english} +\\setmainfont{#{@md.make.texpdf_font}} WOK when /pdf/ if @md.file_encoding =~ /iso-?8859/i #% iso8859 @@ -941,6 +955,7 @@ WOK para_array=[] str=if word word.each do |w| # _ - / # | : ! ^ ~ + w.gsub!(/#{Mx[:gl_o]}#lt#{Mx[:gl_c]}/,'<'); w.gsub!(/#{Mx[:gl_o]}#gt#{Mx[:gl_c]}/,'>') w.gsub!(/[\\]?~/,'<=tilde>') w.gsub!(/[#{Mx[:br_line]}#{Mx[:br_paragraph]}]/,' \newline ') #watch w.gsub!(/#{Mx[:gl_o]}#(?:126|152)#{Mx[:gl_c]}/,'<=tilde>') #126 usual |