/usr/local/CPAN/LaTeX-Encode/LaTeX/Encode/EncodingTable.pm


# LaTeX::Encode character encoding table

package LaTeX::Encode::EncodingTable;

use strict;
use warnings;
use vars qw(@EXPORT %latex_encoding $encoded_char_re);
use base 'Exporter';

@EXPORT = qw(%latex_encoding $encoded_char_re);

%latex_encoding = (
  chr(0x23)  => '\\#',                          # # - #
  chr(0x24)  => '\\$',                          # $ - $
  chr(0x25)  => '\\%',                          # % - %
  chr(0x26)  => '\\&',                          # & - &
  chr(0x5c)  => '\\textbackslash',              # \ - \
  chr(0x5e)  => '\\^{ }',                       # ^ - ^
  chr(0x5f)  => '\\_',                          # _ - _
  chr(0x7b)  => '\\{',                          # { - {
  chr(0x7d)  => '\\}',                          # } - }
  chr(0x7e)  => '\\texttildelow',               # ~ - ~
  chr(0xa0)  => '~',                            #   -  
  chr(0xa1)  => '\\textexclamdown',             # ¡ - ¡
  chr(0xa2)  => '\\textcent',                   # ¢ - ¢
  chr(0xa3)  => '\\textsterling',               # £ - £
  chr(0xa4)  => '\\textcurrency',               # ¤ - ¤
  chr(0xa5)  => '\\textyen',                    # ¥ - ¥
  chr(0xa6)  => '\\textbrokenbar',              # ¦ - ¦
  chr(0xa7)  => '\\textsection',                # § - §
  chr(0xa8)  => '\\textasciidieresis',          # ¨ - ¨
  chr(0xa9)  => '\\textcopyright',              # © - ©
  chr(0xaa)  => '\\textordfeminine',            # ª - ª
  chr(0xab)  => '\\guillemotleft',              # « - «
  chr(0xac)  => '\\textlnot',                   # ¬ - ¬
  chr(0xad)  => '\\-',                          # ­ - ­
  chr(0xae)  => '\\textregistered',             # ® - ®
  chr(0xaf)  => '\\textasciimacron',            # ¯ - ¯
  chr(0xb0)  => '\\textdegree',                 # ° - °
  chr(0xb1)  => '\\textpm',                     # ± - ±
  chr(0xb2)  => '\\texttwosuperior',            # ² - ²
  chr(0xb3)  => '\\textthreesuperior',          # ³ - ³
  chr(0xb4)  => '\\textasciiacute',             # ´ - ´
  chr(0xb5)  => '\\textmu',                     # µ - µ
  chr(0xb6)  => '\\textparagraph',              # ¶ - ¶
  chr(0xb7)  => '\\textperiodcentered',         # · - ·
  chr(0xb8)  => '\\c{}',                          # ¸ - ¸
  chr(0xb9)  => '\\textonesuperior',            # ¹ - ¹
  chr(0xba)  => '\\textordmasculine',           # º - º
  chr(0xbb)  => '\\guillemotright',             # » - »
  chr(0xbc)  => '\\textonequarter',             # ¼ - ¼
  chr(0xbd)  => '\\textonehalf',                # ½ - ½
  chr(0xbe)  => '\\textthreequarters',          # ¾ - ¾
  chr(0xbf)  => '\\textquestiondown',           # ¿ - ¿
  chr(0xc0)  => '\\`A',                         # À - À
  chr(0xc1)  => '\\\'A',                        # Á - Á
  chr(0xc2)  => '\\^A',                         # Â - Â
  chr(0xc3)  => '\\~A',                         # Ã - Ã
  chr(0xc4)  => '\\"A',                         # Ä - Ä
  chr(0xc5)  => '\\AA',                         # Å - Å
  chr(0xc6)  => '\\AE',                         # Æ - Æ
  chr(0xc7)  => '\\c{C}',                       # Ç - Ç
  chr(0xc8)  => '\\`E',                         # È - È
  chr(0xc9)  => '\\\'E',                        # É - É
  chr(0xca)  => '\\^E',                         # Ê - Ê
  chr(0xcb)  => '\\"E',                         # Ë - Ë
  chr(0xcc)  => '\\`I',                         # Ì - Ì
  chr(0xcd)  => '\\\'I',                        # Í - Í
  chr(0xce)  => '\\^I',                         # Î - Î
  chr(0xcf)  => '\\"I',                         # Ï - Ï
  chr(0xd0)  => '\\DH',                         # Ð - Ð
  chr(0xd1)  => '\\~N',                         # Ñ - Ñ
  chr(0xd2)  => '\\`O',                         # Ò - Ò
  chr(0xd3)  => '\\\'O',                        # Ó - Ó
  chr(0xd4)  => '\\^O',                         # Ô - Ô
  chr(0xd5)  => '\\~O',                         # Õ - Õ
  chr(0xd6)  => '\\"O',                         # Ö - Ö
  chr(0xd7)  => '\\texttimes',                  # × - ×
  chr(0xd8)  => '\\O',                          # Ø - Ø
  chr(0xd9)  => '\\`U',                         # Ù - Ù
  chr(0xda)  => '\\\'U',                        # Ú - Ú
  chr(0xdb)  => '\\^U',                         # Û - Û
  chr(0xdc)  => '\\"U',                         # Ü - Ü
  chr(0xdd)  => '\\\'Y',                        # Ý - Ý
  chr(0xde)  => '\\TH',                         # Þ - Þ
  chr(0xdf)  => '\\ss',                         # ß - ß
  chr(0xe0)  => '\\`a',                         # à - à
  chr(0xe1)  => '\\\'a',                        # á - á
  chr(0xe2)  => '\\^a',                         # â - â
  chr(0xe3)  => '\\~a',                         # ã - ã
  chr(0xe4)  => '\\"a',                         # ä - ä
  chr(0xe5)  => '\\aa',                         # å - å
  chr(0xe6)  => '\\ae',                         # æ - æ
  chr(0xe7)  => '\\c{c}',                       # ç - ç
  chr(0xe8)  => '\\`e',                         # è - è
  chr(0xe9)  => '\\\'e',                        # é - é
  chr(0xea)  => '\\^e',                         # ê - ê
  chr(0xeb)  => '\\"e',                         # ë - ë
  chr(0xec)  => '\\`i',                         # ì - ì
  chr(0xed)  => '\\\'i',                        # í - í
  chr(0xee)  => '\\^i',                         # î - î
  chr(0xef)  => '\\"i',                         # ï - ï
  chr(0xf0)  => '\\dh',                         # ð - ð
  chr(0xf1)  => '\\~n',                         # ñ - ñ
  chr(0xf2)  => '\\`o',                         # ò - ò
  chr(0xf3)  => '\\\'o',                        # ó - ó
  chr(0xf4)  => '\\^o',                         # ô - ô
  chr(0xf5)  => '\\~o',                         # õ - õ
  chr(0xf6)  => '\\"o',                         # ö - ö
  chr(0xf7)  => '\\textdiv',                    # ÷ - ÷
  chr(0xf8)  => '\\o',                          # ø - ø
  chr(0xf9)  => '\\`u',                         # ù - ù
  chr(0xfa)  => '\\\'u',                        # ú - ú
  chr(0xfb)  => '\\^u',                         # û - û
  chr(0xfc)  => '\\"u',                         # ü - ü
  chr(0xfd)  => '\\\'y',                        # ý - ý
  chr(0xfe)  => '\\th',                         # þ - þ
  chr(0xff)  => '\\"y',                         # ÿ - ÿ
  chr(0x152) => '\\OE',                         #  - Œ
  chr(0x153) => '\\oe',                         #  - œ
  chr(0x160) => '\\v{S}',                       #  - Š
  chr(0x161) => '\\v{s}',                       #  - š
  chr(0x178) => '\\"Y',                         #  - Ÿ
  chr(0x192) => '\\textflorin',                 #  - ƒ
  chr(0x2c6) => '\\textasciicircum',            #  - ˆ
  chr(0x2dc) => '\\textasciitilde',             #  - ˜
  chr(0x391) => '$\\mathrm{A}$',                #  - Α
  chr(0x392) => '$\\mathrm{B}$',                #  - Β
  chr(0x393) => '$\\Gamma$',                    #  - Γ
  chr(0x394) => '$\\Delta$',                    #  - Δ
  chr(0x395) => '$\\mathrm{E}$',                #  - Ε
  chr(0x396) => '$\\mathrm{Z}$',                #  - Ζ
  chr(0x397) => '$\\mathrm{H}$',                #  - Η
  chr(0x398) => '$\\Theta$',                    #  - Θ
  chr(0x399) => '$\\mathrm{I}$',                #  - Ι
  chr(0x39a) => '$\\mathrm{K}$',                #  - Κ
  chr(0x39b) => '$\\Lambda$',                   #  - Λ
  chr(0x39c) => '$\\mathrm{M}$',                #  - Μ
  chr(0x39d) => '$\\mathrm{N}$',                #  - Ν
  chr(0x39e) => '$\\Xi$',                       #  - Ξ
  chr(0x39f) => '$\\mathrm{O}$',                #  - Ο
  chr(0x3a0) => '$\\Pi$',                       #  - Π
  chr(0x3a1) => '$\\mathrm{R}$',                #  - Ρ
  chr(0x3a3) => '$\\Sigma$',                    #  - Σ
  chr(0x3a4) => '$\\mathrm{T}$',                #  - Τ
  chr(0x3a5) => '$\\Upsilon$',                  #  - Υ
  chr(0x3a6) => '$\\Phi$',                      #  - Φ
  chr(0x3a7) => '$\\mathrm{X}$',                #  - Χ
  chr(0x3a8) => '$\\Psi$',                      #  - Ψ
  chr(0x3a9) => '$\\Omega$',                    #  - Ω
  chr(0x3b1) => '$\\alpha$',                    #  - α
  chr(0x3b2) => '$\\beta$',                     #  - β
  chr(0x3b3) => '$\\gamma$',                    #  - γ
  chr(0x3b4) => '$\\delta$',                    #  - δ
  chr(0x3b5) => '$\\epsilon$',                  #  - ε
  chr(0x3b6) => '$\\zeta$',                     #  - ζ
  chr(0x3b7) => '$\\eta$',                      #  - η
  chr(0x3b8) => '$\\theta$',                    #  - θ
  chr(0x3b9) => '$\\iota$',                     #  - ι
  chr(0x3ba) => '$\\kappa$',                    #  - κ
  chr(0x3bb) => '$\\lambda$',                   #  - λ
  chr(0x3bc) => '$\\mu$',                       #  - μ
  chr(0x3bd) => '$\\nu$',                       #  - ν
  chr(0x3be) => '$\\xi$',                       #  - ξ
  chr(0x3bf) => '$o$',                          #  - ο
  chr(0x3c0) => '$\\pi$',                       #  - π
  chr(0x3c1) => '$\\rho$',                      #  - ρ
  chr(0x3c3) => '$\\sigma$',                    #  - σ
  chr(0x3c4) => '$\\tau$',                      #  - τ
  chr(0x3c5) => '$\\upsilon$',                  #  - υ
  chr(0x3c6) => '$\\phi$',                      #  - φ
  chr(0x3c7) => '$\\chi$',                      #  - χ
  chr(0x3c8) => '$\\psi$',                      #  - ψ
  chr(0x3c9) => '$\\omega$',                    #  - ω
  chr(0x2002) => '\\phantom{n}',                 #  -  
  chr(0x2003) => '\\hspace{1em}',                #  -  
  chr(0x2009) => '\\,',                          #  -  
  chr(0x200c) => '<undef>',                      #  - &zwnj;
  chr(0x2013) => '--',                           #  - &ndash;
  chr(0x2014) => '---',                          #  - &mdash;
  chr(0x2018) => '\\textquoteleft',              #  - &lsquo;
  chr(0x2019) => '\\textquoteright',             #  - &rsquo;
  chr(0x201a) => '\\quotesinglbase',             #  - &sbquo;
  chr(0x201c) => '\\textquotedblleft',           #  - &ldquo;
  chr(0x201d) => '\\textquotedblright',          #  - &rdquo;
  chr(0x201e) => '\\quotedblbase',               #  - &bdquo;
  chr(0x2020) => '\\textdagger',                 #  - &dagger;
  chr(0x2021) => '\\textdaggerdbl',              #  - &Dagger;
  chr(0x2022) => '\\textbullet',                 #  - &bull;
  chr(0x2026) => '\\textellipsis',               #  - &hellip;
  chr(0x2030) => '\\textperthousand',            #  - &permil;
  chr(0x2032) => '\\textquotesingle',            #  - &prime;
  chr(0x2033) => '\\textquotedbl',               #  - &Prime;
  chr(0x2039) => '\\guilsinglleft',              #  - &lsaquo;
  chr(0x203a) => '\\guilsinglright',             #  - &rsaquo;
  chr(0x203e) => '\\textasciimacron',            #  - &oline;
  chr(0x2044) => '\\textfractionsolidus',        #  - &frasl;
  chr(0x20ac) => '\\texteuro',                   #  - &euro;
  chr(0x2111) => '$\\Re$',                       #  - &image;
  chr(0x2118) => '$\\wp$',                       #  - &weierp;
  chr(0x211c) => '$\\Im$',                       #  - &real;
  chr(0x2122) => '\\texttrademark',              #  - &trade;
  chr(0x2190) => '\\textleftarrow',              #  - &larr;
  chr(0x2191) => '\\textuparrow',                #  - &uarr;
  chr(0x2192) => '\\textrightarrow',             #  - &rarr;
  chr(0x2193) => '\\textdownarrow',              #  - &darr;
  chr(0x2194) => '$\\leftrightarrow$',           #  - &harr;
  chr(0x21d0) => '$\\Leftarrow$',                #  - &lArr;
  chr(0x21d1) => '$\\Uparrow$',                  #  - &uArr;
  chr(0x21d2) => '$\\Rightarrow$',               #  - &rArr;
  chr(0x21d3) => '$\\Downarrow$',                #  - &dArr;
  chr(0x21d4) => '$\\Leftrightarrow$',           #  - &hArr;
  chr(0x2200) => '$\\forall$',                   #  - &forall;
  chr(0x2202) => '$\\partial$',                  #  - &part;
  chr(0x2203) => '$\\exists$',                   #  - &exist;
  chr(0x2205) => '$\\emptyset$',                 #  - &empty;
  chr(0x2207) => '$\\nabla$',                    #  - &nabla;
  chr(0x2208) => '$\\in$',                       #  - &isin;
  chr(0x2209) => '$\\notin$',                    #  - &notin;
  chr(0x220b) => '$\\ni$',                       #  - &ni;
  chr(0x220f) => '$\\prod$',                     #  - &prod;
  chr(0x2211) => '$\\sum$',                      #  - &sum;
  chr(0x2212) => '$-$',                          #  - &minus;
  chr(0x2217) => '$\\ast$',                      #  - &lowast;
  chr(0x221a) => '$\\surd$',                     #  - &radic;
  chr(0x221d) => '$\\propto$',                   #  - &prop;
  chr(0x221e) => '$\\infty$',                    #  - &infin;
  chr(0x2220) => '$\\angle$',                    #  - &ang;
  chr(0x2227) => '$\\wedge$',                    #  - &and;
  chr(0x2228) => '$\\vee$',                      #  - &or;
  chr(0x2229) => '$\\cap$',                      #  - &cap;
  chr(0x222a) => '$\\cup$',                      #  - &cup;
  chr(0x222b) => '$\\int$',                      #  - &int;
#  chr(0x2234) => '$\\therefore$',                #  - &there4;
  chr(0x223c) => '$\\sim$',                      #  - &sim;
  chr(0x2245) => '$\\cong$',                     #  - &cong;
  chr(0x2248) => '$\\asymp$',                    #  - &asymp;
  chr(0x2260) => '$\\neq$',                      #  - &ne;
  chr(0x2261) => '$\\equiv$',                    #  - &equiv;
  chr(0x2264) => '$\\leq$',                      #  - &le;
  chr(0x2265) => '$\\geq$',                      #  - &ge;
  chr(0x2282) => '$\\subset$',                   #  - &sub;
  chr(0x2283) => '$\\supset$',                   #  - &sup;
  chr(0x2284) => '$\\not\\subset$',              #  - &nsub;
  chr(0x2286) => '$\\subseteq$',                 #  - &sube;
  chr(0x2287) => '$\\supseteq$',                 #  - &supe;
  chr(0x2295) => '$\\oplus$',                    #  - &oplus;
  chr(0x2297) => '$\\otimes$',                   #  - &otimes;
  chr(0x22a5) => '$\\perp$',                     #  - &perp;
  chr(0x22c5) => '$\\cdot$',                     #  - &sdot;
  chr(0x2308) => '$\\lceil$',                    #  - &lceil;
  chr(0x2309) => '$\\rceil$',                    #  - &rceil;
  chr(0x230a) => '$\\lfloor$',                   #  - &lfloor;
  chr(0x230b) => '$\\rfloor$',                   #  - &rfloor;
  chr(0x2329) => '$\\langle$',                   #  - &lang;
  chr(0x232a) => '$\\rangle$',                   #  - &rang;
#  chr(0x25ca) => '$\\lozenge$',                  #  - &loz;
  chr(0x2660) => '$\\spadesuit$',                #  - &spades;
  chr(0x2663) => '$\\clubsuit$',                 #  - &clubs;
  chr(0x2665) => '$\\heartsuit$',                #  - &hearts;
  chr(0x2666) => '$\\diamondsuit$',              #  - &diams;
);

$encoded_char_re = join('', sort keys %latex_encoding);
$encoded_char_re =~ s/\\/\\\\/;
$encoded_char_re = qr{ [$encoded_char_re] }x;

1;