Module: LaTeX

Defined in:
lib/latex/decode/compatibility.rb,
lib/latex/decode.rb,
lib/latex/decode/base.rb,
lib/latex/decode/greek.rb,
lib/latex/decode/maths.rb,
lib/latex/decode/accents.rb,
lib/latex/decode/symbols.rb,
lib/latex/decode/version.rb,
lib/latex/decode/diacritics.rb,
lib/latex/decode/punctuation.rb,
lib/latex/decode/compatibility.rb,
lib/latex/decode/compatibility.rb,
lib/latex/decode/compatibility.rb,
lib/latex/decode/compatibility.rb

Overview

Use the Java native Unicode normalizer

Defined Under Namespace

Modules: Decode

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.decodersObject (readonly)

Returns the value of attribute decoders.



43
44
45
# File 'lib/latex/decode.rb', line 43

def decoders
  @decoders
end

Class Method Details

.decode(string, options = {}) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/latex/decode.rb', line 45

def decode(string, options = {})
  return string unless string.respond_to?(:to_s)

  string = string.is_a?(String) ? string.dup : string.to_s

  Decode::Base.normalize(string)

  decoders.each do |d|
    d.decode! string unless options[d.id] == false
  end

  Decode::Base.strip_braces(string) unless options[:strip_braces] == false

  LaTeX.normalize_C(string)
end

.normalize_C(string) ⇒ Object



30
31
32
# File 'lib/latex/decode/compatibility.rb', line 30

def self.normalize_C(string)
  java.text.Normalizer.normalize(string, java.text.Normalizer::Form::NFC).to_s
end

.to_unicode(string) ⇒ Object



6
7
8
# File 'lib/latex/decode/compatibility.rb', line 6

def self.to_unicode(string)
  string.gsub(/\\?u([\da-f]{4})/i) { |m| [$1.to_i(16)].pack('U') }
end