Sha256: 6883c7159033b0d5ce505c0135086a226df904814700458fb697dd3ec0948a00

Contents?: true

Size: 586 Bytes

Versions: 6

Compression:

Stored size: 586 Bytes

Contents

module Latexpdf
  class Escaper
    ESCAPE_RE=/([{}_$&%#])|([\\^~|<>])/
    ESC_MAP = {
        '\\' => 'backslash',
        '^' => 'asciicircum',
        '~' => 'asciitilde',
        '|' => 'bar',
        '<' => 'less',
        '>' => 'greater',
    }

    def tex_safe(text)
      text.gsub(ESCAPE_RE) { |m|
        if $1
          "\\#{m}"
        else
          "\\text#{ESC_MAP[m]}{}"
        end
      }.html_safe
    end
  end

  def self.escape_latex(text)
    latex_escaper.tex_safe(text)
  end

  private

  def self.latex_escaper
    @latex_escaper ||= Escaper.new
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
latexpdf-0.4.7 lib/latexpdf/escaper.rb
latexpdf-0.4.6 lib/latexpdf/escaper.rb
latexpdf-0.4.5 lib/latexpdf/escaper.rb
latexpdf-0.4.4 lib/latexpdf/escaper.rb
latexpdf-0.4.3 lib/latexpdf/escaper.rb
latexpdf-0.4.2 lib/latexpdf/escaper.rb