[DRE-commits] [ruby-org] 98/303: Fixed regex for special symbol replacement (handle \alpha\s properly).

Jérémy Bobbio lunar at alioth.debian.org
Fri Aug 9 17:33:35 UTC 2013


This is an automated email from the git hooks/post-receive script.

lunar pushed a commit to branch master
in repository ruby-org.

commit 90dbb954e8e96f03701b295551de8226db2d7528
Author: Rüdiger Sonderfeld <ruediger at c-plusplus.de>
Date:   Sun Jul 24 18:28:07 2011 +0200

    Fixed regex for special symbol replacement (handle \alpha\s properly).
---
 lib/org-ruby/html_symbol_replace.rb    |  678 +++++++++++++++----------------
 lib/org-ruby/textile_symbol_replace.rb |  679 ++++++++++++++++----------------
 util/gen-special-replace.el            |    2 +-
 3 files changed, 679 insertions(+), 680 deletions(-)

diff --git a/lib/org-ruby/html_symbol_replace.rb b/lib/org-ruby/html_symbol_replace.rb
index b7cdde3..3942348 100644
--- a/lib/org-ruby/html_symbol_replace.rb
+++ b/lib/org-ruby/html_symbol_replace.rb
@@ -2,344 +2,344 @@
 
 module Orgmode
   def Orgmode.special_symbols_to_html(str)
