From 7e9a59cab2283aea8155fca3187e58011851bf6f Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Mon, 23 Jan 2012 21:27:53 -0500 Subject: v3 v3dv: texpdf, tampering with "safe" special character transformations, a fix * could introduce new issues, watch * [reported by Timothy Hume, pdf title bug "&" not represented] --- lib/sisu/v3/texpdf_format.rb | 9 +++++++++ lib/sisu/v3dv/texpdf_format.rb | 9 +++++++++ 2 files changed, 18 insertions(+) (limited to 'lib') diff --git a/lib/sisu/v3/texpdf_format.rb b/lib/sisu/v3/texpdf_format.rb index 43008c3d..76fc5d37 100644 --- a/lib/sisu/v3/texpdf_format.rb +++ b/lib/sisu/v3/texpdf_format.rb @@ -1366,6 +1366,14 @@ WOK '^\copyright \textnormal{\1} \2') # watch likely to be problematic str end + def special_characters_safe_close(str) + str.gsub!(/<=tilde>/,'{$\tilde$}') + str.gsub!(/<=hash>/,'{\#}') + str.gsub!(/<=amp>/,'{\\\&}') #changed ... 2005 + str.gsub!(/<=copymark>\s*(.+)/, + '^\copyright \textnormal{\1} \2') # watch likely to be problematic + str + end def special_characters_code_fix(str) str.gsub!(/<=tilde>/,'{$\tilde$}') str @@ -1398,6 +1406,7 @@ WOK str,is=@txt,@is str=xetex_special_characters_1(str,is) unless str.nil? str=xetex_special_characters_2(str,is) unless str.nil? # remove this to start with, causes issues + str=special_characters_safe_close(str) unless str.nil? @txt=str end def characters_code_listings #special characters - some substitutions are sequence sensitive, rearrange with care. diff --git a/lib/sisu/v3dv/texpdf_format.rb b/lib/sisu/v3dv/texpdf_format.rb index d059934d..a4b590a1 100644 --- a/lib/sisu/v3dv/texpdf_format.rb +++ b/lib/sisu/v3dv/texpdf_format.rb @@ -1366,6 +1366,14 @@ WOK '^\copyright \textnormal{\1} \2') # watch likely to be problematic str end + def special_characters_safe_close(str) + str.gsub!(/<=tilde>/,'{$\tilde$}') + str.gsub!(/<=hash>/,'{\#}') + str.gsub!(/<=amp>/,'{\\\&}') #changed ... 2005 + str.gsub!(/<=copymark>\s*(.+)/, + '^\copyright \textnormal{\1} \2') # watch likely to be problematic + str + end def special_characters_code_fix(str) str.gsub!(/<=tilde>/,'{$\tilde$}') str @@ -1398,6 +1406,7 @@ WOK str,is=@txt,@is str=xetex_special_characters_1(str,is) unless str.nil? str=xetex_special_characters_2(str,is) unless str.nil? # remove this to start with, causes issues + str=special_characters_safe_close(str) unless str.nil? @txt=str end def characters_code_listings #special characters - some substitutions are sequence sensitive, rearrange with care. -- cgit v1.2.3