Module: ReVIEW::LaTeXUtils

Included in:
LATEXBuilder
Defined in:
lib/review/latexutils.rb

Constant Summary collapse

MATACHARS =
{
  '#'  => '\#',
  "$"  => '\textdollar{}',
  '%' => '\%',
  '&' => '\&',
  '{' => '\{',
  '}' => '\}',
  '_'  => '\textunderscore{}',
  '^' => '\textasciicircum{}',
  '~' => '\textasciitilde{}',
  '|' => '\textbar{}',
  '<'  => '\textless{}',
  '>'  => '\textgreater{}',
  "\\" => '\reviewbackslash{}',
  "-" => '{-}',

  '' => '\UTF{24EA}',
  '' => '\UTF{2460}',
  '' => '\UTF{2461}',
  '' => '\UTF{2462}',
  '' => '\UTF{2463}',
  '' => '\UTF{2464}',
  '' => '\UTF{2465}',
  '' => '\UTF{2466}',
  '' => '\UTF{2467}',
  '' => '\UTF{2468}',
  '' => '\UTF{2469}',
}
METACHARS_RE =
/[#{Regexp.escape(MATACHARS.keys.join(''))}]/
MATACHARS_INVERT =
MATACHARS.invert

Instance Method Summary collapse

Instance Method Details

#escape_index(str) ⇒ Object



65
66
67
# File 'lib/review/latexutils.rb', line 65

def escape_index(str)
  str.gsub(/[@!|"]/) {|s| '"' + s }
end

#escape_latex(str) ⇒ Object Also known as: escape



50
51
52
53
54
# File 'lib/review/latexutils.rb', line 50

def escape_latex(str)
  str.gsub(METACHARS_RE) {|s|
    MATACHARS[s] or raise "unknown trans char: #{s}"
  }
end

#escape_url(str) ⇒ Object



69
70
71
# File 'lib/review/latexutils.rb', line 69

def escape_url(str)
  str.gsub(/[\#%]/) {|s| '\\'+s }
end

#macro(name, *args) ⇒ Object



73
74
75
# File 'lib/review/latexutils.rb', line 73

def macro(name, *args)
  "\\#{name}" + args.map {|a| "{#{a}}" }.join('')
end

#unescape_latex(str) ⇒ Object



58
59
60
61
62
63
# File 'lib/review/latexutils.rb', line 58

def unescape_latex(str)
  metachars_invert_re = Regexp.new(MATACHARS_INVERT.keys.collect{|key|  Regexp.escape(key)}.join('|'))
  str.gsub(metachars_invert_re) {|s|
    MATACHARS_INVERT[s] or raise "unknown trans char: #{s}"
  }
end