-    str.gsub!(/\\Agrave((\{\})|\s|$)/, "À")
-    str.gsub!(/\\agrave((\{\})|\s|$)/, "à")
-    str.gsub!(/\\Aacute((\{\})|\s|$)/, "Á")
-    str.gsub!(/\\aacute((\{\})|\s|$)/, "á")
-    str.gsub!(/\\Acirc((\{\})|\s|$)/, "Â")
-    str.gsub!(/\\acirc((\{\})|\s|$)/, "â")
-    str.gsub!(/\\Atilde((\{\})|\s|$)/, "Ã")
-    str.gsub!(/\\atilde((\{\})|\s|$)/, "ã")
-    str.gsub!(/\\Auml((\{\})|\s|$)/, "Ä")
-    str.gsub!(/\\auml((\{\})|\s|$)/, "ä")
-    str.gsub!(/\\Aring((\{\})|\s|$)/, "Å")
-    str.gsub!(/\\AA((\{\})|\s|$)/, "Å")
-    str.gsub!(/\\aring((\{\})|\s|$)/, "å")
-    str.gsub!(/\\AElig((\{\})|\s|$)/, "Æ")
-    str.gsub!(/\\aelig((\{\})|\s|$)/, "æ")
-    str.gsub!(/\\Ccedil((\{\})|\s|$)/, "Ç")
-    str.gsub!(/\\ccedil((\{\})|\s|$)/, "ç")
-    str.gsub!(/\\Egrave((\{\})|\s|$)/, "È")
-    str.gsub!(/\\egrave((\{\})|\s|$)/, "è")
-    str.gsub!(/\\Eacute((\{\})|\s|$)/, "É")
-    str.gsub!(/\\eacute((\{\})|\s|$)/, "é")
-    str.gsub!(/\\Ecirc((\{\})|\s|$)/, "Ê")
-    str.gsub!(/\\ecirc((\{\})|\s|$)/, "ê")
-    str.gsub!(/\\Euml((\{\})|\s|$)/, "Ë")
-    str.gsub!(/\\euml((\{\})|\s|$)/, "ë")
-    str.gsub!(/\\Igrave((\{\})|\s|$)/, "Ì")
-    str.gsub!(/\\igrave((\{\})|\s|$)/, "ì")
-    str.gsub!(/\\Iacute((\{\})|\s|$)/, "Í")
-    str.gsub!(/\\iacute((\{\})|\s|$)/, "í")
-    str.gsub!(/\\Icirc((\{\})|\s|$)/, "Î")
-    str.gsub!(/\\icirc((\{\})|\s|$)/, "î")
-    str.gsub!(/\\Iuml((\{\})|\s|$)/, "Ï")
-    str.gsub!(/\\iuml((\{\})|\s|$)/, "ï")
-    str.gsub!(/\\Ntilde((\{\})|\s|$)/, "Ñ")
-    str.gsub!(/\\ntilde((\{\})|\s|$)/, "ñ")
-    str.gsub!(/\\Ograve((\{\})|\s|$)/, "Ò")
-    str.gsub!(/\\ograve((\{\})|\s|$)/, "ò")
-    str.gsub!(/\\Oacute((\{\})|\s|$)/, "Ó")
-    str.gsub!(/\\oacute((\{\})|\s|$)/, "ó")
-    str.gsub!(/\\Ocirc((\{\})|\s|$)/, "Ô")
-    str.gsub!(/\\ocirc((\{\})|\s|$)/, "ô")
-    str.gsub!(/\\Otilde((\{\})|\s|$)/, "Õ")
-    str.gsub!(/\\otilde((\{\})|\s|$)/, "õ")
-    str.gsub!(/\\Ouml((\{\})|\s|$)/, "Ö")
-    str.gsub!(/\\ouml((\{\})|\s|$)/, "ö")
-    str.gsub!(/\\Oslash((\{\})|\s|$)/, "Ø")
-    str.gsub!(/\\oslash((\{\})|\s|$)/, "ø")
-    str.gsub!(/\\OElig((\{\})|\s|$)/, "Œ")
-    str.gsub!(/\\oelig((\{\})|\s|$)/, "œ")
-    str.gsub!(/\\Scaron((\{\})|\s|$)/, "Š")
-    str.gsub!(/\\scaron((\{\})|\s|$)/, "š")
-    str.gsub!(/\\szlig((\{\})|\s|$)/, "ß")
-    str.gsub!(/\\Ugrave((\{\})|\s|$)/, "Ù")
-    str.gsub!(/\\ugrave((\{\})|\s|$)/, "ù")
-    str.gsub!(/\\Uacute((\{\})|\s|$)/, "Ú")
-    str.gsub!(/\\uacute((\{\})|\s|$)/, "ú")
-    str.gsub!(/\\Ucirc((\{\})|\s|$)/, "Û")
-    str.gsub!(/\\ucirc((\{\})|\s|$)/, "û")
-    str.gsub!(/\\Uuml((\{\})|\s|$)/, "Ü")
-    str.gsub!(/\\uuml((\{\})|\s|$)/, "ü")
-    str.gsub!(/\\Yacute((\{\})|\s|$)/, "Ý")
-    str.gsub!(/\\yacute((\{\})|\s|$)/, "ý")
-    str.gsub!(/\\Yuml((\{\})|\s|$)/, "Ÿ")
-    str.gsub!(/\\yuml((\{\})|\s|$)/, "ÿ")
-    str.gsub!(/\\fnof((\{\})|\s|$)/, "ƒ")
-    str.gsub!(/\\real((\{\})|\s|$)/, "ℜ")
-    str.gsub!(/\\image((\{\})|\s|$)/, "ℑ")
-    str.gsub!(/\\weierp((\{\})|\s|$)/, "℘")
-    str.gsub!(/\\Alpha((\{\})|\s|$)/, "Α")
-    str.gsub!(/\\alpha((\{\})|\s|$)/, "α")
-    str.gsub!(/\\Beta((\{\})|\s|$)/, "Β")
-    str.gsub!(/\\beta((\{\})|\s|$)/, "β")
-    str.gsub!(/\\Gamma((\{\})|\s|$)/, "Γ")
-    str.gsub!(/\\gamma((\{\})|\s|$)/, "γ")
-    str.gsub!(/\\Delta((\{\})|\s|$)/, "Δ")
-    str.gsub!(/\\delta((\{\})|\s|$)/, "δ")
-    str.gsub!(/\\Epsilon((\{\})|\s|$)/, "Ε")
-    str.gsub!(/\\epsilon((\{\})|\s|$)/, "ε")
-    str.gsub!(/\\varepsilon((\{\})|\s|$)/, "ε")
-    str.gsub!(/\\Zeta((\{\})|\s|$)/, "Ζ")
-    str.gsub!(/\\zeta((\{\})|\s|$)/, "ζ")
-    str.gsub!(/\\Eta((\{\})|\s|$)/, "Η")
-    str.gsub!(/\\eta((\{\})|\s|$)/, "η")
-    str.gsub!(/\\Theta((\{\})|\s|$)/, "Θ")
-    str.gsub!(/\\theta((\{\})|\s|$)/, "θ")
-    str.gsub!(/\\thetasym((\{\})|\s|$)/, "ϑ")
-    str.gsub!(/\\vartheta((\{\})|\s|$)/, "ϑ")
-    str.gsub!(/\\Iota((\{\})|\s|$)/, "Ι")
-    str.gsub!(/\\iota((\{\})|\s|$)/, "ι")
-    str.gsub!(/\\Kappa((\{\})|\s|$)/, "Κ")
-    str.gsub!(/\\kappa((\{\})|\s|$)/, "κ")
-    str.gsub!(/\\Lambda((\{\})|\s|$)/, "Λ")
-    str.gsub!(/\\lambda((\{\})|\s|$)/, "λ")
-    str.gsub!(/\\Mu((\{\})|\s|$)/, "Μ")
-    str.gsub!(/\\mu((\{\})|\s|$)/, "μ")
-    str.gsub!(/\\nu((\{\})|\s|$)/, "ν")
-    str.gsub!(/\\Nu((\{\})|\s|$)/, "Ν")
-    str.gsub!(/\\Xi((\{\})|\s|$)/, "Ξ")
-    str.gsub!(/\\xi((\{\})|\s|$)/, "ξ")
-    str.gsub!(/\\Omicron((\{\})|\s|$)/, "Ο")
-    str.gsub!(/\\omicron((\{\})|\s|$)/, "ο")
-    str.gsub!(/\\Pi((\{\})|\s|$)/, "Π")
-    str.gsub!(/\\pi((\{\})|\s|$)/, "π")
-    str.gsub!(/\\Rho((\{\})|\s|$)/, "Ρ")
-    str.gsub!(/\\rho((\{\})|\s|$)/, "ρ")
-    str.gsub!(/\\Sigma((\{\})|\s|$)/, "Σ")
-    str.gsub!(/\\sigma((\{\})|\s|$)/, "σ")
-    str.gsub!(/\\sigmaf((\{\})|\s|$)/, "ς")
-    str.gsub!(/\\varsigma((\{\})|\s|$)/, "ς")
-    str.gsub!(/\\Tau((\{\})|\s|$)/, "Τ")
-    str.gsub!(/\\Upsilon((\{\})|\s|$)/, "Υ")
-    str.gsub!(/\\upsih((\{\})|\s|$)/, "ϒ")
-    str.gsub!(/\\upsilon((\{\})|\s|$)/, "υ")
-    str.gsub!(/\\Phi((\{\})|\s|$)/, "Φ")
-    str.gsub!(/\\phi((\{\})|\s|$)/, "φ")
-    str.gsub!(/\\Chi((\{\})|\s|$)/, "Χ")
-    str.gsub!(/\\chi((\{\})|\s|$)/, "χ")
-    str.gsub!(/\\acutex((\{\})|\s|$)/, "´x")
-    str.gsub!(/\\Psi((\{\})|\s|$)/, "Ψ")
-    str.gsub!(/\\psi((\{\})|\s|$)/, "ψ")
-    str.gsub!(/\\tau((\{\})|\s|$)/, "τ")
-    str.gsub!(/\\Omega((\{\})|\s|$)/, "Ω")
-    str.gsub!(/\\omega((\{\})|\s|$)/, "ω")
-    str.gsub!(/\\piv((\{\})|\s|$)/, "ϖ")
-    str.gsub!(/\\partial((\{\})|\s|$)/, "∂")
-    str.gsub!(/\\alefsym((\{\})|\s|$)/, "ℵ")
-    str.gsub!(/\\ETH((\{\})|\s|$)/, "Ð")
-    str.gsub!(/\\eth((\{\})|\s|$)/, "ð")
-    str.gsub!(/\\THORN((\{\})|\s|$)/, "Þ")
-    str.gsub!(/\\thorn((\{\})|\s|$)/, "þ")
-    str.gsub!(/\\dots((\{\})|\s|$)/, "…")
-    str.gsub!(/\\hellip((\{\})|\s|$)/, "…")
-    str.gsub!(/\\middot((\{\})|\s|$)/, "·")
-    str.gsub!(/\\iexcl((\{\})|\s|$)/, "¡")
-    str.gsub!(/\\iquest((\{\})|\s|$)/, "¿")
-    str.gsub!(/\\shy((\{\})|\s|$)/, "­")
-    str.gsub!(/\\ndash((\{\})|\s|$)/, "–")
-    str.gsub!(/\\mdash((\{\})|\s|$)/, "—")
-    str.gsub!(/\\quot((\{\})|\s|$)/, """)
-    str.gsub!(/\\acute((\{\})|\s|$)/, "´")
-    str.gsub!(/\\ldquo((\{\})|\s|$)/, "“")
-    str.gsub!(/\\rdquo((\{\})|\s|$)/, "”")
-    str.gsub!(/\\bdquo((\{\})|\s|$)/, "„")
-    str.gsub!(/\\lsquo((\{\})|\s|$)/, "‘")
-    str.gsub!(/\\rsquo((\{\})|\s|$)/, "’")
-    str.gsub!(/\\sbquo((\{\})|\s|$)/, "‚")
-    str.gsub!(/\\laquo((\{\})|\s|$)/, "«")
-    str.gsub!(/\\raquo((\{\})|\s|$)/, "»")
-    str.gsub!(/\\lsaquo((\{\})|\s|$)/, "‹")
-    str.gsub!(/\\rsaquo((\{\})|\s|$)/, "›")
-    str.gsub!(/\\circ((\{\})|\s|$)/, "ˆ")
-    str.gsub!(/\\vert((\{\})|\s|$)/, "|")
-    str.gsub!(/\\brvbar((\{\})|\s|$)/, "¦")
-    str.gsub!(/\\sect((\{\})|\s|$)/, "§")
-    str.gsub!(/\\amp((\{\})|\s|$)/, "&")
-    str.gsub!(/\\lt((\{\})|\s|$)/, "<")
-    str.gsub!(/\\gt((\{\})|\s|$)/, ">")
-    str.gsub!(/\\tilde((\{\})|\s|$)/, "˜")
-    str.gsub!(/\\dagger((\{\})|\s|$)/, "†")
-    str.gsub!(/\\Dagger((\{\})|\s|$)/, "‡")
-    str.gsub!(/\\nbsp((\{\})|\s|$)/, " ")
-    str.gsub!(/\\ensp((\{\})|\s|$)/, " ")
-    str.gsub!(/\\emsp((\{\})|\s|$)/, " ")
-    str.gsub!(/\\thinsp((\{\})|\s|$)/, " ")
-    str.gsub!(/\\curren((\{\})|\s|$)/, "¤")
-    str.gsub!(/\\cent((\{\})|\s|$)/, "¢")
-    str.gsub!(/\\pound((\{\})|\s|$)/, "£")
-    str.gsub!(/\\yen((\{\})|\s|$)/, "¥")
-    str.gsub!(/\\euro((\{\})|\s|$)/, "€")
-    str.gsub!(/\\EUR((\{\})|\s|$)/, "€")
-    str.gsub!(/\\EURdig((\{\})|\s|$)/, "€")
-    str.gsub!(/\\EURhv((\{\})|\s|$)/, "€")
-    str.gsub!(/\\EURcr((\{\})|\s|$)/, "€")
-    str.gsub!(/\\EURtm((\{\})|\s|$)/, "€")
-    str.gsub!(/\\copy((\{\})|\s|$)/, "©")
-    str.gsub!(/\\reg((\{\})|\s|$)/, "®")
-    str.gsub!(/\\trade((\{\})|\s|$)/, "™")
-    str.gsub!(/\\minus((\{\})|\s|$)/, "−")
-    str.gsub!(/\\pm((\{\})|\s|$)/, "±")
-    str.gsub!(/\\plusmn((\{\})|\s|$)/, "±")
-    str.gsub!(/\\times((\{\})|\s|$)/, "×")
-    str.gsub!(/\\frasl((\{\})|\s|$)/, "⁄")
-    str.gsub!(/\\div((\{\})|\s|$)/, "÷")
-    str.gsub!(/\\frac12((\{\})|\s|$)/, "&frac12;")
-    str.gsub!(/\\frac14((\{\})|\s|$)/, "&frac14;")
-    str.gsub!(/\\frac34((\{\})|\s|$)/, "&frac34;")
-    str.gsub!(/\\permil((\{\})|\s|$)/, "‰")
-    str.gsub!(/\\sup1((\{\})|\s|$)/, "&sup1;")
-    str.gsub!(/\\sup2((\{\})|\s|$)/, "&sup2;")
-    str.gsub!(/\\sup3((\{\})|\s|$)/, "&sup3;")
-    str.gsub!(/\\radic((\{\})|\s|$)/, "√")
-    str.gsub!(/\\sum((\{\})|\s|$)/, "∑")
-    str.gsub!(/\\prod((\{\})|\s|$)/, "∏")
-    str.gsub!(/\\micro((\{\})|\s|$)/, "µ")
-    str.gsub!(/\\macr((\{\})|\s|$)/, "¯")
-    str.gsub!(/\\deg((\{\})|\s|$)/, "°")
-    str.gsub!(/\\prime((\{\})|\s|$)/, "′")
-    str.gsub!(/\\Prime((\{\})|\s|$)/, "″")
-    str.gsub!(/\\infin((\{\})|\s|$)/, "∞")
-    str.gsub!(/\\infty((\{\})|\s|$)/, "∞")
-    str.gsub!(/\\prop((\{\})|\s|$)/, "∝")
-    str.gsub!(/\\proptp((\{\})|\s|$)/, "∝")
-    str.gsub!(/\\not((\{\})|\s|$)/, "¬")
-    str.gsub!(/\\land((\{\})|\s|$)/, "∧")
-    str.gsub!(/\\wedge((\{\})|\s|$)/, "∧")
-    str.gsub!(/\\lor((\{\})|\s|$)/, "∨")
-    str.gsub!(/\\vee((\{\})|\s|$)/, "∨")
-    str.gsub!(/\\cap((\{\})|\s|$)/, "∩")
-    str.gsub!(/\\cup((\{\})|\s|$)/, "∪")
-    str.gsub!(/\\int((\{\})|\s|$)/, "∫")
-    str.gsub!(/\\there4((\{\})|\s|$)/, "&there4;")
-    str.gsub!(/\\sim((\{\})|\s|$)/, "∼")
-    str.gsub!(/\\cong((\{\})|\s|$)/, "≅")
-    str.gsub!(/\\simeq((\{\})|\s|$)/, "≅")
-    str.gsub!(/\\asymp((\{\})|\s|$)/, "≈")
-    str.gsub!(/\\approx((\{\})|\s|$)/, "≈")
-    str.gsub!(/\\ne((\{\})|\s|$)/, "≠")
-    str.gsub!(/\\neq((\{\})|\s|$)/, "≠")
-    str.gsub!(/\\equiv((\{\})|\s|$)/, "≡")
-    str.gsub!(/\\le((\{\})|\s|$)/, "≤")
-    str.gsub!(/\\ge((\{\})|\s|$)/, "≥")
-    str.gsub!(/\\sub((\{\})|\s|$)/, "⊂")
-    str.gsub!(/\\subset((\{\})|\s|$)/, "⊂")
-    str.gsub!(/\\sup((\{\})|\s|$)/, "⊃")
-    str.gsub!(/\\supset((\{\})|\s|$)/, "⊃")
-    str.gsub!(/\\nsub((\{\})|\s|$)/, "⊄")
-    str.gsub!(/\\sube((\{\})|\s|$)/, "⊆")
-    str.gsub!(/\\nsup((\{\})|\s|$)/, "⊅")
-    str.gsub!(/\\supe((\{\})|\s|$)/, "⊇")
-    str.gsub!(/\\forall((\{\})|\s|$)/, "∀")
-    str.gsub!(/\\exist((\{\})|\s|$)/, "∃")
-    str.gsub!(/\\exists((\{\})|\s|$)/, "∃")
-    str.gsub!(/\\empty((\{\})|\s|$)/, "∅")
-    str.gsub!(/\\emptyset((\{\})|\s|$)/, "∅")
-    str.gsub!(/\\isin((\{\})|\s|$)/, "∈")
-    str.gsub!(/\\in((\{\})|\s|$)/, "∈")
-    str.gsub!(/\\notin((\{\})|\s|$)/, "∉")
-    str.gsub!(/\\ni((\{\})|\s|$)/, "∋")
-    str.gsub!(/\\nabla((\{\})|\s|$)/, "∇")
-    str.gsub!(/\\ang((\{\})|\s|$)/, "∠")
-    str.gsub!(/\\angle((\{\})|\s|$)/, "∠")
-    str.gsub!(/\\perp((\{\})|\s|$)/, "⊥")
-    str.gsub!(/\\sdot((\{\})|\s|$)/, "⋅")
-    str.gsub!(/\\cdot((\{\})|\s|$)/, "⋅")
-    str.gsub!(/\\lceil((\{\})|\s|$)/, "⌈")
-    str.gsub!(/\\rceil((\{\})|\s|$)/, "⌉")
-    str.gsub!(/\\lfloor((\{\})|\s|$)/, "⌊")
-    str.gsub!(/\\rfloor((\{\})|\s|$)/, "⌋")
-    str.gsub!(/\\lang((\{\})|\s|$)/, "⟨")
-    str.gsub!(/\\rang((\{\})|\s|$)/, "⟩")
-    str.gsub!(/\\larr((\{\})|\s|$)/, "←")
-    str.gsub!(/\\leftarrow((\{\})|\s|$)/, "←")
-    str.gsub!(/\\gets((\{\})|\s|$)/, "←")
-    str.gsub!(/\\lArr((\{\})|\s|$)/, "⇐")
-    str.gsub!(/\\Leftarrow((\{\})|\s|$)/, "⇐")
-    str.gsub!(/\\uarr((\{\})|\s|$)/, "↑")
-    str.gsub!(/\\uparrow((\{\})|\s|$)/, "↑")
-    str.gsub!(/\\uArr((\{\})|\s|$)/, "⇑")
-    str.gsub!(/\\Uparrow((\{\})|\s|$)/, "⇑")
-    str.gsub!(/\\rarr((\{\})|\s|$)/, "→")
-    str.gsub!(/\\to((\{\})|\s|$)/, "→")
-    str.gsub!(/\\rightarrow((\{\})|\s|$)/, "→")
-    str.gsub!(/\\rArr((\{\})|\s|$)/, "⇒")
-    str.gsub!(/\\Rightarrow((\{\})|\s|$)/, "⇒")
-    str.gsub!(/\\darr((\{\})|\s|$)/, "↓")
-    str.gsub!(/\\downarrow((\{\})|\s|$)/, "↓")
-    str.gsub!(/\\dArr((\{\})|\s|$)/, "⇓")
-    str.gsub!(/\\Downarrow((\{\})|\s|$)/, "⇓")
-    str.gsub!(/\\harr((\{\})|\s|$)/, "↔")
-    str.gsub!(/\\leftrightarrow((\{\})|\s|$)/, "↔")
-    str.gsub!(/\\hArr((\{\})|\s|$)/, "⇔")
-    str.gsub!(/\\Leftrightarrow((\{\})|\s|$)/, "⇔")
-    str.gsub!(/\\crarr((\{\})|\s|$)/, "↵")
-    str.gsub!(/\\hookleftarrow((\{\})|\s|$)/, "↵")
-    str.gsub!(/\\arccos((\{\})|\s|$)/, "arccos")
-    str.gsub!(/\\arcsin((\{\})|\s|$)/, "arcsin")
-    str.gsub!(/\\arctan((\{\})|\s|$)/, "arctan")
-    str.gsub!(/\\arg((\{\})|\s|$)/, "arg")
-    str.gsub!(/\\cos((\{\})|\s|$)/, "cos")
-    str.gsub!(/\\cosh((\{\})|\s|$)/, "cosh")
-    str.gsub!(/\\cot((\{\})|\s|$)/, "cot")
-    str.gsub!(/\\coth((\{\})|\s|$)/, "coth")
-    str.gsub!(/\\csc((\{\})|\s|$)/, "csc")
-    str.gsub!(/\\deg((\{\})|\s|$)/, "°")
-    str.gsub!(/\\det((\{\})|\s|$)/, "det")
-    str.gsub!(/\\dim((\{\})|\s|$)/, "dim")
-    str.gsub!(/\\exp((\{\})|\s|$)/, "exp")
-    str.gsub!(/\\gcd((\{\})|\s|$)/, "gcd")
-    str.gsub!(/\\hom((\{\})|\s|$)/, "hom")
-    str.gsub!(/\\inf((\{\})|\s|$)/, "inf")
-    str.gsub!(/\\ker((\{\})|\s|$)/, "ker")
-    str.gsub!(/\\lg((\{\})|\s|$)/, "lg")
-    str.gsub!(/\\lim((\{\})|\s|$)/, "lim")
-    str.gsub!(/\\liminf((\{\})|\s|$)/, "liminf")
-    str.gsub!(/\\limsup((\{\})|\s|$)/, "limsup")
-    str.gsub!(/\\ln((\{\})|\s|$)/, "ln")
-    str.gsub!(/\\log((\{\})|\s|$)/, "log")
-    str.gsub!(/\\max((\{\})|\s|$)/, "max")
-    str.gsub!(/\\min((\{\})|\s|$)/, "min")
-    str.gsub!(/\\Pr((\{\})|\s|$)/, "Pr")
-    str.gsub!(/\\sec((\{\})|\s|$)/, "sec")
-    str.gsub!(/\\sin((\{\})|\s|$)/, "sin")
-    str.gsub!(/\\sinh((\{\})|\s|$)/, "sinh")
-    str.gsub!(/\\sup((\{\})|\s|$)/, "⊃")
-    str.gsub!(/\\tan((\{\})|\s|$)/, "tan")
-    str.gsub!(/\\tanh((\{\})|\s|$)/, "tanh")
-    str.gsub!(/\\bull((\{\})|\s|$)/, "•")
-    str.gsub!(/\\bullet((\{\})|\s|$)/, "•")
-    str.gsub!(/\\star((\{\})|\s|$)/, "*")
-    str.gsub!(/\\lowast((\{\})|\s|$)/, "∗")
-    str.gsub!(/\\ast((\{\})|\s|$)/, "∗")
-    str.gsub!(/\\odot((\{\})|\s|$)/, "o")
-    str.gsub!(/\\oplus((\{\})|\s|$)/, "⊕")
-    str.gsub!(/\\otimes((\{\})|\s|$)/, "⊗")
-    str.gsub!(/\\checkmark((\{\})|\s|$)/, "✓")
-    str.gsub!(/\\para((\{\})|\s|$)/, "¶")
-    str.gsub!(/\\ordf((\{\})|\s|$)/, "ª")
-    str.gsub!(/\\ordm((\{\})|\s|$)/, "º")
-    str.gsub!(/\\cedil((\{\})|\s|$)/, "¸")
-    str.gsub!(/\\oline((\{\})|\s|$)/, "‾")
-    str.gsub!(/\\uml((\{\})|\s|$)/, "¨")
-    str.gsub!(/\\zwnj((\{\})|\s|$)/, "‌")
-    str.gsub!(/\\zwj((\{\})|\s|$)/, "‍")
-    str.gsub!(/\\lrm((\{\})|\s|$)/, "‎")
-    str.gsub!(/\\rlm((\{\})|\s|$)/, "‏")
-    str.gsub!(/\\smile((\{\})|\s|$)/, "☺")
-    str.gsub!(/\\smiley((\{\})|\s|$)/, "☺")
-    str.gsub!(/\\blacksmile((\{\})|\s|$)/, "☻")
-    str.gsub!(/\\sad((\{\})|\s|$)/, "☹")
-    str.gsub!(/\\clubs((\{\})|\s|$)/, "♣")
-    str.gsub!(/\\clubsuit((\{\})|\s|$)/, "♣")
-    str.gsub!(/\\spades((\{\})|\s|$)/, "♠")
-    str.gsub!(/\\spadesuit((\{\})|\s|$)/, "♠")
-    str.gsub!(/\\hearts((\{\})|\s|$)/, "♥")
-    str.gsub!(/\\heartsuit((\{\})|\s|$)/, "♥")
-    str.gsub!(/\\diams((\{\})|\s|$)/, "♦")
-    str.gsub!(/\\diamondsuit((\{\})|\s|$)/, "♦")
-    str.gsub!(/\\Diamond((\{\})|\s|$)/, "⋄")
-    str.gsub!(/\\loz((\{\})|\s|$)/, "◊")
+    str.gsub!(/\\Agrave((\{\})|(\s|$))/, "À\\3")
+    str.gsub!(/\\agrave((\{\})|(\s|$))/, "à\\3")
+    str.gsub!(/\\Aacute((\{\})|(\s|$))/, "Á\\3")
+    str.gsub!(/\\aacute((\{\})|(\s|$))/, "á\\3")
+    str.gsub!(/\\Acirc((\{\})|(\s|$))/, "Â\\3")
+    str.gsub!(/\\acirc((\{\})|(\s|$))/, "â\\3")
+    str.gsub!(/\\Atilde((\{\})|(\s|$))/, "Ã\\3")
+    str.gsub!(/\\atilde((\{\})|(\s|$))/, "ã\\3")
+    str.gsub!(/\\Auml((\{\})|(\s|$))/, "Ä\\3")
+    str.gsub!(/\\auml((\{\})|(\s|$))/, "ä\\3")
+    str.gsub!(/\\Aring((\{\})|(\s|$))/, "Å\\3")
+    str.gsub!(/\\AA((\{\})|(\s|$))/, "Å\\3")
+    str.gsub!(/\\aring((\{\})|(\s|$))/, "å\\3")
+    str.gsub!(/\\AElig((\{\})|(\s|$))/, "Æ\\3")
+    str.gsub!(/\\aelig((\{\})|(\s|$))/, "æ\\3")
+    str.gsub!(/\\Ccedil((\{\})|(\s|$))/, "Ç\\3")
+    str.gsub!(/\\ccedil((\{\})|(\s|$))/, "ç\\3")
+    str.gsub!(/\\Egrave((\{\})|(\s|$))/, "È\\3")
+    str.gsub!(/\\egrave((\{\})|(\s|$))/, "è\\3")
+    str.gsub!(/\\Eacute((\{\})|(\s|$))/, "É\\3")
+    str.gsub!(/\\eacute((\{\})|(\s|$))/, "é\\3")
+    str.gsub!(/\\Ecirc((\{\})|(\s|$))/, "Ê\\3")
+    str.gsub!(/\\ecirc((\{\})|(\s|$))/, "ê\\3")
+    str.gsub!(/\\Euml((\{\})|(\s|$))/, "Ë\\3")
+    str.gsub!(/\\euml((\{\})|(\s|$))/, "ë\\3")
+    str.gsub!(/\\Igrave((\{\})|(\s|$))/, "Ì\\3")
+    str.gsub!(/\\igrave((\{\})|(\s|$))/, "ì\\3")
+    str.gsub!(/\\Iacute((\{\})|(\s|$))/, "Í\\3")
+    str.gsub!(/\\iacute((\{\})|(\s|$))/, "í\\3")
+    str.gsub!(/\\Icirc((\{\})|(\s|$))/, "Î\\3")
+    str.gsub!(/\\icirc((\{\})|(\s|$))/, "î\\3")
+    str.gsub!(/\\Iuml((\{\})|(\s|$))/, "Ï\\3")
+    str.gsub!(/\\iuml((\{\})|(\s|$))/, "ï\\3")
+    str.gsub!(/\\Ntilde((\{\})|(\s|$))/, "Ñ\\3")
+    str.gsub!(/\\ntilde((\{\})|(\s|$))/, "ñ\\3")
+    str.gsub!(/\\Ograve((\{\})|(\s|$))/, "Ò\\3")
+    str.gsub!(/\\ograve((\{\})|(\s|$))/, "ò\\3")
+    str.gsub!(/\\Oacute((\{\})|(\s|$))/, "Ó\\3")
+    str.gsub!(/\\oacute((\{\})|(\s|$))/, "ó\\3")
+    str.gsub!(/\\Ocirc((\{\})|(\s|$))/, "Ô\\3")
+    str.gsub!(/\\ocirc((\{\})|(\s|$))/, "ô\\3")
+    str.gsub!(/\\Otilde((\{\})|(\s|$))/, "Õ\\3")
+    str.gsub!(/\\otilde((\{\})|(\s|$))/, "õ\\3")
+    str.gsub!(/\\Ouml((\{\})|(\s|$))/, "Ö\\3")
+    str.gsub!(/\\ouml((\{\})|(\s|$))/, "ö\\3")
+    str.gsub!(/\\Oslash((\{\})|(\s|$))/, "Ø\\3")
+    str.gsub!(/\\oslash((\{\})|(\s|$))/, "ø\\3")
+    str.gsub!(/\\OElig((\{\})|(\s|$))/, "Œ\\3")
+    str.gsub!(/\\oelig((\{\})|(\s|$))/, "œ\\3")
+    str.gsub!(/\\Scaron((\{\})|(\s|$))/, "Š\\3")
+    str.gsub!(/\\scaron((\{\})|(\s|$))/, "š\\3")
+    str.gsub!(/\\szlig((\{\})|(\s|$))/, "ß\\3")
+    str.gsub!(/\\Ugrave((\{\})|(\s|$))/, "Ù\\3")
+    str.gsub!(/\\ugrave((\{\})|(\s|$))/, "ù\\3")
+    str.gsub!(/\\Uacute((\{\})|(\s|$))/, "Ú\\3")
+    str.gsub!(/\\uacute((\{\})|(\s|$))/, "ú\\3")
+    str.gsub!(/\\Ucirc((\{\})|(\s|$))/, "Û\\3")
+    str.gsub!(/\\ucirc((\{\})|(\s|$))/, "û\\3")
+    str.gsub!(/\\Uuml((\{\})|(\s|$))/, "Ü\\3")
+    str.gsub!(/\\uuml((\{\})|(\s|$))/, "ü\\3")
+    str.gsub!(/\\Yacute((\{\})|(\s|$))/, "Ý\\3")
+    str.gsub!(/\\yacute((\{\})|(\s|$))/, "ý\\3")
+    str.gsub!(/\\Yuml((\{\})|(\s|$))/, "Ÿ\\3")
+    str.gsub!(/\\yuml((\{\})|(\s|$))/, "ÿ\\3")
+    str.gsub!(/\\fnof((\{\})|(\s|$))/, "ƒ\\3")
+    str.gsub!(/\\real((\{\})|(\s|$))/, "ℜ\\3")
+    str.gsub!(/\\image((\{\})|(\s|$))/, "ℑ\\3")
+    str.gsub!(/\\weierp((\{\})|(\s|$))/, "℘\\3")
+    str.gsub!(/\\Alpha((\{\})|(\s|$))/, "Α\\3")
+    str.gsub!(/\\alpha((\{\})|(\s|$))/, "α\\3")
+    str.gsub!(/\\Beta((\{\})|(\s|$))/, "Β\\3")
+    str.gsub!(/\\beta((\{\})|(\s|$))/, "β\\3")
+    str.gsub!(/\\Gamma((\{\})|(\s|$))/, "Γ\\3")
+    str.gsub!(/\\gamma((\{\})|(\s|$))/, "γ\\3")
+    str.gsub!(/\\Delta((\{\})|(\s|$))/, "Δ\\3")
+    str.gsub!(/\\delta((\{\})|(\s|$))/, "δ\\3")
+    str.gsub!(/\\Epsilon((\{\})|(\s|$))/, "Ε\\3")
+    str.gsub!(/\\epsilon((\{\})|(\s|$))/, "ε\\3")
+    str.gsub!(/\\varepsilon((\{\})|(\s|$))/, "ε\\3")
+    str.gsub!(/\\Zeta((\{\})|(\s|$))/, "Ζ\\3")
+    str.gsub!(/\\zeta((\{\})|(\s|$))/, "ζ\\3")
+    str.gsub!(/\\Eta((\{\})|(\s|$))/, "Η\\3")
+    str.gsub!(/\\eta((\{\})|(\s|$))/, "η\\3")
+    str.gsub!(/\\Theta((\{\})|(\s|$))/, "Θ\\3")
+    str.gsub!(/\\theta((\{\})|(\s|$))/, "θ\\3")
+    str.gsub!(/\\thetasym((\{\})|(\s|$))/, "ϑ\\3")
+    str.gsub!(/\\vartheta((\{\})|(\s|$))/, "ϑ\\3")
+    str.gsub!(/\\Iota((\{\})|(\s|$))/, "Ι\\3")
+    str.gsub!(/\\iota((\{\})|(\s|$))/, "ι\\3")
+    str.gsub!(/\\Kappa((\{\})|(\s|$))/, "Κ\\3")
+    str.gsub!(/\\kappa((\{\})|(\s|$))/, "κ\\3")
+    str.gsub!(/\\Lambda((\{\})|(\s|$))/, "Λ\\3")
+    str.gsub!(/\\lambda((\{\})|(\s|$))/, "λ\\3")
+    str.gsub!(/\\Mu((\{\})|(\s|$))/, "Μ\\3")
+    str.gsub!(/\\mu((\{\})|(\s|$))/, "μ\\3")
+    str.gsub!(/\\nu((\{\})|(\s|$))/, "ν\\3")
+    str.gsub!(/\\Nu((\{\})|(\s|$))/, "Ν\\3")
+    str.gsub!(/\\Xi((\{\})|(\s|$))/, "Ξ\\3")
+    str.gsub!(/\\xi((\{\})|(\s|$))/, "ξ\\3")
+    str.gsub!(/\\Omicron((\{\})|(\s|$))/, "Ο\\3")
+    str.gsub!(/\\omicron((\{\})|(\s|$))/, "ο\\3")
+    str.gsub!(/\\Pi((\{\})|(\s|$))/, "Π\\3")
+    str.gsub!(/\\pi((\{\})|(\s|$))/, "π\\3")
+    str.gsub!(/\\Rho((\{\})|(\s|$))/, "Ρ\\3")
+    str.gsub!(/\\rho((\{\})|(\s|$))/, "ρ\\3")
+    str.gsub!(/\\Sigma((\{\})|(\s|$))/, "Σ\\3")
+    str.gsub!(/\\sigma((\{\})|(\s|$))/, "σ\\3")
+    str.gsub!(/\\sigmaf((\{\})|(\s|$))/, "ς\\3")
+    str.gsub!(/\\varsigma((\{\})|(\s|$))/, "ς\\3")
+    str.gsub!(/\\Tau((\{\})|(\s|$))/, "Τ\\3")
+    str.gsub!(/\\Upsilon((\{\})|(\s|$))/, "Υ\\3")
+    str.gsub!(/\\upsih((\{\})|(\s|$))/, "ϒ\\3")
+    str.gsub!(/\\upsilon((\{\})|(\s|$))/, "υ\\3")
+    str.gsub!(/\\Phi((\{\})|(\s|$))/, "Φ\\3")
+    str.gsub!(/\\phi((\{\})|(\s|$))/, "φ\\3")
+    str.gsub!(/\\Chi((\{\})|(\s|$))/, "Χ\\3")
+    str.gsub!(/\\chi((\{\})|(\s|$))/, "χ\\3")
+    str.gsub!(/\\acutex((\{\})|(\s|$))/, "´x\\3")
+    str.gsub!(/\\Psi((\{\})|(\s|$))/, "Ψ\\3")
+    str.gsub!(/\\psi((\{\})|(\s|$))/, "ψ\\3")
+    str.gsub!(/\\tau((\{\})|(\s|$))/, "τ\\3")
+    str.gsub!(/\\Omega((\{\})|(\s|$))/, "Ω\\3")
+    str.gsub!(/\\omega((\{\})|(\s|$))/, "ω\\3")
+    str.gsub!(/\\piv((\{\})|(\s|$))/, "ϖ\\3")
+    str.gsub!(/\\partial((\{\})|(\s|$))/, "∂\\3")
+    str.gsub!(/\\alefsym((\{\})|(\s|$))/, "ℵ\\3")
+    str.gsub!(/\\ETH((\{\})|(\s|$))/, "Ð\\3")
+    str.gsub!(/\\eth((\{\})|(\s|$))/, "ð\\3")
+    str.gsub!(/\\THORN((\{\})|(\s|$))/, "Þ\\3")
+    str.gsub!(/\\thorn((\{\})|(\s|$))/, "þ\\3")
+    str.gsub!(/\\dots((\{\})|(\s|$))/, "…\\3")
+    str.gsub!(/\\hellip((\{\})|(\s|$))/, "…\\3")
+    str.gsub!(/\\middot((\{\})|(\s|$))/, "·\\3")
+    str.gsub!(/\\iexcl((\{\})|(\s|$))/, "¡\\3")
+    str.gsub!(/\\iquest((\{\})|(\s|$))/, "¿\\3")
+    str.gsub!(/\\shy((\{\})|(\s|$))/, "­\\3")
+    str.gsub!(/\\ndash((\{\})|(\s|$))/, "–\\3")
+    str.gsub!(/\\mdash((\{\})|(\s|$))/, "—\\3")
+    str.gsub!(/\\quot((\{\})|(\s|$))/, ""\\3")
+    str.gsub!(/\\acute((\{\})|(\s|$))/, "´\\3")
+    str.gsub!(/\\ldquo((\{\})|(\s|$))/, "“\\3")
+    str.gsub!(/\\rdquo((\{\})|(\s|$))/, "”\\3")
+    str.gsub!(/\\bdquo((\{\})|(\s|$))/, "„\\3")
+    str.gsub!(/\\lsquo((\{\})|(\s|$))/, "‘\\3")
+    str.gsub!(/\\rsquo((\{\})|(\s|$))/, "’\\3")
+    str.gsub!(/\\sbquo((\{\})|(\s|$))/, "‚\\3")
+    str.gsub!(/\\laquo((\{\})|(\s|$))/, "«\\3")
+    str.gsub!(/\\raquo((\{\})|(\s|$))/, "»\\3")
+    str.gsub!(/\\lsaquo((\{\})|(\s|$))/, "‹\\3")
+    str.gsub!(/\\rsaquo((\{\})|(\s|$))/, "›\\3")
+    str.gsub!(/\\circ((\{\})|(\s|$))/, "ˆ\\3")
+    str.gsub!(/\\vert((\{\})|(\s|$))/, "|\\3")
+    str.gsub!(/\\brvbar((\{\})|(\s|$))/, "¦\\3")
+    str.gsub!(/\\sect((\{\})|(\s|$))/, "§\\3")
+    str.gsub!(/\\amp((\{\})|(\s|$))/, "&\\3")
+    str.gsub!(/\\lt((\{\})|(\s|$))/, "<\\3")
+    str.gsub!(/\\gt((\{\})|(\s|$))/, ">\\3")
+    str.gsub!(/\\tilde((\{\})|(\s|$))/, "˜\\3")
+    str.gsub!(/\\dagger((\{\})|(\s|$))/, "†\\3")
+    str.gsub!(/\\Dagger((\{\})|(\s|$))/, "‡\\3")
+    str.gsub!(/\\nbsp((\{\})|(\s|$))/, " \\3")
+    str.gsub!(/\\ensp((\{\})|(\s|$))/, " \\3")
+    str.gsub!(/\\emsp((\{\})|(\s|$))/, " \\3")
+    str.gsub!(/\\thinsp((\{\})|(\s|$))/, " \\3")
+    str.gsub!(/\\curren((\{\})|(\s|$))/, "¤\\3")
+    str.gsub!(/\\cent((\{\})|(\s|$))/, "¢\\3")
+    str.gsub!(/\\pound((\{\})|(\s|$))/, "£\\3")
+    str.gsub!(/\\yen((\{\})|(\s|$))/, "¥\\3")
+    str.gsub!(/\\euro((\{\})|(\s|$))/, "€\\3")
+    str.gsub!(/\\EUR((\{\})|(\s|$))/, "€\\3")
+    str.gsub!(/\\EURdig((\{\})|(\s|$))/, "€\\3")
+    str.gsub!(/\\EURhv((\{\})|(\s|$))/, "€\\3")
+    str.gsub!(/\\EURcr((\{\})|(\s|$))/, "€\\3")
+    str.gsub!(/\\EURtm((\{\})|(\s|$))/, "€\\3")
+    str.gsub!(/\\copy((\{\})|(\s|$))/, "©\\3")
+    str.gsub!(/\\reg((\{\})|(\s|$))/, "®\\3")
+    str.gsub!(/\\trade((\{\})|(\s|$))/, "™\\3")
+    str.gsub!(/\\minus((\{\})|(\s|$))/, "−\\3")
+    str.gsub!(/\\pm((\{\})|(\s|$))/, "±\\3")
+    str.gsub!(/\\plusmn((\{\})|(\s|$))/, "±\\3")
+    str.gsub!(/\\times((\{\})|(\s|$))/, "×\\3")
+    str.gsub!(/\\frasl((\{\})|(\s|$))/, "⁄\\3")
+    str.gsub!(/\\div((\{\})|(\s|$))/, "÷\\3")
+    str.gsub!(/\\frac12((\{\})|(\s|$))/, "&frac12;\\3")
+    str.gsub!(/\\frac14((\{\})|(\s|$))/, "&frac14;\\3")
+    str.gsub!(/\\frac34((\{\})|(\s|$))/, "&frac34;\\3")
+    str.gsub!(/\\permil((\{\})|(\s|$))/, "‰\\3")
+    str.gsub!(/\\sup1((\{\})|(\s|$))/, "&sup1;\\3")
+    str.gsub!(/\\sup2((\{\})|(\s|$))/, "&sup2;\\3")
+    str.gsub!(/\\sup3((\{\})|(\s|$))/, "&sup3;\\3")
+    str.gsub!(/\\radic((\{\})|(\s|$))/, "√\\3")
+    str.gsub!(/\\sum((\{\})|(\s|$))/, "∑\\3")
+    str.gsub!(/\\prod((\{\})|(\s|$))/, "∏\\3")
+    str.gsub!(/\\micro((\{\})|(\s|$))/, "µ\\3")
+    str.gsub!(/\\macr((\{\})|(\s|$))/, "¯\\3")
+    str.gsub!(/\\deg((\{\})|(\s|$))/, "°\\3")
+    str.gsub!(/\\prime((\{\})|(\s|$))/, "′\\3")
+    str.gsub!(/\\Prime((\{\})|(\s|$))/, "″\\3")
+    str.gsub!(/\\infin((\{\})|(\s|$))/, "∞\\3")
+    str.gsub!(/\\infty((\{\})|(\s|$))/, "∞\\3")
+    str.gsub!(/\\prop((\{\})|(\s|$))/, "∝\\3")
+    str.gsub!(/\\proptp((\{\})|(\s|$))/, "∝\\3")
+    str.gsub!(/\\not((\{\})|(\s|$))/, "¬\\3")
+    str.gsub!(/\\land((\{\})|(\s|$))/, "∧\\3")
+    str.gsub!(/\\wedge((\{\})|(\s|$))/, "∧\\3")
+    str.gsub!(/\\lor((\{\})|(\s|$))/, "∨\\3")
+    str.gsub!(/\\vee((\{\})|(\s|$))/, "∨\\3")
+    str.gsub!(/\\cap((\{\})|(\s|$))/, "∩\\3")
+    str.gsub!(/\\cup((\{\})|(\s|$))/, "∪\\3")
+    str.gsub!(/\\int((\{\})|(\s|$))/, "∫\\3")
+    str.gsub!(/\\there4((\{\})|(\s|$))/, "&there4;\\3")
+    str.gsub!(/\\sim((\{\})|(\s|$))/, "∼\\3")
+    str.gsub!(/\\cong((\{\})|(\s|$))/, "≅\\3")
+    str.gsub!(/\\simeq((\{\})|(\s|$))/, "≅\\3")
+    str.gsub!(/\\asymp((\{\})|(\s|$))/, "≈\\3")
+    str.gsub!(/\\approx((\{\})|(\s|$))/, "≈\\3")
+    str.gsub!(/\\ne((\{\})|(\s|$))/, "≠\\3")
+    str.gsub!(/\\neq((\{\})|(\s|$))/, "≠\\3")
+    str.gsub!(/\\equiv((\{\})|(\s|$))/, "≡\\3")
+    str.gsub!(/\\le((\{\})|(\s|$))/, "≤\\3")
+    str.gsub!(/\\ge((\{\})|(\s|$))/, "≥\\3")
+    str.gsub!(/\\sub((\{\})|(\s|$))/, "⊂\\3")
+    str.gsub!(/\\subset((\{\})|(\s|$))/, "⊂\\3")
+    str.gsub!(/\\sup((\{\})|(\s|$))/, "⊃\\3")
+    str.gsub!(/\\supset((\{\})|(\s|$))/, "⊃\\3")
+    str.gsub!(/\\nsub((\{\})|(\s|$))/, "⊄\\3")
+    str.gsub!(/\\sube((\{\})|(\s|$))/, "⊆\\3")
+    str.gsub!(/\\nsup((\{\})|(\s|$))/, "⊅\\3")
+    str.gsub!(/\\supe((\{\})|(\s|$))/, "⊇\\3")
+    str.gsub!(/\\forall((\{\})|(\s|$))/, "∀\\3")
+    str.gsub!(/\\exist((\{\})|(\s|$))/, "∃\\3")
+    str.gsub!(/\\exists((\{\})|(\s|$))/, "∃\\3")
+    str.gsub!(/\\empty((\{\})|(\s|$))/, "∅\\3")
+    str.gsub!(/\\emptyset((\{\})|(\s|$))/, "∅\\3")
+    str.gsub!(/\\isin((\{\})|(\s|$))/, "∈\\3")
+    str.gsub!(/\\in((\{\})|(\s|$))/, "∈\\3")
+    str.gsub!(/\\notin((\{\})|(\s|$))/, "∉\\3")
+    str.gsub!(/\\ni((\{\})|(\s|$))/, "∋\\3")
+    str.gsub!(/\\nabla((\{\})|(\s|$))/, "∇\\3")
+    str.gsub!(/\\ang((\{\})|(\s|$))/, "∠\\3")
+    str.gsub!(/\\angle((\{\})|(\s|$))/, "∠\\3")
+    str.gsub!(/\\perp((\{\})|(\s|$))/, "⊥\\3")
+    str.gsub!(/\\sdot((\{\})|(\s|$))/, "⋅\\3")
+    str.gsub!(/\\cdot((\{\})|(\s|$))/, "⋅\\3")
+    str.gsub!(/\\lceil((\{\})|(\s|$))/, "⌈\\3")
+    str.gsub!(/\\rceil((\{\})|(\s|$))/, "⌉\\3")
+    str.gsub!(/\\lfloor((\{\})|(\s|$))/, "⌊\\3")
+    str.gsub!(/\\rfloor((\{\})|(\s|$))/, "⌋\\3")
+    str.gsub!(/\\lang((\{\})|(\s|$))/, "⟨\\3")
+    str.gsub!(/\\rang((\{\})|(\s|$))/, "⟩\\3")
+    str.gsub!(/\\larr((\{\})|(\s|$))/, "←\\3")
+    str.gsub!(/\\leftarrow((\{\})|(\s|$))/, "←\\3")
+    str.gsub!(/\\gets((\{\})|(\s|$))/, "←\\3")
+    str.gsub!(/\\lArr((\{\})|(\s|$))/, "⇐\\3")
+    str.gsub!(/\\Leftarrow((\{\})|(\s|$))/, "⇐\\3")
+    str.gsub!(/\\uarr((\{\})|(\s|$))/, "↑\\3")
+    str.gsub!(/\\uparrow((\{\})|(\s|$))/, "↑\\3")
+    str.gsub!(/\\uArr((\{\})|(\s|$))/, "⇑\\3")
+    str.gsub!(/\\Uparrow((\{\})|(\s|$))/, "⇑\\3")
+    str.gsub!(/\\rarr((\{\})|(\s|$))/, "→\\3")
+    str.gsub!(/\\to((\{\})|(\s|$))/, "→\\3")
+    str.gsub!(/\\rightarrow((\{\})|(\s|$))/, "→\\3")
+    str.gsub!(/\\rArr((\{\})|(\s|$))/, "⇒\\3")
+    str.gsub!(/\\Rightarrow((\{\})|(\s|$))/, "⇒\\3")
+    str.gsub!(/\\darr((\{\})|(\s|$))/, "↓\\3")
+    str.gsub!(/\\downarrow((\{\})|(\s|$))/, "↓\\3")
+    str.gsub!(/\\dArr((\{\})|(\s|$))/, "⇓\\3")
+    str.gsub!(/\\Downarrow((\{\})|(\s|$))/, "⇓\\3")
+    str.gsub!(/\\harr((\{\})|(\s|$))/, "↔\\3")
+    str.gsub!(/\\leftrightarrow((\{\})|(\s|$))/, "↔\\3")
+    str.gsub!(/\\hArr((\{\})|(\s|$))/, "⇔\\3")
+    str.gsub!(/\\Leftrightarrow((\{\})|(\s|$))/, "⇔\\3")
+    str.gsub!(/\\crarr((\{\})|(\s|$))/, "↵\\3")
+    str.gsub!(/\\hookleftarrow((\{\})|(\s|$))/, "↵\\3")
+    str.gsub!(/\\arccos((\{\})|(\s|$))/, "arccos\\3")
+    str.gsub!(/\\arcsin((\{\})|(\s|$))/, "arcsin\\3")
+    str.gsub!(/\\arctan((\{\})|(\s|$))/, "arctan\\3")
+    str.gsub!(/\\arg((\{\})|(\s|$))/, "arg\\3")
+    str.gsub!(/\\cos((\{\})|(\s|$))/, "cos\\3")
+    str.gsub!(/\\cosh((\{\})|(\s|$))/, "cosh\\3")
+    str.gsub!(/\\cot((\{\})|(\s|$))/, "cot\\3")
+    str.gsub!(/\\coth((\{\})|(\s|$))/, "coth\\3")
+    str.gsub!(/\\csc((\{\})|(\s|$))/, "csc\\3")
+    str.gsub!(/\\deg((\{\})|(\s|$))/, "°\\3")
+    str.gsub!(/\\det((\{\})|(\s|$))/, "det\\3")
+    str.gsub!(/\\dim((\{\})|(\s|$))/, "dim\\3")
+    str.gsub!(/\\exp((\{\})|(\s|$))/, "exp\\3")
+    str.gsub!(/\\gcd((\{\})|(\s|$))/, "gcd\\3")
+    str.gsub!(/\\hom((\{\})|(\s|$))/, "hom\\3")
+    str.gsub!(/\\inf((\{\})|(\s|$))/, "inf\\3")
+    str.gsub!(/\\ker((\{\})|(\s|$))/, "ker\\3")
+    str.gsub!(/\\lg((\{\})|(\s|$))/, "lg\\3")
+    str.gsub!(/\\lim((\{\})|(\s|$))/, "lim\\3")
+    str.gsub!(/\\liminf((\{\})|(\s|$))/, "liminf\\3")
+    str.gsub!(/\\limsup((\{\})|(\s|$))/, "limsup\\3")
+    str.gsub!(/\\ln((\{\})|(\s|$))/, "ln\\3")
+    str.gsub!(/\\log((\{\})|(\s|$))/, "log\\3")
+    str.gsub!(/\\max((\{\})|(\s|$))/, "max\\3")
+    str.gsub!(/\\min((\{\})|(\s|$))/, "min\\3")
+    str.gsub!(/\\Pr((\{\})|(\s|$))/, "Pr\\3")
+    str.gsub!(/\\sec((\{\})|(\s|$))/, "sec\\3")
+    str.gsub!(/\\sin((\{\})|(\s|$))/, "sin\\3")
+    str.gsub!(/\\sinh((\{\})|(\s|$))/, "sinh\\3")
+    str.gsub!(/\\sup((\{\})|(\s|$))/, "⊃\\3")
+    str.gsub!(/\\tan((\{\})|(\s|$))/, "tan\\3")
+    str.gsub!(/\\tanh((\{\})|(\s|$))/, "tanh\\3")
+    str.gsub!(/\\bull((\{\})|(\s|$))/, "•\\3")
+    str.gsub!(/\\bullet((\{\})|(\s|$))/, "•\\3")
+    str.gsub!(/\\star((\{\})|(\s|$))/, "*\\3")
+    str.gsub!(/\\lowast((\{\})|(\s|$))/, "∗\\3")
+    str.gsub!(/\\ast((\{\})|(\s|$))/, "∗\\3")
+    str.gsub!(/\\odot((\{\})|(\s|$))/, "o\\3")
+    str.gsub!(/\\oplus((\{\})|(\s|$))/, "⊕\\3")
+    str.gsub!(/\\otimes((\{\})|(\s|$))/, "⊗\\3")
+    str.gsub!(/\\checkmark((\{\})|(\s|$))/, "✓\\3")
+    str.gsub!(/\\para((\{\})|(\s|$))/, "¶\\3")
+    str.gsub!(/\\ordf((\{\})|(\s|$))/, "ª\\3")
+    str.gsub!(/\\ordm((\{\})|(\s|$))/, "º\\3")
+    str.gsub!(/\\cedil((\{\})|(\s|$))/, "¸\\3")
+    str.gsub!(/\\oline((\{\})|(\s|$))/, "‾\\3")
+    str.gsub!(/\\uml((\{\})|(\s|$))/, "¨\\3")
+    str.gsub!(/\\zwnj((\{\})|(\s|$))/, "‌\\3")
+    str.gsub!(/\\zwj((\{\})|(\s|$))/, "‍\\3")
+    str.gsub!(/\\lrm((\{\})|(\s|$))/, "‎\\3")
+    str.gsub!(/\\rlm((\{\})|(\s|$))/, "‏\\3")
+    str.gsub!(/\\smile((\{\})|(\s|$))/, "☺\\3")
+    str.gsub!(/\\smiley((\{\})|(\s|$))/, "☺\\3")
+    str.gsub!(/\\blacksmile((\{\})|(\s|$))/, "☻\\3")
+    str.gsub!(/\\sad((\{\})|(\s|$))/, "☹\\3")
+    str.gsub!(/\\clubs((\{\})|(\s|$))/, "♣\\3")
+    str.gsub!(/\\clubsuit((\{\})|(\s|$))/, "♣\\3")
+    str.gsub!(/\\spades((\{\})|(\s|$))/, "♠\\3")
+    str.gsub!(/\\spadesuit((\{\})|(\s|$))/, "♠\\3")
+    str.gsub!(/\\hearts((\{\})|(\s|$))/, "♥\\3")
+    str.gsub!(/\\heartsuit((\{\})|(\s|$))/, "♥\\3")
+    str.gsub!(/\\diams((\{\})|(\s|$))/, "♦\\3")
+    str.gsub!(/\\diamondsuit((\{\})|(\s|$))/, "♦\\3")
+    str.gsub!(/\\Diamond((\{\})|(\s|$))/, "⋄\\3")
+    str.gsub!(/\\loz((\{\})|(\s|$))/, "◊\\3")
   end
 end # module Orgmode
diff --git a/lib/org-ruby/textile_symbol_replace.rb b/lib/org-ruby/textile_symbol_replace.rb
index ec3458c..35c3938 100644
--- a/lib/org-ruby/textile_symbol_replace.rb
+++ b/lib/org-ruby/textile_symbol_replace.rb
@@ -1,346 +1,345 @@
-# -*- coding: utf-8 -*-
 # Autogenerated by util/gen-special-replace.el
 
 module Orgmode
   def Orgmode.special_symbols_to_textile(str)
-    str.gsub!(/\\Agrave((\{\})|\s|$)/, "À")
-    str.gsub!(/\\agrave((\{\})|\s|$)/, "à")
-    str.gsub!(/\\Aacute((\{\})|\s|$)/, "Á")
-    str.gsub!(/\\aacute((\{\})|\s|$)/, "á")
-    str.gsub!(/\\Acirc((\{\})|\s|$)/, "Â")
-    str.gsub!(/\\acirc((\{\})|\s|$)/, "â")
-    str.gsub!(/\\Atilde((\{\})|\s|$)/, "Ã")
-    str.gsub!(/\\atilde((\{\})|\s|$)/, "ã")
-    str.gsub!(/\\Auml((\{\})|\s|$)/, "Ä")
-    str.gsub!(/\\auml((\{\})|\s|$)/, "ä")
-    str.gsub!(/\\Aring((\{\})|\s|$)/, "Å")
-    str.gsub!(/\\AA((\{\})|\s|$)/, "Å")
-    str.gsub!(/\\aring((\{\})|\s|$)/, "å")
-    str.gsub!(/\\AElig((\{\})|\s|$)/, "Æ")
-    str.gsub!(/\\aelig((\{\})|\s|$)/, "æ")
-    str.gsub!(/\\Ccedil((\{\})|\s|$)/, "Ç")
-    str.gsub!(/\\ccedil((\{\})|\s|$)/, "ç")
-    str.gsub!(/\\Egrave((\{\})|\s|$)/, "È")
-    str.gsub!(/\\egrave((\{\})|\s|$)/, "è")
-    str.gsub!(/\\Eacute((\{\})|\s|$)/, "É")
-    str.gsub!(/\\eacute((\{\})|\s|$)/, "é")
-    str.gsub!(/\\Ecirc((\{\})|\s|$)/, "Ê")
-    str.gsub!(/\\ecirc((\{\})|\s|$)/, "ê")
-    str.gsub!(/\\Euml((\{\})|\s|$)/, "Ë")
-    str.gsub!(/\\euml((\{\})|\s|$)/, "ë")
-    str.gsub!(/\\Igrave((\{\})|\s|$)/, "Ì")
-    str.gsub!(/\\igrave((\{\})|\s|$)/, "ì")
-    str.gsub!(/\\Iacute((\{\})|\s|$)/, "Í")
-    str.gsub!(/\\iacute((\{\})|\s|$)/, "í")
-    str.gsub!(/\\Icirc((\{\})|\s|$)/, "Î")
-    str.gsub!(/\\icirc((\{\})|\s|$)/, "î")
-    str.gsub!(/\\Iuml((\{\})|\s|$)/, "Ï")
-    str.gsub!(/\\iuml((\{\})|\s|$)/, "ï")
-    str.gsub!(/\\Ntilde((\{\})|\s|$)/, "Ñ")
-    str.gsub!(/\\ntilde((\{\})|\s|$)/, "ñ")
-    str.gsub!(/\\Ograve((\{\})|\s|$)/, "Ò")
-    str.gsub!(/\\ograve((\{\})|\s|$)/, "ò")
-    str.gsub!(/\\Oacute((\{\})|\s|$)/, "Ó")
-    str.gsub!(/\\oacute((\{\})|\s|$)/, "ó")
-    str.gsub!(/\\Ocirc((\{\})|\s|$)/, "Ô")
-    str.gsub!(/\\ocirc((\{\})|\s|$)/, "ô")
-    str.gsub!(/\\Otilde((\{\})|\s|$)/, "Õ")
-    str.gsub!(/\\otilde((\{\})|\s|$)/, "õ")
-    str.gsub!(/\\Ouml((\{\})|\s|$)/, "Ö")
-    str.gsub!(/\\ouml((\{\})|\s|$)/, "ö")
-    str.gsub!(/\\Oslash((\{\})|\s|$)/, "Ø")
-    str.gsub!(/\\oslash((\{\})|\s|$)/, "ø")
-    str.gsub!(/\\OElig((\{\})|\s|$)/, "Œ")
-    str.gsub!(/\\oelig((\{\})|\s|$)/, "œ")
-    str.gsub!(/\\Scaron((\{\})|\s|$)/, "Š")
-    str.gsub!(/\\scaron((\{\})|\s|$)/, "š")
-    str.gsub!(/\\szlig((\{\})|\s|$)/, "ß")
-    str.gsub!(/\\Ugrave((\{\})|\s|$)/, "Ù")
-    str.gsub!(/\\ugrave((\{\})|\s|$)/, "ù")
-    str.gsub!(/\\Uacute((\{\})|\s|$)/, "Ú")
-    str.gsub!(/\\uacute((\{\})|\s|$)/, "ú")
-    str.gsub!(/\\Ucirc((\{\})|\s|$)/, "Û")
-    str.gsub!(/\\ucirc((\{\})|\s|$)/, "û")
-    str.gsub!(/\\Uuml((\{\})|\s|$)/, "Ü")
-    str.gsub!(/\\uuml((\{\})|\s|$)/, "ü")
-    str.gsub!(/\\Yacute((\{\})|\s|$)/, "Ý")
-    str.gsub!(/\\yacute((\{\})|\s|$)/, "ý")
-    str.gsub!(/\\Yuml((\{\})|\s|$)/, "Ÿ")
-    str.gsub!(/\\yuml((\{\})|\s|$)/, "ÿ")
-    str.gsub!(/\\fnof((\{\})|\s|$)/, "ƒ")
-    str.gsub!(/\\real((\{\})|\s|$)/, "ℜ")
-    str.gsub!(/\\image((\{\})|\s|$)/, "ℑ")
-    str.gsub!(/\\weierp((\{\})|\s|$)/, "℘")
-    str.gsub!(/\\Alpha((\{\})|\s|$)/, "Α")
-    str.gsub!(/\\alpha((\{\})|\s|$)/, "α")
-    str.gsub!(/\\Beta((\{\})|\s|$)/, "Β")
-    str.gsub!(/\\beta((\{\})|\s|$)/, "β")
-    str.gsub!(/\\Gamma((\{\})|\s|$)/, "Γ")
-    str.gsub!(/\\gamma((\{\})|\s|$)/, "γ")
-    str.gsub!(/\\Delta((\{\})|\s|$)/, "Δ")
-    str.gsub!(/\\delta((\{\})|\s|$)/, "δ")
-    str.gsub!(/\\Epsilon((\{\})|\s|$)/, "Ε")
-    str.gsub!(/\\epsilon((\{\})|\s|$)/, "ε")
-    str.gsub!(/\\varepsilon((\{\})|\s|$)/, "ε")
-    str.gsub!(/\\Zeta((\{\})|\s|$)/, "Ζ")
-    str.gsub!(/\\zeta((\{\})|\s|$)/, "ζ")
-    str.gsub!(/\\Eta((\{\})|\s|$)/, "Η")
-    str.gsub!(/\\eta((\{\})|\s|$)/, "η")
-    str.gsub!(/\\Theta((\{\})|\s|$)/, "Θ")
-    str.gsub!(/\\theta((\{\})|\s|$)/, "θ")
-    str.gsub!(/\\thetasym((\{\})|\s|$)/, "ϑ")
-    str.gsub!(/\\vartheta((\{\})|\s|$)/, "ϑ")
-    str.gsub!(/\\Iota((\{\})|\s|$)/, "Ι")
-    str.gsub!(/\\iota((\{\})|\s|$)/, "ι")
-    str.gsub!(/\\Kappa((\{\})|\s|$)/, "Κ")
-    str.gsub!(/\\kappa((\{\})|\s|$)/, "κ")
-    str.gsub!(/\\Lambda((\{\})|\s|$)/, "Λ")
-    str.gsub!(/\\lambda((\{\})|\s|$)/, "λ")
-    str.gsub!(/\\Mu((\{\})|\s|$)/, "Μ")
-    str.gsub!(/\\mu((\{\})|\s|$)/, "μ")
-    str.gsub!(/\\nu((\{\})|\s|$)/, "ν")
-    str.gsub!(/\\Nu((\{\})|\s|$)/, "Ν")
-    str.gsub!(/\\Xi((\{\})|\s|$)/, "Ξ")
-    str.gsub!(/\\xi((\{\})|\s|$)/, "ξ")
-    str.gsub!(/\\Omicron((\{\})|\s|$)/, "Ο")
-    str.gsub!(/\\omicron((\{\})|\s|$)/, "ο")
-    str.gsub!(/\\Pi((\{\})|\s|$)/, "Π")
-    str.gsub!(/\\pi((\{\})|\s|$)/, "π")
-    str.gsub!(/\\Rho((\{\})|\s|$)/, "Ρ")
-    str.gsub!(/\\rho((\{\})|\s|$)/, "ρ")
-    str.gsub!(/\\Sigma((\{\})|\s|$)/, "Σ")
-    str.gsub!(/\\sigma((\{\})|\s|$)/, "σ")
-    str.gsub!(/\\sigmaf((\{\})|\s|$)/, "ς")
-    str.gsub!(/\\varsigma((\{\})|\s|$)/, "ς")
-    str.gsub!(/\\Tau((\{\})|\s|$)/, "Τ")
-    str.gsub!(/\\Upsilon((\{\})|\s|$)/, "Υ")
-    str.gsub!(/\\upsih((\{\})|\s|$)/, "ϒ")
-    str.gsub!(/\\upsilon((\{\})|\s|$)/, "υ")
-    str.gsub!(/\\Phi((\{\})|\s|$)/, "Φ")
-    str.gsub!(/\\phi((\{\})|\s|$)/, "φ")
-    str.gsub!(/\\Chi((\{\})|\s|$)/, "Χ")
-    str.gsub!(/\\chi((\{\})|\s|$)/, "χ")
-    str.gsub!(/\\acutex((\{\})|\s|$)/, "𝑥́")
-    str.gsub!(/\\Psi((\{\})|\s|$)/, "Ψ")
-    str.gsub!(/\\psi((\{\})|\s|$)/, "ψ")
-    str.gsub!(/\\tau((\{\})|\s|$)/, "τ")
-    str.gsub!(/\\Omega((\{\})|\s|$)/, "Ω")
-    str.gsub!(/\\omega((\{\})|\s|$)/, "ω")
-    str.gsub!(/\\piv((\{\})|\s|$)/, "ϖ")
-    str.gsub!(/\\partial((\{\})|\s|$)/, "∂")
-    str.gsub!(/\\alefsym((\{\})|\s|$)/, "ℵ")
-    str.gsub!(/\\ETH((\{\})|\s|$)/, "Ð")
-    str.gsub!(/\\eth((\{\})|\s|$)/, "ð")
-    str.gsub!(/\\THORN((\{\})|\s|$)/, "Þ")
-    str.gsub!(/\\thorn((\{\})|\s|$)/, "þ")
-    str.gsub!(/\\dots((\{\})|\s|$)/, "…")
-    str.gsub!(/\\hellip((\{\})|\s|$)/, "…")
-    str.gsub!(/\\middot((\{\})|\s|$)/, "·")
-    str.gsub!(/\\iexcl((\{\})|\s|$)/, "¡")
-    str.gsub!(/\\iquest((\{\})|\s|$)/, "¿")
-    str.gsub!(/\\shy((\{\})|\s|$)/, "")
-    str.gsub!(/\\ndash((\{\})|\s|$)/, "–")
-    str.gsub!(/\\mdash((\{\})|\s|$)/, "—")
-    str.gsub!(/\\quot((\{\})|\s|$)/, "\"")
-    str.gsub!(/\\acute((\{\})|\s|$)/, "´")
-    str.gsub!(/\\ldquo((\{\})|\s|$)/, "“")
-    str.gsub!(/\\rdquo((\{\})|\s|$)/, "”")
-    str.gsub!(/\\bdquo((\{\})|\s|$)/, "„")
-    str.gsub!(/\\lsquo((\{\})|\s|$)/, "‘")
-    str.gsub!(/\\rsquo((\{\})|\s|$)/, "’")
-    str.gsub!(/\\sbquo((\{\})|\s|$)/, "‚")
-    str.gsub!(/\\laquo((\{\})|\s|$)/, "«")
-    str.gsub!(/\\raquo((\{\})|\s|$)/, "»")
-    str.gsub!(/\\lsaquo((\{\})|\s|$)/, "‹")
-    str.gsub!(/\\rsaquo((\{\})|\s|$)/, "›")
-    str.gsub!(/\\circ((\{\})|\s|$)/, "ˆ")
-    str.gsub!(/\\vert((\{\})|\s|$)/, "|")
-    str.gsub!(/\\brvbar((\{\})|\s|$)/, "¦")
-    str.gsub!(/\\sect((\{\})|\s|$)/, "§")
-    str.gsub!(/\\amp((\{\})|\s|$)/, "&")
-    str.gsub!(/\\lt((\{\})|\s|$)/, "<")
-    str.gsub!(/\\gt((\{\})|\s|$)/, ">")
-    str.gsub!(/\\tilde((\{\})|\s|$)/, "~")
-    str.gsub!(/\\dagger((\{\})|\s|$)/, "†")
-    str.gsub!(/\\Dagger((\{\})|\s|$)/, "‡")
-    str.gsub!(/\\nbsp((\{\})|\s|$)/, " ")
-    str.gsub!(/\\ensp((\{\})|\s|$)/, " ")
-    str.gsub!(/\\emsp((\{\})|\s|$)/, " ")
-    str.gsub!(/\\thinsp((\{\})|\s|$)/, " ")
-    str.gsub!(/\\curren((\{\})|\s|$)/, "¤")
-    str.gsub!(/\\cent((\{\})|\s|$)/, "¢")
-    str.gsub!(/\\pound((\{\})|\s|$)/, "£")
-    str.gsub!(/\\yen((\{\})|\s|$)/, "¥")
-    str.gsub!(/\\euro((\{\})|\s|$)/, "€")
-    str.gsub!(/\\EUR((\{\})|\s|$)/, "€")
-    str.gsub!(/\\EURdig((\{\})|\s|$)/, "€")
-    str.gsub!(/\\EURhv((\{\})|\s|$)/, "€")
-    str.gsub!(/\\EURcr((\{\})|\s|$)/, "€")
-    str.gsub!(/\\EURtm((\{\})|\s|$)/, "€")
-    str.gsub!(/\\copy((\{\})|\s|$)/, "©")
-    str.gsub!(/\\reg((\{\})|\s|$)/, "®")
-    str.gsub!(/\\trade((\{\})|\s|$)/, "™")
-    str.gsub!(/\\minus((\{\})|\s|$)/, "−")
-    str.gsub!(/\\pm((\{\})|\s|$)/, "±")
-    str.gsub!(/\\plusmn((\{\})|\s|$)/, "±")
-    str.gsub!(/\\times((\{\})|\s|$)/, "×")
-    str.gsub!(/\\frasl((\{\})|\s|$)/, "⁄")
-    str.gsub!(/\\div((\{\})|\s|$)/, "÷")
-    str.gsub!(/\\frac12((\{\})|\s|$)/, "½")
-    str.gsub!(/\\frac14((\{\})|\s|$)/, "¼")
-    str.gsub!(/\\frac34((\{\})|\s|$)/, "¾")
-    str.gsub!(/\\permil((\{\})|\s|$)/, "‰")
-    str.gsub!(/\\sup1((\{\})|\s|$)/, "¹")
-    str.gsub!(/\\sup2((\{\})|\s|$)/, "²")
-    str.gsub!(/\\sup3((\{\})|\s|$)/, "³")
-    str.gsub!(/\\radic((\{\})|\s|$)/, "√")
-    str.gsub!(/\\sum((\{\})|\s|$)/, "∑")
-    str.gsub!(/\\prod((\{\})|\s|$)/, "∏")
-    str.gsub!(/\\micro((\{\})|\s|$)/, "µ")
-    str.gsub!(/\\macr((\{\})|\s|$)/, "¯")
-    str.gsub!(/\\deg((\{\})|\s|$)/, "°")
-    str.gsub!(/\\prime((\{\})|\s|$)/, "′")
-    str.gsub!(/\\Prime((\{\})|\s|$)/, "″")
-    str.gsub!(/\\infin((\{\})|\s|$)/, "∞")
-    str.gsub!(/\\infty((\{\})|\s|$)/, "∞")
-    str.gsub!(/\\prop((\{\})|\s|$)/, "∝")
-    str.gsub!(/\\proptp((\{\})|\s|$)/, "∝")
-    str.gsub!(/\\not((\{\})|\s|$)/, "¬")
-    str.gsub!(/\\land((\{\})|\s|$)/, "∧")
-    str.gsub!(/\\wedge((\{\})|\s|$)/, "∧")
-    str.gsub!(/\\lor((\{\})|\s|$)/, "∨")
-    str.gsub!(/\\vee((\{\})|\s|$)/, "∨")
-    str.gsub!(/\\cap((\{\})|\s|$)/, "∩")
-    str.gsub!(/\\cup((\{\})|\s|$)/, "∪")
-    str.gsub!(/\\int((\{\})|\s|$)/, "∫")
-    str.gsub!(/\\there4((\{\})|\s|$)/, "∴")
-    str.gsub!(/\\sim((\{\})|\s|$)/, "∼")
-    str.gsub!(/\\cong((\{\})|\s|$)/, "≅")
-    str.gsub!(/\\simeq((\{\})|\s|$)/, "≅")
-    str.gsub!(/\\asymp((\{\})|\s|$)/, "≈")
-    str.gsub!(/\\approx((\{\})|\s|$)/, "≈")
-    str.gsub!(/\\ne((\{\})|\s|$)/, "≠")
-    str.gsub!(/\\neq((\{\})|\s|$)/, "≠")
-    str.gsub!(/\\equiv((\{\})|\s|$)/, "≡")
-    str.gsub!(/\\le((\{\})|\s|$)/, "≤")
-    str.gsub!(/\\ge((\{\})|\s|$)/, "≥")
-    str.gsub!(/\\sub((\{\})|\s|$)/, "⊂")
-    str.gsub!(/\\subset((\{\})|\s|$)/, "⊂")
-    str.gsub!(/\\sup((\{\})|\s|$)/, "⊃")
-    str.gsub!(/\\supset((\{\})|\s|$)/, "⊃")
-    str.gsub!(/\\nsub((\{\})|\s|$)/, "⊄")
-    str.gsub!(/\\sube((\{\})|\s|$)/, "⊆")
-    str.gsub!(/\\nsup((\{\})|\s|$)/, "⊅")
-    str.gsub!(/\\supe((\{\})|\s|$)/, "⊇")
-    str.gsub!(/\\forall((\{\})|\s|$)/, "∀")
-    str.gsub!(/\\exist((\{\})|\s|$)/, "∃")
-    str.gsub!(/\\exists((\{\})|\s|$)/, "∃")
-    str.gsub!(/\\empty((\{\})|\s|$)/, "∅")
-    str.gsub!(/\\emptyset((\{\})|\s|$)/, "∅")
-    str.gsub!(/\\isin((\{\})|\s|$)/, "∈")
-    str.gsub!(/\\in((\{\})|\s|$)/, "∈")
-    str.gsub!(/\\notin((\{\})|\s|$)/, "∉")
-    str.gsub!(/\\ni((\{\})|\s|$)/, "∋")
-    str.gsub!(/\\nabla((\{\})|\s|$)/, "∇")
-    str.gsub!(/\\ang((\{\})|\s|$)/, "∠")
-    str.gsub!(/\\angle((\{\})|\s|$)/, "∠")
-    str.gsub!(/\\perp((\{\})|\s|$)/, "⊥")
-    str.gsub!(/\\sdot((\{\})|\s|$)/, "⋅")
-    str.gsub!(/\\cdot((\{\})|\s|$)/, "⋅")
-    str.gsub!(/\\lceil((\{\})|\s|$)/, "⌈")
-    str.gsub!(/\\rceil((\{\})|\s|$)/, "⌉")
-    str.gsub!(/\\lfloor((\{\})|\s|$)/, "⌊")
-    str.gsub!(/\\rfloor((\{\})|\s|$)/, "⌋")
-    str.gsub!(/\\lang((\{\})|\s|$)/, "⟨")
-    str.gsub!(/\\rang((\{\})|\s|$)/, "⟩")
-    str.gsub!(/\\larr((\{\})|\s|$)/, "←")
-    str.gsub!(/\\leftarrow((\{\})|\s|$)/, "←")
-    str.gsub!(/\\gets((\{\})|\s|$)/, "←")
-    str.gsub!(/\\lArr((\{\})|\s|$)/, "⇐")
-    str.gsub!(/\\Leftarrow((\{\})|\s|$)/, "⇐")
-    str.gsub!(/\\uarr((\{\})|\s|$)/, "↑")
-    str.gsub!(/\\uparrow((\{\})|\s|$)/, "↑")
-    str.gsub!(/\\uArr((\{\})|\s|$)/, "⇑")
-    str.gsub!(/\\Uparrow((\{\})|\s|$)/, "⇑")
-    str.gsub!(/\\rarr((\{\})|\s|$)/, "→")
-    str.gsub!(/\\to((\{\})|\s|$)/, "→")
-    str.gsub!(/\\rightarrow((\{\})|\s|$)/, "→")
-    str.gsub!(/\\rArr((\{\})|\s|$)/, "⇒")
-    str.gsub!(/\\Rightarrow((\{\})|\s|$)/, "⇒")
-    str.gsub!(/\\darr((\{\})|\s|$)/, "↓")
-    str.gsub!(/\\downarrow((\{\})|\s|$)/, "↓")
-    str.gsub!(/\\dArr((\{\})|\s|$)/, "⇓")
-    str.gsub!(/\\Downarrow((\{\})|\s|$)/, "⇓")
-    str.gsub!(/\\harr((\{\})|\s|$)/, "↔")
-    str.gsub!(/\\leftrightarrow((\{\})|\s|$)/, "↔")
-    str.gsub!(/\\hArr((\{\})|\s|$)/, "⇔")
-    str.gsub!(/\\Leftrightarrow((\{\})|\s|$)/, "⇔")
-    str.gsub!(/\\crarr((\{\})|\s|$)/, "↵")
-    str.gsub!(/\\hookleftarrow((\{\})|\s|$)/, "↵")
-    str.gsub!(/\\arccos((\{\})|\s|$)/, "arccos")
-    str.gsub!(/\\arcsin((\{\})|\s|$)/, "arcsin")
-    str.gsub!(/\\arctan((\{\})|\s|$)/, "arctan")
-    str.gsub!(/\\arg((\{\})|\s|$)/, "arg")
-    str.gsub!(/\\cos((\{\})|\s|$)/, "cos")
-    str.gsub!(/\\cosh((\{\})|\s|$)/, "cosh")
-    str.gsub!(/\\cot((\{\})|\s|$)/, "cot")
-    str.gsub!(/\\coth((\{\})|\s|$)/, "coth")
-    str.gsub!(/\\csc((\{\})|\s|$)/, "csc")
-    str.gsub!(/\\deg((\{\})|\s|$)/, "deg")
-    str.gsub!(/\\det((\{\})|\s|$)/, "det")
-    str.gsub!(/\\dim((\{\})|\s|$)/, "dim")
-    str.gsub!(/\\exp((\{\})|\s|$)/, "exp")
-    str.gsub!(/\\gcd((\{\})|\s|$)/, "gcd")
-    str.gsub!(/\\hom((\{\})|\s|$)/, "hom")
-    str.gsub!(/\\inf((\{\})|\s|$)/, "inf")
-    str.gsub!(/\\ker((\{\})|\s|$)/, "ker")
-    str.gsub!(/\\lg((\{\})|\s|$)/, "lg")
-    str.gsub!(/\\lim((\{\})|\s|$)/, "lim")
-    str.gsub!(/\\liminf((\{\})|\s|$)/, "liminf")
-    str.gsub!(/\\limsup((\{\})|\s|$)/, "limsup")
-    str.gsub!(/\\ln((\{\})|\s|$)/, "ln")
-    str.gsub!(/\\log((\{\})|\s|$)/, "log")
-    str.gsub!(/\\max((\{\})|\s|$)/, "max")
-    str.gsub!(/\\min((\{\})|\s|$)/, "min")
-    str.gsub!(/\\Pr((\{\})|\s|$)/, "Pr")
-    str.gsub!(/\\sec((\{\})|\s|$)/, "sec")
-    str.gsub!(/\\sin((\{\})|\s|$)/, "sin")
-    str.gsub!(/\\sinh((\{\})|\s|$)/, "sinh")
-    str.gsub!(/\\sup((\{\})|\s|$)/, "sup")
-    str.gsub!(/\\tan((\{\})|\s|$)/, "tan")
-    str.gsub!(/\\tanh((\{\})|\s|$)/, "tanh")
-    str.gsub!(/\\bull((\{\})|\s|$)/, "•")
-    str.gsub!(/\\bullet((\{\})|\s|$)/, "•")
-    str.gsub!(/\\star((\{\})|\s|$)/, "⋆")
-    str.gsub!(/\\lowast((\{\})|\s|$)/, "∗")
-    str.gsub!(/\\ast((\{\})|\s|$)/, "*")
-    str.gsub!(/\\odot((\{\})|\s|$)/, "ʘ")
-    str.gsub!(/\\oplus((\{\})|\s|$)/, "⊕")
-    str.gsub!(/\\otimes((\{\})|\s|$)/, "⊗")
-    str.gsub!(/\\checkmark((\{\})|\s|$)/, "✓")
-    str.gsub!(/\\para((\{\})|\s|$)/, "¶")
-    str.gsub!(/\\ordf((\{\})|\s|$)/, "ª")
-    str.gsub!(/\\ordm((\{\})|\s|$)/, "º")
-    str.gsub!(/\\cedil((\{\})|\s|$)/, "¸")
-    str.gsub!(/\\oline((\{\})|\s|$)/, "‾")
-    str.gsub!(/\\uml((\{\})|\s|$)/, "¨")
-    str.gsub!(/\\zwnj((\{\})|\s|$)/, "‌")
-    str.gsub!(/\\zwj((\{\})|\s|$)/, "‍")
-    str.gsub!(/\\lrm((\{\})|\s|$)/, "‎")
-    str.gsub!(/\\rlm((\{\})|\s|$)/, "‏")
-    str.gsub!(/\\smile((\{\})|\s|$)/, "⌣")
-    str.gsub!(/\\smiley((\{\})|\s|$)/, "☺")
-    str.gsub!(/\\blacksmile((\{\})|\s|$)/, "☻")
-    str.gsub!(/\\sad((\{\})|\s|$)/, "☹")
-    str.gsub!(/\\clubs((\{\})|\s|$)/, "♣")
-    str.gsub!(/\\clubsuit((\{\})|\s|$)/, "♣")
-    str.gsub!(/\\spades((\{\})|\s|$)/, "♠")
-    str.gsub!(/\\spadesuit((\{\})|\s|$)/, "♠")
-    str.gsub!(/\\hearts((\{\})|\s|$)/, "♥")
-    str.gsub!(/\\heartsuit((\{\})|\s|$)/, "♥")
-    str.gsub!(/\\diams((\{\})|\s|$)/, "♦")
-    str.gsub!(/\\diamondsuit((\{\})|\s|$)/, "♦")
-    str.gsub!(/\\Diamond((\{\})|\s|$)/, "⋄")
-    str.gsub!(/\\loz((\{\})|\s|$)/, "◊")
+    str.gsub!(/\\Agrave((\{\})|(\s|$))/, "À\\3")
+    str.gsub!(/\\agrave((\{\})|(\s|$))/, "à\\3")
+    str.gsub!(/\\Aacute((\{\})|(\s|$))/, "Á\\3")
+    str.gsub!(/\\aacute((\{\})|(\s|$))/, "á\\3")
+    str.gsub!(/\\Acirc((\{\})|(\s|$))/, "Â\\3")
+    str.gsub!(/\\acirc((\{\})|(\s|$))/, "â\\3")
+    str.gsub!(/\\Atilde((\{\})|(\s|$))/, "Ã\\3")
+    str.gsub!(/\\atilde((\{\})|(\s|$))/, "ã\\3")
+    str.gsub!(/\\Auml((\{\})|(\s|$))/, "Ä\\3")
+    str.gsub!(/\\auml((\{\})|(\s|$))/, "ä\\3")
+    str.gsub!(/\\Aring((\{\})|(\s|$))/, "Å\\3")
+    str.gsub!(/\\AA((\{\})|(\s|$))/, "Å\\3")
+    str.gsub!(/\\aring((\{\})|(\s|$))/, "å\\3")
+    str.gsub!(/\\AElig((\{\})|(\s|$))/, "Æ\\3")
+    str.gsub!(/\\aelig((\{\})|(\s|$))/, "æ\\3")
+    str.gsub!(/\\Ccedil((\{\})|(\s|$))/, "Ç\\3")
+    str.gsub!(/\\ccedil((\{\})|(\s|$))/, "ç\\3")
+    str.gsub!(/\\Egrave((\{\})|(\s|$))/, "È\\3")
+    str.gsub!(/\\egrave((\{\})|(\s|$))/, "è\\3")
+    str.gsub!(/\\Eacute((\{\})|(\s|$))/, "É\\3")
+    str.gsub!(/\\eacute((\{\})|(\s|$))/, "é\\3")
+    str.gsub!(/\\Ecirc((\{\})|(\s|$))/, "Ê\\3")
+    str.gsub!(/\\ecirc((\{\})|(\s|$))/, "ê\\3")
+    str.gsub!(/\\Euml((\{\})|(\s|$))/, "Ë\\3")
+    str.gsub!(/\\euml((\{\})|(\s|$))/, "ë\\3")
+    str.gsub!(/\\Igrave((\{\})|(\s|$))/, "Ì\\3")
+    str.gsub!(/\\igrave((\{\})|(\s|$))/, "ì\\3")
+    str.gsub!(/\\Iacute((\{\})|(\s|$))/, "Í\\3")
+    str.gsub!(/\\iacute((\{\})|(\s|$))/, "í\\3")
+    str.gsub!(/\\Icirc((\{\})|(\s|$))/, "Î\\3")
+    str.gsub!(/\\icirc((\{\})|(\s|$))/, "î\\3")
+    str.gsub!(/\\Iuml((\{\})|(\s|$))/, "Ï\\3")
+    str.gsub!(/\\iuml((\{\})|(\s|$))/, "ï\\3")
+    str.gsub!(/\\Ntilde((\{\})|(\s|$))/, "Ñ\\3")
+    str.gsub!(/\\ntilde((\{\})|(\s|$))/, "ñ\\3")
+    str.gsub!(/\\Ograve((\{\})|(\s|$))/, "Ò\\3")
+    str.gsub!(/\\ograve((\{\})|(\s|$))/, "ò\\3")
+    str.gsub!(/\\Oacute((\{\})|(\s|$))/, "Ó\\3")
+    str.gsub!(/\\oacute((\{\})|(\s|$))/, "ó\\3")
+    str.gsub!(/\\Ocirc((\{\})|(\s|$))/, "Ô\\3")
+    str.gsub!(/\\ocirc((\{\})|(\s|$))/, "ô\\3")
+    str.gsub!(/\\Otilde((\{\})|(\s|$))/, "Õ\\3")
+    str.gsub!(/\\otilde((\{\})|(\s|$))/, "õ\\3")
+    str.gsub!(/\\Ouml((\{\})|(\s|$))/, "Ö\\3")
+    str.gsub!(/\\ouml((\{\})|(\s|$))/, "ö\\3")
+    str.gsub!(/\\Oslash((\{\})|(\s|$))/, "Ø\\3")
+    str.gsub!(/\\oslash((\{\})|(\s|$))/, "ø\\3")
+    str.gsub!(/\\OElig((\{\})|(\s|$))/, "Œ\\3")
+    str.gsub!(/\\oelig((\{\})|(\s|$))/, "œ\\3")
+    str.gsub!(/\\Scaron((\{\})|(\s|$))/, "Š\\3")
+    str.gsub!(/\\scaron((\{\})|(\s|$))/, "š\\3")
+    str.gsub!(/\\szlig((\{\})|(\s|$))/, "ß\\3")
+    str.gsub!(/\\Ugrave((\{\})|(\s|$))/, "Ù\\3")
+    str.gsub!(/\\ugrave((\{\})|(\s|$))/, "ù\\3")
+    str.gsub!(/\\Uacute((\{\})|(\s|$))/, "Ú\\3")
+    str.gsub!(/\\uacute((\{\})|(\s|$))/, "ú\\3")
+    str.gsub!(/\\Ucirc((\{\})|(\s|$))/, "Û\\3")
+    str.gsub!(/\\ucirc((\{\})|(\s|$))/, "û\\3")
+    str.gsub!(/\\Uuml((\{\})|(\s|$))/, "Ü\\3")
+    str.gsub!(/\\uuml((\{\})|(\s|$))/, "ü\\3")
+    str.gsub!(/\\Yacute((\{\})|(\s|$))/, "Ý\\3")
+    str.gsub!(/\\yacute((\{\})|(\s|$))/, "ý\\3")
+    str.gsub!(/\\Yuml((\{\})|(\s|$))/, "Ÿ\\3")
+    str.gsub!(/\\yuml((\{\})|(\s|$))/, "ÿ\\3")
+    str.gsub!(/\\fnof((\{\})|(\s|$))/, "ƒ\\3")
+    str.gsub!(/\\real((\{\})|(\s|$))/, "ℜ\\3")
+    str.gsub!(/\\image((\{\})|(\s|$))/, "ℑ\\3")
+    str.gsub!(/\\weierp((\{\})|(\s|$))/, "℘\\3")
+    str.gsub!(/\\Alpha((\{\})|(\s|$))/, "Α\\3")
+    str.gsub!(/\\alpha((\{\})|(\s|$))/, "α\\3")
+    str.gsub!(/\\Beta((\{\})|(\s|$))/, "Β\\3")
+    str.gsub!(/\\beta((\{\})|(\s|$))/, "β\\3")
+    str.gsub!(/\\Gamma((\{\})|(\s|$))/, "Γ\\3")
+    str.gsub!(/\\gamma((\{\})|(\s|$))/, "γ\\3")
+    str.gsub!(/\\Delta((\{\})|(\s|$))/, "Δ\\3")
+    str.gsub!(/\\delta((\{\})|(\s|$))/, "δ\\3")
+    str.gsub!(/\\Epsilon((\{\})|(\s|$))/, "Ε\\3")
+    str.gsub!(/\\epsilon((\{\})|(\s|$))/, "ε\\3")
+    str.gsub!(/\\varepsilon((\{\})|(\s|$))/, "ε\\3")
+    str.gsub!(/\\Zeta((\{\})|(\s|$))/, "Ζ\\3")
+    str.gsub!(/\\zeta((\{\})|(\s|$))/, "ζ\\3")
+    str.gsub!(/\\Eta((\{\})|(\s|$))/, "Η\\3")
+    str.gsub!(/\\eta((\{\})|(\s|$))/, "η\\3")
+    str.gsub!(/\\Theta((\{\})|(\s|$))/, "Θ\\3")
+    str.gsub!(/\\theta((\{\})|(\s|$))/, "θ\\3")
+    str.gsub!(/\\thetasym((\{\})|(\s|$))/, "ϑ\\3")
+    str.gsub!(/\\vartheta((\{\})|(\s|$))/, "ϑ\\3")
+    str.gsub!(/\\Iota((\{\})|(\s|$))/, "Ι\\3")
+    str.gsub!(/\\iota((\{\})|(\s|$))/, "ι\\3")
+    str.gsub!(/\\Kappa((\{\})|(\s|$))/, "Κ\\3")
+    str.gsub!(/\\kappa((\{\})|(\s|$))/, "κ\\3")
+    str.gsub!(/\\Lambda((\{\})|(\s|$))/, "Λ\\3")
+    str.gsub!(/\\lambda((\{\})|(\s|$))/, "λ\\3")
+    str.gsub!(/\\Mu((\{\})|(\s|$))/, "Μ\\3")
+    str.gsub!(/\\mu((\{\})|(\s|$))/, "μ\\3")
+    str.gsub!(/\\nu((\{\})|(\s|$))/, "ν\\3")
+    str.gsub!(/\\Nu((\{\})|(\s|$))/, "Ν\\3")
+    str.gsub!(/\\Xi((\{\})|(\s|$))/, "Ξ\\3")
+    str.gsub!(/\\xi((\{\})|(\s|$))/, "ξ\\3")
+    str.gsub!(/\\Omicron((\{\})|(\s|$))/, "Ο\\3")
+    str.gsub!(/\\omicron((\{\})|(\s|$))/, "ο\\3")
+    str.gsub!(/\\Pi((\{\})|(\s|$))/, "Π\\3")
+    str.gsub!(/\\pi((\{\})|(\s|$))/, "π\\3")
+    str.gsub!(/\\Rho((\{\})|(\s|$))/, "Ρ\\3")
+    str.gsub!(/\\rho((\{\})|(\s|$))/, "ρ\\3")
+    str.gsub!(/\\Sigma((\{\})|(\s|$))/, "Σ\\3")
+    str.gsub!(/\\sigma((\{\})|(\s|$))/, "σ\\3")
+    str.gsub!(/\\sigmaf((\{\})|(\s|$))/, "ς\\3")
+    str.gsub!(/\\varsigma((\{\})|(\s|$))/, "ς\\3")
+    str.gsub!(/\\Tau((\{\})|(\s|$))/, "Τ\\3")
+    str.gsub!(/\\Upsilon((\{\})|(\s|$))/, "Υ\\3")
+    str.gsub!(/\\upsih((\{\})|(\s|$))/, "ϒ\\3")
+    str.gsub!(/\\upsilon((\{\})|(\s|$))/, "υ\\3")
+    str.gsub!(/\\Phi((\{\})|(\s|$))/, "Φ\\3")
+    str.gsub!(/\\phi((\{\})|(\s|$))/, "φ\\3")
+    str.gsub!(/\\Chi((\{\})|(\s|$))/, "Χ\\3")
+    str.gsub!(/\\chi((\{\})|(\s|$))/, "χ\\3")
+    str.gsub!(/\\acutex((\{\})|(\s|$))/, "𝑥́\\3")
+    str.gsub!(/\\Psi((\{\})|(\s|$))/, "Ψ\\3")
+    str.gsub!(/\\psi((\{\})|(\s|$))/, "ψ\\3")
+    str.gsub!(/\\tau((\{\})|(\s|$))/, "τ\\3")
+    str.gsub!(/\\Omega((\{\})|(\s|$))/, "Ω\\3")
+    str.gsub!(/\\omega((\{\})|(\s|$))/, "ω\\3")
+    str.gsub!(/\\piv((\{\})|(\s|$))/, "ϖ\\3")
+    str.gsub!(/\\partial((\{\})|(\s|$))/, "∂\\3")
+    str.gsub!(/\\alefsym((\{\})|(\s|$))/, "ℵ\\3")
+    str.gsub!(/\\ETH((\{\})|(\s|$))/, "Ð\\3")
+    str.gsub!(/\\eth((\{\})|(\s|$))/, "ð\\3")
+    str.gsub!(/\\THORN((\{\})|(\s|$))/, "Þ\\3")
+    str.gsub!(/\\thorn((\{\})|(\s|$))/, "þ\\3")
+    str.gsub!(/\\dots((\{\})|(\s|$))/, "…\\3")
+    str.gsub!(/\\hellip((\{\})|(\s|$))/, "…\\3")
+    str.gsub!(/\\middot((\{\})|(\s|$))/, "·\\3")
+    str.gsub!(/\\iexcl((\{\})|(\s|$))/, "¡\\3")
+    str.gsub!(/\\iquest((\{\})|(\s|$))/, "¿\\3")
+    str.gsub!(/\\shy((\{\})|(\s|$))/, "\\3")
+    str.gsub!(/\\ndash((\{\})|(\s|$))/, "–\\3")
+    str.gsub!(/\\mdash((\{\})|(\s|$))/, "—\\3")
+    str.gsub!(/\\quot((\{\})|(\s|$))/, "\"\\3")
+    str.gsub!(/\\acute((\{\})|(\s|$))/, "´\\3")
+    str.gsub!(/\\ldquo((\{\})|(\s|$))/, "“\\3")
+    str.gsub!(/\\rdquo((\{\})|(\s|$))/, "”\\3")
+    str.gsub!(/\\bdquo((\{\})|(\s|$))/, "„\\3")
+    str.gsub!(/\\lsquo((\{\})|(\s|$))/, "‘\\3")
+    str.gsub!(/\\rsquo((\{\})|(\s|$))/, "’\\3")
+    str.gsub!(/\\sbquo((\{\})|(\s|$))/, "‚\\3")
+    str.gsub!(/\\laquo((\{\})|(\s|$))/, "«\\3")
+    str.gsub!(/\\raquo((\{\})|(\s|$))/, "»\\3")
+    str.gsub!(/\\lsaquo((\{\})|(\s|$))/, "‹\\3")
+    str.gsub!(/\\rsaquo((\{\})|(\s|$))/, "›\\3")
+    str.gsub!(/\\circ((\{\})|(\s|$))/, "ˆ\\3")
+    str.gsub!(/\\vert((\{\})|(\s|$))/, "|\\3")
+    str.gsub!(/\\brvbar((\{\})|(\s|$))/, "¦\\3")
+    str.gsub!(/\\sect((\{\})|(\s|$))/, "§\\3")
+    str.gsub!(/\\amp((\{\})|(\s|$))/, "&\\3")
+    str.gsub!(/\\lt((\{\})|(\s|$))/, "<\\3")
+    str.gsub!(/\\gt((\{\})|(\s|$))/, ">\\3")
+    str.gsub!(/\\tilde((\{\})|(\s|$))/, "~\\3")
+    str.gsub!(/\\dagger((\{\})|(\s|$))/, "†\\3")
+    str.gsub!(/\\Dagger((\{\})|(\s|$))/, "‡\\3")
+    str.gsub!(/\\nbsp((\{\})|(\s|$))/, " \\3")
+    str.gsub!(/\\ensp((\{\})|(\s|$))/, " \\3")
+    str.gsub!(/\\emsp((\{\})|(\s|$))/, " \\3")
+    str.gsub!(/\\thinsp((\{\})|(\s|$))/, " \\3")
+    str.gsub!(/\\curren((\{\})|(\s|$))/, "¤\\3")
+    str.gsub!(/\\cent((\{\})|(\s|$))/, "¢\\3")
+    str.gsub!(/\\pound((\{\})|(\s|$))/, "£\\3")
+    str.gsub!(/\\yen((\{\})|(\s|$))/, "¥\\3")
+    str.gsub!(/\\euro((\{\})|(\s|$))/, "€\\3")
+    str.gsub!(/\\EUR((\{\})|(\s|$))/, "€\\3")
+    str.gsub!(/\\EURdig((\{\})|(\s|$))/, "€\\3")
+    str.gsub!(/\\EURhv((\{\})|(\s|$))/, "€\\3")
+    str.gsub!(/\\EURcr((\{\})|(\s|$))/, "€\\3")
+    str.gsub!(/\\EURtm((\{\})|(\s|$))/, "€\\3")
+    str.gsub!(/\\copy((\{\})|(\s|$))/, "©\\3")
+    str.gsub!(/\\reg((\{\})|(\s|$))/, "®\\3")
+    str.gsub!(/\\trade((\{\})|(\s|$))/, "™\\3")
+    str.gsub!(/\\minus((\{\})|(\s|$))/, "−\\3")
+    str.gsub!(/\\pm((\{\})|(\s|$))/, "±\\3")
+    str.gsub!(/\\plusmn((\{\})|(\s|$))/, "±\\3")
+    str.gsub!(/\\times((\{\})|(\s|$))/, "×\\3")
+    str.gsub!(/\\frasl((\{\})|(\s|$))/, "⁄\\3")
+    str.gsub!(/\\div((\{\})|(\s|$))/, "÷\\3")
+    str.gsub!(/\\frac12((\{\})|(\s|$))/, "½\\3")
+    str.gsub!(/\\frac14((\{\})|(\s|$))/, "¼\\3")
+    str.gsub!(/\\frac34((\{\})|(\s|$))/, "¾\\3")
+    str.gsub!(/\\permil((\{\})|(\s|$))/, "‰\\3")
+    str.gsub!(/\\sup1((\{\})|(\s|$))/, "¹\\3")
+    str.gsub!(/\\sup2((\{\})|(\s|$))/, "²\\3")
+    str.gsub!(/\\sup3((\{\})|(\s|$))/, "³\\3")
+    str.gsub!(/\\radic((\{\})|(\s|$))/, "√\\3")
+    str.gsub!(/\\sum((\{\})|(\s|$))/, "∑\\3")
+    str.gsub!(/\\prod((\{\})|(\s|$))/, "∏\\3")
+    str.gsub!(/\\micro((\{\})|(\s|$))/, "µ\\3")
+    str.gsub!(/\\macr((\{\})|(\s|$))/, "¯\\3")
+    str.gsub!(/\\deg((\{\})|(\s|$))/, "°\\3")
+    str.gsub!(/\\prime((\{\})|(\s|$))/, "′\\3")
+    str.gsub!(/\\Prime((\{\})|(\s|$))/, "″\\3")
+    str.gsub!(/\\infin((\{\})|(\s|$))/, "∞\\3")
+    str.gsub!(/\\infty((\{\})|(\s|$))/, "∞\\3")
+    str.gsub!(/\\prop((\{\})|(\s|$))/, "∝\\3")
+    str.gsub!(/\\proptp((\{\})|(\s|$))/, "∝\\3")
+    str.gsub!(/\\not((\{\})|(\s|$))/, "¬\\3")
+    str.gsub!(/\\land((\{\})|(\s|$))/, "∧\\3")
+    str.gsub!(/\\wedge((\{\})|(\s|$))/, "∧\\3")
+    str.gsub!(/\\lor((\{\})|(\s|$))/, "∨\\3")
+    str.gsub!(/\\vee((\{\})|(\s|$))/, "∨\\3")
+    str.gsub!(/\\cap((\{\})|(\s|$))/, "∩\\3")
+    str.gsub!(/\\cup((\{\})|(\s|$))/, "∪\\3")
+    str.gsub!(/\\int((\{\})|(\s|$))/, "∫\\3")
+    str.gsub!(/\\there4((\{\})|(\s|$))/, "∴\\3")
+    str.gsub!(/\\sim((\{\})|(\s|$))/, "∼\\3")
+    str.gsub!(/\\cong((\{\})|(\s|$))/, "≅\\3")
+    str.gsub!(/\\simeq((\{\})|(\s|$))/, "≅\\3")
+    str.gsub!(/\\asymp((\{\})|(\s|$))/, "≈\\3")
+    str.gsub!(/\\approx((\{\})|(\s|$))/, "≈\\3")
+    str.gsub!(/\\ne((\{\})|(\s|$))/, "≠\\3")
+    str.gsub!(/\\neq((\{\})|(\s|$))/, "≠\\3")
+    str.gsub!(/\\equiv((\{\})|(\s|$))/, "≡\\3")
+    str.gsub!(/\\le((\{\})|(\s|$))/, "≤\\3")
+    str.gsub!(/\\ge((\{\})|(\s|$))/, "≥\\3")
+    str.gsub!(/\\sub((\{\})|(\s|$))/, "⊂\\3")
+    str.gsub!(/\\subset((\{\})|(\s|$))/, "⊂\\3")
+    str.gsub!(/\\sup((\{\})|(\s|$))/, "⊃\\3")
+    str.gsub!(/\\supset((\{\})|(\s|$))/, "⊃\\3")
+    str.gsub!(/\\nsub((\{\})|(\s|$))/, "⊄\\3")
+    str.gsub!(/\\sube((\{\})|(\s|$))/, "⊆\\3")
+    str.gsub!(/\\nsup((\{\})|(\s|$))/, "⊅\\3")
+    str.gsub!(/\\supe((\{\})|(\s|$))/, "⊇\\3")
+    str.gsub!(/\\forall((\{\})|(\s|$))/, "∀\\3")
+    str.gsub!(/\\exist((\{\})|(\s|$))/, "∃\\3")
+    str.gsub!(/\\exists((\{\})|(\s|$))/, "∃\\3")
+    str.gsub!(/\\empty((\{\})|(\s|$))/, "∅\\3")
+    str.gsub!(/\\emptyset((\{\})|(\s|$))/, "∅\\3")
+    str.gsub!(/\\isin((\{\})|(\s|$))/, "∈\\3")
+    str.gsub!(/\\in((\{\})|(\s|$))/, "∈\\3")
+    str.gsub!(/\\notin((\{\})|(\s|$))/, "∉\\3")
+    str.gsub!(/\\ni((\{\})|(\s|$))/, "∋\\3")
+    str.gsub!(/\\nabla((\{\})|(\s|$))/, "∇\\3")
+    str.gsub!(/\\ang((\{\})|(\s|$))/, "∠\\3")
+    str.gsub!(/\\angle((\{\})|(\s|$))/, "∠\\3")
+    str.gsub!(/\\perp((\{\})|(\s|$))/, "⊥\\3")
+    str.gsub!(/\\sdot((\{\})|(\s|$))/, "⋅\\3")
+    str.gsub!(/\\cdot((\{\})|(\s|$))/, "⋅\\3")
+    str.gsub!(/\\lceil((\{\})|(\s|$))/, "⌈\\3")
+    str.gsub!(/\\rceil((\{\})|(\s|$))/, "⌉\\3")
+    str.gsub!(/\\lfloor((\{\})|(\s|$))/, "⌊\\3")
+    str.gsub!(/\\rfloor((\{\})|(\s|$))/, "⌋\\3")
+    str.gsub!(/\\lang((\{\})|(\s|$))/, "⟨\\3")
+    str.gsub!(/\\rang((\{\})|(\s|$))/, "⟩\\3")
+    str.gsub!(/\\larr((\{\})|(\s|$))/, "←\\3")
+    str.gsub!(/\\leftarrow((\{\})|(\s|$))/, "←\\3")
+    str.gsub!(/\\gets((\{\})|(\s|$))/, "←\\3")
+    str.gsub!(/\\lArr((\{\})|(\s|$))/, "⇐\\3")
+    str.gsub!(/\\Leftarrow((\{\})|(\s|$))/, "⇐\\3")
+    str.gsub!(/\\uarr((\{\})|(\s|$))/, "↑\\3")
+    str.gsub!(/\\uparrow((\{\})|(\s|$))/, "↑\\3")
+    str.gsub!(/\\uArr((\{\})|(\s|$))/, "⇑\\3")
+    str.gsub!(/\\Uparrow((\{\})|(\s|$))/, "⇑\\3")
+    str.gsub!(/\\rarr((\{\})|(\s|$))/, "→\\3")
+    str.gsub!(/\\to((\{\})|(\s|$))/, "→\\3")
+    str.gsub!(/\\rightarrow((\{\})|(\s|$))/, "→\\3")
+    str.gsub!(/\\rArr((\{\})|(\s|$))/, "⇒\\3")
+    str.gsub!(/\\Rightarrow((\{\})|(\s|$))/, "⇒\\3")
+    str.gsub!(/\\darr((\{\})|(\s|$))/, "↓\\3")
+    str.gsub!(/\\downarrow((\{\})|(\s|$))/, "↓\\3")
+    str.gsub!(/\\dArr((\{\})|(\s|$))/, "⇓\\3")
+    str.gsub!(/\\Downarrow((\{\})|(\s|$))/, "⇓\\3")
+    str.gsub!(/\\harr((\{\})|(\s|$))/, "↔\\3")
+    str.gsub!(/\\leftrightarrow((\{\})|(\s|$))/, "↔\\3")
+    str.gsub!(/\\hArr((\{\})|(\s|$))/, "⇔\\3")
+    str.gsub!(/\\Leftrightarrow((\{\})|(\s|$))/, "⇔\\3")
+    str.gsub!(/\\crarr((\{\})|(\s|$))/, "↵\\3")
+    str.gsub!(/\\hookleftarrow((\{\})|(\s|$))/, "↵\\3")
+    str.gsub!(/\\arccos((\{\})|(\s|$))/, "arccos\\3")
+    str.gsub!(/\\arcsin((\{\})|(\s|$))/, "arcsin\\3")
+    str.gsub!(/\\arctan((\{\})|(\s|$))/, "arctan\\3")
+    str.gsub!(/\\arg((\{\})|(\s|$))/, "arg\\3")
+    str.gsub!(/\\cos((\{\})|(\s|$))/, "cos\\3")
+    str.gsub!(/\\cosh((\{\})|(\s|$))/, "cosh\\3")
+    str.gsub!(/\\cot((\{\})|(\s|$))/, "cot\\3")
+    str.gsub!(/\\coth((\{\})|(\s|$))/, "coth\\3")
+    str.gsub!(/\\csc((\{\})|(\s|$))/, "csc\\3")
+    str.gsub!(/\\deg((\{\})|(\s|$))/, "deg\\3")
+    str.gsub!(/\\det((\{\})|(\s|$))/, "det\\3")
+    str.gsub!(/\\dim((\{\})|(\s|$))/, "dim\\3")
+    str.gsub!(/\\exp((\{\})|(\s|$))/, "exp\\3")
+    str.gsub!(/\\gcd((\{\})|(\s|$))/, "gcd\\3")
+    str.gsub!(/\\hom((\{\})|(\s|$))/, "hom\\3")
+    str.gsub!(/\\inf((\{\})|(\s|$))/, "inf\\3")
+    str.gsub!(/\\ker((\{\})|(\s|$))/, "ker\\3")
+    str.gsub!(/\\lg((\{\})|(\s|$))/, "lg\\3")
+    str.gsub!(/\\lim((\{\})|(\s|$))/, "lim\\3")
+    str.gsub!(/\\liminf((\{\})|(\s|$))/, "liminf\\3")
+    str.gsub!(/\\limsup((\{\})|(\s|$))/, "limsup\\3")
+    str.gsub!(/\\ln((\{\})|(\s|$))/, "ln\\3")
+    str.gsub!(/\\log((\{\})|(\s|$))/, "log\\3")
+    str.gsub!(/\\max((\{\})|(\s|$))/, "max\\3")
+    str.gsub!(/\\min((\{\})|(\s|$))/, "min\\3")
+    str.gsub!(/\\Pr((\{\})|(\s|$))/, "Pr\\3")
+    str.gsub!(/\\sec((\{\})|(\s|$))/, "sec\\3")
+    str.gsub!(/\\sin((\{\})|(\s|$))/, "sin\\3")
+    str.gsub!(/\\sinh((\{\})|(\s|$))/, "sinh\\3")
+    str.gsub!(/\\sup((\{\})|(\s|$))/, "sup\\3")
+    str.gsub!(/\\tan((\{\})|(\s|$))/, "tan\\3")
+    str.gsub!(/\\tanh((\{\})|(\s|$))/, "tanh\\3")
+    str.gsub!(/\\bull((\{\})|(\s|$))/, "•\\3")
+    str.gsub!(/\\bullet((\{\})|(\s|$))/, "•\\3")
+    str.gsub!(/\\star((\{\})|(\s|$))/, "⋆\\3")
+    str.gsub!(/\\lowast((\{\})|(\s|$))/, "∗\\3")
+    str.gsub!(/\\ast((\{\})|(\s|$))/, "*\\3")
+    str.gsub!(/\\odot((\{\})|(\s|$))/, "ʘ\\3")
+    str.gsub!(/\\oplus((\{\})|(\s|$))/, "⊕\\3")
+    str.gsub!(/\\otimes((\{\})|(\s|$))/, "⊗\\3")
+    str.gsub!(/\\checkmark((\{\})|(\s|$))/, "✓\\3")
+    str.gsub!(/\\para((\{\})|(\s|$))/, "¶\\3")
+    str.gsub!(/\\ordf((\{\})|(\s|$))/, "ª\\3")
+    str.gsub!(/\\ordm((\{\})|(\s|$))/, "º\\3")
+    str.gsub!(/\\cedil((\{\})|(\s|$))/, "¸\\3")
+    str.gsub!(/\\oline((\{\})|(\s|$))/, "‾\\3")
+    str.gsub!(/\\uml((\{\})|(\s|$))/, "¨\\3")
+    str.gsub!(/\\zwnj((\{\})|(\s|$))/, "‌\\3")
+    str.gsub!(/\\zwj((\{\})|(\s|$))/, "‍\\3")
+    str.gsub!(/\\lrm((\{\})|(\s|$))/, "‎\\3")
+    str.gsub!(/\\rlm((\{\})|(\s|$))/, "‏\\3")
+    str.gsub!(/\\smile((\{\})|(\s|$))/, "⌣\\3")
+    str.gsub!(/\\smiley((\{\})|(\s|$))/, "☺\\3")
+    str.gsub!(/\\blacksmile((\{\})|(\s|$))/, "☻\\3")
+    str.gsub!(/\\sad((\{\})|(\s|$))/, "☹\\3")
+    str.gsub!(/\\clubs((\{\})|(\s|$))/, "♣\\3")
+    str.gsub!(/\\clubsuit((\{\})|(\s|$))/, "♣\\3")
+    str.gsub!(/\\spades((\{\})|(\s|$))/, "♠\\3")
+    str.gsub!(/\\spadesuit((\{\})|(\s|$))/, "♠\\3")
+    str.gsub!(/\\hearts((\{\})|(\s|$))/, "♥\\3")
+    str.gsub!(/\\heartsuit((\{\})|(\s|$))/, "♥\\3")
+    str.gsub!(/\\diams((\{\})|(\s|$))/, "♦\\3")
+    str.gsub!(/\\diamondsuit((\{\})|(\s|$))/, "♦\\3")
+    str.gsub!(/\\Diamond((\{\})|(\s|$))/, "⋄\\3")
+    str.gsub!(/\\loz((\{\})|(\s|$))/, "◊\\3")
   end
 end # module Orgmode
diff --git a/util/gen-special-replace.el b/util/gen-special-replace.el
index c4598f4..84a0171 100644
--- a/util/gen-special-replace.el
+++ b/util/gen-special-replace.el
@@ -17,7 +17,7 @@
         (let ((symb (nth to entity)))
           (when (or (string= symb "\"") (string= symb "\\"))
             (setq symb (concat "\\" symb)))
-          (insert "    str.gsub!(/\\\\" (car entity) "((\\{\\})|\\s|$)/, \"" symb "\")\n"))))
+          (insert "    str.gsub!(/\\\\" (car entity) "((\\{\\})|(\\s|$))/, \"" symb "\\\\3\")\n"))))
     (insert "  end\n")))
 
 (defun generate-replace (file-name what)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-org.git



More information about the Pkg-ruby-extras-commits mailing list