Browse Source

Implement new entity family "\...."

* lisp/org-element.el (org-element--set-regexps):
(org-element-entity-parser): Update regexps for entities.

* lisp/org-entities.el (org-entities): Add new entities.

* lisp/org.el (org-fontify-entities): Add comment.

* etc/ORG-NEWS (title): Introduce new entities.

"\..." are used to insert an arbitrary number of spaces in various
back-ends.  In particular, this family can be used to introduce
leading spaces within table cells.

Also, unlike to other entities, these can be used mid-word, e.g.,

  wo\....rd

Curly brackets can still be added before a dot, e.g.,

  This is the end\...{}.
Nicolas Goaziou 10 years ago
parent
commit
22f942b481
4 changed files with 462 additions and 435 deletions
  1. 12 0
      etc/ORG-NEWS
  2. 2 2
      lisp/org-element.el
  3. 445 433
      lisp/org-entities.el
  4. 3 0
      lisp/org.el

+ 12 - 0
etc/ORG-NEWS

@@ -316,6 +316,18 @@ It is now possible to supply and optional formatting argument to
 *** New option ~org-export-with-title~
 It is possible to suppress the title insertion with ~#+OPTIONS:
 title:nil~ or globally using the variable ~org-export-with-title~.
+*** New entities family: "\...."
+"\..." are used to insert up to 20 contiguous spaces in various
+back-ends.  In particular, this family can be used to introduce
+leading spaces within table cells.
+
+Also, unlike to other entities, these can be used mid-word, e.g.,
+
+  wo\..rd
+
+Curly brackets can still be added before a dot, e.g.,
+
+  This is the end\...{}.
 *** New MathJax configuration options.
 Org uses the MathJax CDN by default.  See the manual and the docstring
 of ~org-html-mathjax-options~ for details.

+ 2 - 2
lisp/org-element.el

@@ -207,7 +207,7 @@ specially in `org-element--object-lex'.")
 		      "\\$"
 		      ;; Objects starting with "\": line break,
 		      ;; entity, latex fragment.
-		      "\\\\\\(?:[a-zA-Z[(]\\|\\\\[ \t]*$\\)"
+		      "\\\\\\(?:[a-zA-Z[(.]\\|\\\\[ \t]*$\\)"
 		      ;; Objects starting with raw text: inline Babel
 		      ;; source block, inline Babel call.
 		      "\\(?:call\\|src\\)_"))
@@ -2722,7 +2722,7 @@ a plist with `:begin', `:end', `:latex', `:latex-math-p',
 
 Assume point is at the beginning of the entity."
   (catch 'no-object
-    (when (looking-at "\\\\\\(there4\\|sup[123]\\|frac[13][24]\\|[a-zA-Z]+\\)\\($\\|{}\\|[^[:alpha:]]\\)")
+    (when (looking-at "\\\\\\(?:\\(\\.+\\)\\({}\\)?\\|\\(there4\\|sup[123]\\|frac[13][24]\\|[a-zA-Z]+\\)\\($\\|{}\\|[^[:alpha:]]\\)\\)")
       (save-excursion
 	(let* ((value (or (org-entity-get (match-string 1))
 			  (throw 'no-object nil)))

+ 445 - 433
lisp/org-entities.el

@@ -84,439 +84,451 @@ packages to be loaded, add these packages to `org-latex-packages-alist'."
   :safe #'org-entities--user-safe-p)
 
 (defconst org-entities
-  '(
-    "* Letters"
-    "** Latin"
-    ("Agrave" "\\`{A}" nil "À" "A" "À" "À")
-    ("agrave" "\\`{a}" nil "à" "a" "à" "à")
-    ("Aacute" "\\'{A}" nil "Á" "A" "Á" "Á")
-    ("aacute" "\\'{a}" nil "á" "a" "á" "á")
-    ("Acirc" "\\^{A}" nil "Â" "A" "Â" "Â")
-    ("acirc" "\\^{a}" nil "â" "a" "â" "â")
-    ("Atilde" "\\~{A}" nil "Ã" "A" "Ã" "Ã")
-    ("atilde" "\\~{a}" nil "ã" "a" "ã" "ã")
-    ("Auml" "\\\"{A}" nil "Ä" "Ae" "Ä" "Ä")
-    ("auml" "\\\"{a}" nil "ä" "ae" "ä" "ä")
-    ("Aring" "\\AA{}" nil "Å" "A" "Å" "Å")
-    ("AA" "\\AA{}" nil "Å" "A" "Å" "Å")
-    ("aring" "\\aa{}" nil "å" "a" "å" "å")
-    ("AElig" "\\AE{}" nil "Æ" "AE" "Æ" "Æ")
-    ("aelig" "\\ae{}" nil "æ" "ae" "æ" "æ")
-    ("Ccedil" "\\c{C}" nil "Ç" "C" "Ç" "Ç")
-    ("ccedil" "\\c{c}" nil "ç" "c" "ç" "ç")
-    ("Egrave" "\\`{E}" nil "È" "E" "È" "È")
-    ("egrave" "\\`{e}" nil "è" "e" "è" "è")
-    ("Eacute" "\\'{E}" nil "É" "E" "É" "É")
-    ("eacute" "\\'{e}" nil "é" "e" "é" "é")
-    ("Ecirc" "\\^{E}" nil "Ê" "E" "Ê" "Ê")
-    ("ecirc" "\\^{e}" nil "ê" "e" "ê" "ê")
-    ("Euml" "\\\"{E}" nil "Ë" "E" "Ë" "Ë")
-    ("euml" "\\\"{e}" nil "ë" "e" "ë" "ë")
-    ("Igrave" "\\`{I}" nil "Ì" "I" "Ì" "Ì")
-    ("igrave" "\\`{i}" nil "ì" "i" "ì" "ì")
-    ("Iacute" "\\'{I}" nil "Í" "I" "Í" "Í")
-    ("iacute" "\\'{i}" nil "í" "i" "í" "í")
-    ("Icirc" "\\^{I}" nil "Î" "I" "Î" "Î")
-    ("icirc" "\\^{i}" nil "î" "i" "î" "î")
-    ("Iuml" "\\\"{I}" nil "Ï" "I" "Ï" "Ï")
-    ("iuml" "\\\"{i}" nil "ï" "i" "ï" "ï")
-    ("Ntilde" "\\~{N}" nil "Ñ" "N" "Ñ" "Ñ")
-    ("ntilde" "\\~{n}" nil "ñ" "n" "ñ" "ñ")
-    ("Ograve" "\\`{O}" nil "Ò" "O" "Ò" "Ò")
-    ("ograve" "\\`{o}" nil "ò" "o" "ò" "ò")
-    ("Oacute" "\\'{O}" nil "Ó" "O" "Ó" "Ó")
-    ("oacute" "\\'{o}" nil "ó" "o" "ó" "ó")
-    ("Ocirc" "\\^{O}" nil "Ô" "O" "Ô" "Ô")
-    ("ocirc" "\\^{o}" nil "ô" "o" "ô" "ô")
-    ("Otilde" "\\~{O}" nil "Õ" "O" "Õ" "Õ")
-    ("otilde" "\\~{o}" nil "õ" "o" "õ" "õ")
-    ("Ouml" "\\\"{O}" nil "Ö" "Oe" "Ö" "Ö")
-    ("ouml" "\\\"{o}" nil "ö" "oe" "ö" "ö")
-    ("Oslash" "\\O" nil "Ø" "O" "Ø" "Ø")
-    ("oslash" "\\o{}" nil "ø" "o" "ø" "ø")
-    ("OElig" "\\OE{}" nil "Œ" "OE" "OE" "Œ")
-    ("oelig" "\\oe{}" nil "œ" "oe" "oe" "œ")
-    ("Scaron" "\\v{S}" nil "Š" "S" "S" "Š")
-    ("scaron" "\\v{s}" nil "š" "s" "s" "š")
-    ("szlig" "\\ss{}" nil "ß" "ss" "ß" "ß")
-    ("Ugrave" "\\`{U}" nil "Ù" "U" "Ù" "Ù")
-    ("ugrave" "\\`{u}" nil "ù" "u" "ù" "ù")
-    ("Uacute" "\\'{U}" nil "Ú" "U" "Ú" "Ú")
-    ("uacute" "\\'{u}" nil "ú" "u" "ú" "ú")
-    ("Ucirc" "\\^{U}" nil "Û" "U" "Û" "Û")
-    ("ucirc" "\\^{u}" nil "û" "u" "û" "û")
-    ("Uuml" "\\\"{U}" nil "Ü" "Ue" "Ü" "Ü")
-    ("uuml" "\\\"{u}" nil "ü" "ue" "ü" "ü")
-    ("Yacute" "\\'{Y}" nil "Ý" "Y" "Ý" "Ý")
-    ("yacute" "\\'{y}" nil "ý" "y" "ý" "ý")
-    ("Yuml" "\\\"{Y}" nil "Ÿ" "Y" "Y" "Ÿ")
-    ("yuml" "\\\"{y}" nil "ÿ" "y" "ÿ" "ÿ")
-
-    "** Latin (special face)"
-    ("fnof" "\\textit{f}" nil "ƒ" "f" "f" "ƒ")
-    ("real" "\\Re" t "ℜ" "R" "R" "ℜ")
-    ("image" "\\Im" t "ℑ" "I" "I" "ℑ")
-    ("weierp" "\\wp" t "℘" "P" "P" "℘")
-    ("ell" "\\ell" t "ℓ" "ell" "ell" "ℓ")
-    ("imath" "\\imath" t "ı" "[dotless i]" "dotless i" "ı")
-    ("jmath" "\\jmath" t "ȷ" "[dotless j]" "dotless j" "ȷ")
-
-    "** Greek"
-    ("Alpha" "A" nil "Α" "Alpha" "Alpha" "Α")
-    ("alpha" "\\alpha" t "α" "alpha" "alpha" "α")
-    ("Beta" "B" nil "Β" "Beta" "Beta" "Β")
-    ("beta" "\\beta" t "β" "beta" "beta" "β")
-    ("Gamma" "\\Gamma" t "Γ" "Gamma" "Gamma" "Γ")
-    ("gamma" "\\gamma" t "γ" "gamma" "gamma" "γ")
-    ("Delta" "\\Delta" t "Δ" "Delta" "Gamma" "Δ")
-    ("delta" "\\delta" t "δ" "delta" "delta" "δ")
-    ("Epsilon" "E" nil "Ε" "Epsilon" "Epsilon" "Ε")
-    ("epsilon" "\\epsilon" t "ε" "epsilon" "epsilon" "ε")
-    ("varepsilon" "\\varepsilon" t "ε" "varepsilon" "varepsilon" "ε")
-    ("Zeta" "Z" nil "Ζ" "Zeta" "Zeta" "Ζ")
-    ("zeta" "\\zeta" t "ζ" "zeta" "zeta" "ζ")
-    ("Eta" "H" nil "Η" "Eta" "Eta" "Η")
-    ("eta" "\\eta" t "η" "eta" "eta" "η")
-    ("Theta" "\\Theta" t "Θ" "Theta" "Theta" "Θ")
-    ("theta" "\\theta" t "θ" "theta" "theta" "θ")
-    ("thetasym" "\\vartheta" t "ϑ" "theta" "theta" "ϑ")
-    ("vartheta" "\\vartheta" t "ϑ" "theta" "theta" "ϑ")
-    ("Iota" "I" nil "Ι" "Iota" "Iota" "Ι")
-    ("iota" "\\iota" t "ι" "iota" "iota" "ι")
-    ("Kappa" "K" nil "Κ" "Kappa" "Kappa" "Κ")
-    ("kappa" "\\kappa" t "κ" "kappa" "kappa" "κ")
-    ("Lambda" "\\Lambda" t "Λ" "Lambda" "Lambda" "Λ")
-    ("lambda" "\\lambda" t "λ" "lambda" "lambda" "λ")
-    ("Mu" "M" nil "Μ" "Mu" "Mu" "Μ")
-    ("mu" "\\mu" t "μ" "mu" "mu" "μ")
-    ("nu" "\\nu" t "ν" "nu" "nu" "ν")
-    ("Nu" "N" nil "Ν" "Nu" "Nu" "Ν")
-    ("Xi" "\\Xi" t "Ξ" "Xi" "Xi" "Ξ")
-    ("xi" "\\xi" t "ξ" "xi" "xi" "ξ")
-    ("Omicron" "O" nil "Ο" "Omicron" "Omicron" "Ο")
-    ("omicron" "\\textit{o}" nil "ο" "omicron" "omicron" "ο")
-    ("Pi" "\\Pi" t "Π" "Pi" "Pi" "Π")
-    ("pi" "\\pi" t "π" "pi" "pi" "π")
-    ("Rho" "P" nil "Ρ" "Rho" "Rho" "Ρ")
-    ("rho" "\\rho" t "ρ" "rho" "rho" "ρ")
-    ("Sigma" "\\Sigma" t "Σ" "Sigma" "Sigma" "Σ")
-    ("sigma" "\\sigma" t "σ" "sigma" "sigma" "σ")
-    ("sigmaf" "\\varsigma" t "ς" "sigmaf" "sigmaf" "ς")
-    ("varsigma" "\\varsigma" t "ς" "varsigma" "varsigma" "ς")
-    ("Tau" "T" nil "Τ" "Tau" "Tau" "Τ")
-    ("Upsilon" "\\Upsilon" t "Υ" "Upsilon" "Upsilon" "Υ")
-    ("upsih" "\\Upsilon" t "ϒ" "upsilon" "upsilon" "ϒ")
-    ("upsilon" "\\upsilon" t "υ" "upsilon" "upsilon" "υ")
-    ("Phi" "\\Phi" t "Φ" "Phi" "Phi" "Φ")
-    ("phi" "\\phi" t "φ" "phi" "phi" "φ")
-    ("varphi" "\\varphi" t "ϕ" "varphi" "varphi" "ɸ")
-    ("Chi" "X" nil "Χ" "Chi" "Chi" "Χ")
-    ("chi" "\\chi" t "χ" "chi" "chi" "χ")
-    ("acutex" "\\acute x" t "´x" "'x" "'x" "𝑥́")
-    ("Psi" "\\Psi" t "Ψ" "Psi" "Psi" "Ψ")
-    ("psi" "\\psi" t "ψ" "psi" "psi" "ψ")
-    ("tau" "\\tau" t "τ" "tau" "tau" "τ")
-    ("Omega" "\\Omega" t "Ω" "Omega" "Omega" "Ω")
-    ("omega" "\\omega" t "ω" "omega" "omega" "ω")
-    ("piv" "\\varpi" t "ϖ" "omega-pi" "omega-pi" "ϖ")
-    ("varpi" "\\varpi" t "ϖ" "omega-pi" "omega-pi" "ϖ")
-    ("partial" "\\partial" t "∂" "[partial differential]" "[partial differential]" "∂")
-
-    "** Hebrew"
-    ("alefsym" "\\aleph" t "ℵ" "aleph" "aleph" "ℵ")
-    ("aleph" "\\aleph" t "ℵ" "aleph" "aleph" "ℵ")
-    ("gimel" "\\gimel" t "ℷ" "gimel" "gimel" "ℷ")
-    ("beth" "\\beth" t "ℶ" "beth" "beth" "ב")
-    ("dalet" "\\daleth" t "ℸ" "dalet" "dalet" "ד")
-
-    "** Dead languages"
-    ("ETH" "\\DH{}" nil "Ð" "D" "Ð" "Ð")
-    ("eth" "\\dh{}" nil "ð" "dh" "ð" "ð")
-    ("THORN" "\\TH{}" nil "Þ" "TH" "Þ" "Þ")
-    ("thorn" "\\th{}" nil "þ" "th" "þ" "þ")
-
-    "* Punctuation"
-    "** Dots and Marks"
-    ("dots" "\\dots{}" nil "…" "..." "..." "…")
-    ("cdots" "\\cdots{}" t "⋯" "..." "..." "⋯")
-    ("hellip" "\\dots{}" nil "…" "..." "..." "…")
-    ("middot" "\\textperiodcentered{}" nil "·" "." "·" "·")
-    ("iexcl" "!`" nil "¡" "!" "¡" "¡")
-    ("iquest" "?`" nil "¿" "?" "¿" "¿")
-
-    "** Dash-like"
-    ("shy" "\\-" nil "­" "" "" "")
-    ("ndash" "--" nil "–" "-" "-" "–")
-    ("mdash" "---" nil "—" "--" "--" "—")
-
-    "** Quotations"
-    ("quot" "\\textquotedbl{}" nil """ "\"" "\"" "\"")
-    ("acute" "\\textasciiacute{}" nil "´" "'" "´" "´")
-    ("ldquo" "\\textquotedblleft{}" nil "“" "\"" "\"" "“")
-    ("rdquo" "\\textquotedblright{}" nil "”" "\"" "\"" "”")
-    ("bdquo" "\\quotedblbase{}" nil "„" "\"" "\"" "„")
-    ("lsquo" "\\textquoteleft{}" nil "‘" "`" "`" "‘")
-    ("rsquo" "\\textquoteright{}" nil "’" "'" "'" "’")
-    ("sbquo" "\\quotesinglbase{}" nil "‚" "," "," "‚")
-    ("laquo" "\\guillemotleft{}" nil "&laquo;" "<<" "«" "«")
-    ("raquo" "\\guillemotright{}" nil "&raquo;" ">>" "»" "»")
-    ("lsaquo" "\\guilsinglleft{}" nil "&lsaquo;" "<" "<" "‹")
-    ("rsaquo" "\\guilsinglright{}" nil "&rsaquo;" ">" ">" "›")
-
-    "* Other"
-    "** Misc. (often used)"
-    ("circ" "\\^{}" nil "&circ;" "^" "^" "ˆ")
-    ("vert" "\\vert{}" t "&vert;" "|" "|" "|")
-    ("brvbar" "\\textbrokenbar{}" nil "&brvbar;" "|" "¦" "¦")
-    ("S" "\\S" nil "&sect;" "paragraph" "§" "§")
-    ("sect" "\\S" nil "&sect;" "paragraph" "§" "§")
-    ("amp" "\\&" nil "&amp;" "&" "&" "&")
-    ("lt" "\\textless{}" nil "&lt;" "<" "<" "<")
-    ("gt" "\\textgreater{}" nil "&gt;" ">" ">" ">")
-    ("tilde" "\\textasciitilde{}" nil "~" "~" "~" "~")
-    ("slash" "/" nil "/" "/" "/" "/")
-    ("plus" "+" nil "+" "+" "+" "+")
-    ("under" "\\_" nil "_" "_" "_" "_")
-    ("equal" "=" nil "=" "=" "=" "=")
-    ("asciicirc" "\\textasciicircum{}" nil "^" "^" "^" "^")
-    ("dagger" "\\textdagger{}" nil "&dagger;" "[dagger]" "[dagger]" "†")
-    ("dag" "\\dag{}" nil "&dagger;" "[dagger]" "[dagger]" "†")
-    ("Dagger" "\\textdaggerdbl{}" nil "&Dagger;" "[doubledagger]" "[doubledagger]" "‡")
-    ("ddag" "\\ddag{}" nil "&Dagger;" "[doubledagger]" "[doubledagger]" "‡")
-
-    "** Whitespace"
-    ("nbsp" "~" nil "&nbsp;" " " " " " ")
-    ("ensp" "\\hspace*{.5em}" nil "&ensp;" " " " " " ")
-    ("emsp" "\\hspace*{1em}" nil "&emsp;" " " " " " ")
-    ("thinsp" "\\hspace*{.2em}" nil "&thinsp;" " " " " " ")
-
-    "** Currency"
-    ("curren" "\\textcurrency{}" nil "&curren;" "curr." "¤" "¤")
-    ("cent" "\\textcent{}" nil "&cent;" "cent" "¢" "¢")
-    ("pound" "\\pounds{}" nil "&pound;" "pound" "£" "£")
-    ("yen" "\\textyen{}" nil "&yen;" "yen" "¥" "¥")
-    ("euro" "\\texteuro{}" nil "&euro;" "EUR" "EUR" "€")
-    ("EUR" "\\EUR{}" nil "&euro;" "EUR" "EUR" "€")
-    ("EURdig" "\\EURdig{}" nil "&euro;" "EUR" "EUR" "€")
-    ("EURhv" "\\EURhv{}" nil "&euro;" "EUR" "EUR" "€")
-    ("EURcr" "\\EURcr{}" nil "&euro;" "EUR" "EUR" "€")
-    ("EURtm" "\\EURtm{}" nil "&euro;" "EUR" "EUR" "€")
-
-    "** Property Marks"
-    ("copy" "\\textcopyright{}" nil "&copy;" "(c)" "©" "©")
-    ("reg" "\\textregistered{}" nil "&reg;" "(r)" "®" "®")
-    ("trade" "\\texttrademark{}" nil "&trade;" "TM" "TM" "™")
-
-    "** Science et al."
-    ("minus" "\\minus" t "&minus;" "-" "-" "−")
-    ("pm" "\\textpm{}" nil "&plusmn;" "+-" "±" "±")
-    ("plusmn" "\\textpm{}" nil "&plusmn;" "+-" "±" "±")
-    ("times" "\\texttimes{}" nil "&times;" "*" "×" "×")
-    ("frasl" "/" nil "&frasl;" "/" "/" "⁄")
-    ("colon" "\\colon" t ":" ":" ":" ":")
-    ("div" "\\textdiv{}" nil "&divide;" "/" "÷" "÷")
-    ("frac12" "\\textonehalf{}" nil "&frac12;" "1/2" "½" "½")
-    ("frac14" "\\textonequarter{}" nil "&frac14;" "1/4" "¼" "¼")
-    ("frac34" "\\textthreequarters{}" nil "&frac34;" "3/4" "¾" "¾")
-    ("permil" "\\textperthousand{}" nil "&permil;" "per thousand" "per thousand" "‰")
-    ("sup1" "\\textonesuperior{}" nil "&sup1;" "^1" "¹" "¹")
-    ("sup2" "\\texttwosuperior{}" nil "&sup2;" "^2" "²" "²")
-    ("sup3" "\\textthreesuperior{}" nil "&sup3;" "^3" "³" "³")
-    ("radic" "\\sqrt{\\,}" t "&radic;" "[square root]" "[square root]" "√")
-    ("sum" "\\sum" t "&sum;" "[sum]" "[sum]" "∑")
-    ("prod" "\\prod" t "&prod;" "[product]" "[n-ary product]" "∏")
-    ("micro" "\\textmu{}" nil "&micro;" "micro" "µ" "µ")
-    ("macr" "\\textasciimacron{}" nil "&macr;" "[macron]" "¯" "¯")
-    ("deg" "\\textdegree{}" nil "&deg;" "degree" "°" "°")
-    ("prime" "\\prime" t "&prime;" "'" "'" "′")
-    ("Prime" "\\prime{}\\prime" t "&Prime;" "''" "''" "″")
-    ("infin" "\\propto" t "&infin;" "[infinity]" "[infinity]" "∞")
-    ("infty" "\\infty" t "&infin;" "[infinity]" "[infinity]" "∞")
-    ("prop" "\\propto" t "&prop;" "[proportional to]" "[proportional to]" "∝")
-    ("propto" "\\propto" t "&prop;" "[proportional to]" "[proportional to]" "∝")
-    ("not" "\\textlnot{}" nil "&not;" "[angled dash]" "¬" "¬")
-    ("neg" "\\neg{}" t "&not;" "[angled dash]" "¬" "¬")
-    ("land" "\\land" t "&and;" "[logical and]" "[logical and]" "∧")
-    ("wedge" "\\wedge" t "&and;" "[logical and]" "[logical and]" "∧")
-    ("lor" "\\lor" t "&or;" "[logical or]" "[logical or]" "∨")
-    ("vee" "\\vee" t "&or;" "[logical or]" "[logical or]" "∨")
-    ("cap" "\\cap" t "&cap;" "[intersection]" "[intersection]" "∩")
-    ("cup" "\\cup" t "&cup;" "[union]" "[union]" "∪")
-    ("int" "\\int" t "&int;" "[integral]" "[integral]" "∫")
-    ("therefore" "\\therefore" t "&there4;" "[therefore]" "[therefore]" "∴")
-    ("there4" "\\therefore" t "&there4;" "[therefore]" "[therefore]" "∴")
-    ("because" "\\because" t "&because;" "[because]" "[because]" "∵")
-    ("sim" "\\sim" t "&sim;" "~" "~" "∼")
-    ("cong" "\\cong" t "&cong;" "[approx. equal to]" "[approx. equal to]" "≅")
-    ("simeq" "\\simeq" t "&cong;"  "[approx. equal to]" "[approx. equal to]" "≅")
-    ("asymp" "\\asymp" t "&asymp;" "[almost equal to]" "[almost equal to]" "≈")
-    ("approx" "\\approx" t "&asymp;" "[almost equal to]" "[almost equal to]" "≈")
-    ("ne" "\\ne" t "&ne;" "[not equal to]" "[not equal to]" "≠")
-    ("neq" "\\neq" t "&ne;" "[not equal to]" "[not equal to]" "≠")
-    ("equiv" "\\equiv" t "&equiv;" "[identical to]" "[identical to]" "≡")
-
-    ("triangleq" "\\triangleq" t "&triangleq;" "[defined to]" "[defined to]" "≜")
-    ("le" "\\le" t "&le;" "<=" "<=" "≤")
-    ("leq" "\\le" t "&le;" "<=" "<=" "≤")
-    ("ge" "\\ge" t "&ge;" ">=" ">=" "≥")
-    ("geq" "\\ge" t "&ge;" ">=" ">=" "≥")
-    ("lessgtr" "\\lessgtr" t "&lessgtr;" "[less than or greater than]" "[less than or greater than]" "≶")
-    ("lesseqgtr" "\\lesseqgtr" t "&lesseqgtr;" "[less than or equal or greater than or equal]" "[less than or equal or greater than or equal]" "⋚")
-    ("ll" "\\ll" t  "&Lt;" "<<" "<<" "≪")
-    ("Ll" "\lll" t "&Ll;" "<<<" "<<<" "⋘")
-    ("lll" "\lll" t "&Ll;" "<<<" "<<<" "⋘")
-    ("gg" "\\gg" t  "&Gt;" ">>" ">>" "≫")
-    ("Gg" "\\ggg" t "&Gg;" ">>>" ">>>" "⋙")
-    ("ggg" "\\ggg" t "&Gg;" ">>>" ">>>" "⋙")
-    ("prec" "\\prec" t "&pr;" "[precedes]" "[precedes]" "≺")
-    ("preceq" "\\preceq" t "&prcue;" "[precedes or equal]" "[precedes or equal]" "≼")
-    ("preccurlyeq" "\\preccurlyeq" t "&prcue;" "[precedes or equal]" "[precedes or equal]" "≼")
-    ("succ" "\\succ" t "&sc;" "[succeeds]" "[succeeds]" "≻")
-    ("succeq" "\\succeq" t "&sccue;" "[succeeds or equal]" "[succeeds or equal]" "≽")
-    ("succcurlyeq" "\\succcurlyeq" t "&sccue;" "[succeeds or equal]" "[succeeds or equal]" "≽")
-    ("sub" "\\subset" t "&sub;" "[subset of]" "[subset of]" "⊂")
-    ("subset" "\\subset" t "&sub;" "[subset of]" "[subset of]" "⊂")
-    ("sup" "\\supset" t "&sup;" "[superset of]" "[superset of]" "⊃")
-    ("supset" "\\supset" t "&sup;" "[superset of]" "[superset of]" "⊃")
-    ("nsub" "\\not\\subset" t "&nsub;" "[not a subset of]" "[not a subset of" "⊄")
-    ("sube" "\\subseteq" t "&sube;" "[subset of or equal to]" "[subset of or equal to]" "⊆")
-    ("nsup" "\\not\\supset" t "&nsup;" "[not a superset of]" "[not a superset of]" "⊅")
-    ("supe" "\\supseteq" t "&supe;" "[superset of or equal to]" "[superset of or equal to]" "⊇")
-    ("setminus" "\\setminus" t "&setminus;" "\" "\" "⧵")
-    ("forall" "\\forall" t "&forall;" "[for all]" "[for all]" "∀")
-    ("exist" "\\exists" t "&exist;" "[there exists]" "[there exists]" "∃")
-    ("exists" "\\exists" t "&exist;" "[there exists]" "[there exists]" "∃")
-    ("nexist" "\\nexists" t "&exist;" "[there does not exists]" "[there does not  exists]" "∄")
-    ("nexists" "\\nexists" t "&exist;" "[there does not exists]" "[there does not  exists]" "∄")
-    ("empty" "\\empty" t "&empty;" "[empty set]" "[empty set]" "∅")
-    ("emptyset" "\\emptyset" t "&empty;" "[empty set]" "[empty set]" "∅")
-    ("isin" "\\in" t "&isin;" "[element of]" "[element of]" "∈")
-    ("in" "\\in" t "&isin;" "[element of]" "[element of]" "∈")
-    ("notin" "\\notin" t "&notin;" "[not an element of]" "[not an element of]" "∉")
-    ("ni" "\\ni" t "&ni;" "[contains as member]" "[contains as member]" "∋")
-    ("nabla" "\\nabla" t "&nabla;" "[nabla]" "[nabla]" "∇")
-    ("ang" "\\angle" t "&ang;" "[angle]" "[angle]" "∠")
-    ("angle" "\\angle" t "&ang;" "[angle]" "[angle]" "∠")
-    ("perp" "\\perp" t "&perp;" "[up tack]" "[up tack]" "⊥")
-    ("parallel" "\\parallel" t "&parallel;" "||" "||" "∥")
-    ("sdot" "\\cdot" t "&sdot;" "[dot]" "[dot]" "⋅")
-    ("cdot" "\\cdot" t "&sdot;" "[dot]" "[dot]" "⋅")
-    ("lceil" "\\lceil" t "&lceil;" "[left ceiling]" "[left ceiling]" "⌈")
-    ("rceil" "\\rceil" t "&rceil;" "[right ceiling]" "[right ceiling]" "⌉")
-    ("lfloor" "\\lfloor" t "&lfloor;" "[left floor]" "[left floor]" "⌊")
-    ("rfloor" "\\rfloor" t "&rfloor;" "[right floor]" "[right floor]" "⌋")
-    ("lang" "\\langle" t "&lang;" "<" "<" "⟨")
-    ("rang" "\\rangle" t "&rang;" ">" ">" "⟩")
-    ("langle" "\\langle" t "&lang;" "<" "<" "⟨")
-    ("rangle" "\\rangle" t "&rang;" ">" ">" "⟩")
-    ("hbar" "\\hbar" t "&hbar;" "hbar" "hbar" "ℏ")
-    ("mho" "\\mho" t "&mho;" "mho" "mho" "℧")
-
-    "** Arrows"
-    ("larr" "\\leftarrow" t "&larr;" "<-" "<-" "←")
-    ("leftarrow" "\\leftarrow" t "&larr;"  "<-" "<-" "←")
-    ("gets" "\\gets" t "&larr;"  "<-" "<-" "←")
-    ("lArr" "\\Leftarrow" t "&lArr;" "<=" "<=" "⇐")
-    ("Leftarrow" "\\Leftarrow" t "&lArr;" "<=" "<=" "⇐")
-    ("uarr" "\\uparrow" t "&uarr;" "[uparrow]" "[uparrow]" "↑")
-    ("uparrow" "\\uparrow" t "&uarr;" "[uparrow]" "[uparrow]" "↑")
-    ("uArr" "\\Uparrow" t "&uArr;" "[dbluparrow]" "[dbluparrow]" "⇑")
-    ("Uparrow" "\\Uparrow" t "&uArr;" "[dbluparrow]" "[dbluparrow]" "⇑")
-    ("rarr" "\\rightarrow" t "&rarr;" "->" "->" "→")
-    ("to" "\\to" t "&rarr;" "->" "->" "→")
-    ("rightarrow" "\\rightarrow" t "&rarr;"  "->" "->" "→")
-    ("rArr" "\\Rightarrow" t "&rArr;" "=>" "=>" "⇒")
-    ("Rightarrow" "\\Rightarrow" t "&rArr;" "=>" "=>" "⇒")
-    ("darr" "\\downarrow" t "&darr;" "[downarrow]" "[downarrow]" "↓")
-    ("downarrow" "\\downarrow" t "&darr;" "[downarrow]" "[downarrow]" "↓")
-    ("dArr" "\\Downarrow" t "&dArr;" "[dbldownarrow]" "[dbldownarrow]" "⇓")
-    ("Downarrow" "\\Downarrow" t "&dArr;" "[dbldownarrow]" "[dbldownarrow]" "⇓")
-    ("harr" "\\leftrightarrow" t "&harr;" "<->" "<->" "↔")
-    ("leftrightarrow" "\\leftrightarrow" t "&harr;"  "<->" "<->" "↔")
-    ("hArr" "\\Leftrightarrow" t "&hArr;" "<=>" "<=>" "⇔")
-    ("Leftrightarrow" "\\Leftrightarrow" t "&hArr;" "<=>" "<=>" "⇔")
-    ("crarr" "\\hookleftarrow" t "&crarr;" "<-'" "<-'" "↵")
-    ("hookleftarrow" "\\hookleftarrow" t "&crarr;"  "<-'" "<-'" "↵")
-
-    "** Function names"
-    ("arccos" "\\arccos" t "arccos" "arccos" "arccos" "arccos")
-    ("arcsin" "\\arcsin" t "arcsin" "arcsin" "arcsin" "arcsin")
-    ("arctan" "\\arctan" t "arctan" "arctan" "arctan" "arctan")
-    ("arg" "\\arg" t "arg" "arg" "arg" "arg")
-    ("cos" "\\cos" t "cos" "cos" "cos" "cos")
-    ("cosh" "\\cosh" t "cosh" "cosh" "cosh" "cosh")
-    ("cot" "\\cot" t "cot" "cot" "cot" "cot")
-    ("coth" "\\coth" t "coth" "coth" "coth" "coth")
-    ("csc" "\\csc" t "csc" "csc" "csc" "csc")
-    ("deg" "\\deg" t "&deg;" "deg" "deg" "deg")
-    ("det" "\\det" t "det" "det" "det" "det")
-    ("dim" "\\dim" t "dim" "dim" "dim" "dim")
-    ("exp" "\\exp" t "exp" "exp" "exp" "exp")
-    ("gcd" "\\gcd" t "gcd" "gcd" "gcd" "gcd")
-    ("hom" "\\hom" t "hom" "hom" "hom" "hom")
-    ("inf" "\\inf" t "inf" "inf" "inf" "inf")
-    ("ker" "\\ker" t "ker" "ker" "ker" "ker")
-    ("lg" "\\lg" t "lg" "lg" "lg" "lg")
-    ("lim" "\\lim" t "lim" "lim" "lim" "lim")
-    ("liminf" "\\liminf" t "liminf" "liminf" "liminf" "liminf")
-    ("limsup" "\\limsup" t "limsup" "limsup" "limsup" "limsup")
-    ("ln" "\\ln" t "ln" "ln" "ln" "ln")
-    ("log" "\\log" t "log" "log" "log" "log")
-    ("max" "\\max" t "max" "max" "max" "max")
-    ("min" "\\min" t "min" "min" "min" "min")
-    ("Pr" "\\Pr" t "Pr" "Pr" "Pr" "Pr")
-    ("sec" "\\sec" t "sec" "sec" "sec" "sec")
-    ("sin" "\\sin" t "sin" "sin" "sin" "sin")
-    ("sinh" "\\sinh" t "sinh" "sinh" "sinh" "sinh")
-    ("sup" "\\sup" t "&sup;" "sup" "sup" "sup")
-    ("tan" "\\tan" t "tan" "tan" "tan" "tan")
-    ("tanh" "\\tanh" t "tanh" "tanh" "tanh" "tanh")
-
-    "** Signs & Symbols"
-    ("bull" "\\textbullet{}" nil "&bull;" "*" "*" "•")
-    ("bullet" "\\textbullet{}" nil "&bull;" "*" "*" "•")
-    ("star" "\\star" t "*" "*" "*" "⋆")
-    ("lowast" "\\ast" t "&lowast;" "*" "*" "∗")
-    ("ast" "\\ast" t "&lowast;" "*" "*" "*")
-    ("odot" "\\odot" t "o" "[circled dot]" "[circled dot]" "ʘ")
-    ("oplus" "\\oplus" t "&oplus;" "[circled plus]" "[circled plus]" "⊕")
-    ("otimes" "\\otimes" t "&otimes;" "[circled times]" "[circled times]" "⊗")
-    ("check" "\\checkmark" t "&checkmark;" "[checkmark]" "[checkmark]" "✓")
-    ("checkmark" "\\checkmark" t "&check;" "[checkmark]" "[checkmark]" "✓")
-
-    "** Miscellaneous (seldom used)"
-    ("para" "\\P{}" nil "&para;" "[pilcrow]" "¶" "¶")
-    ("ordf" "\\textordfeminine{}" nil "&ordf;" "_a_" "ª" "ª")
-    ("ordm" "\\textordmasculine{}" nil "&ordm;" "_o_" "º" "º")
-    ("cedil" "\\c{}" nil "&cedil;" "[cedilla]" "¸" "¸")
-    ("oline" "\\overline{~}" t "&oline;" "[overline]" "¯" "‾")
-    ("uml" "\\textasciidieresis{}" nil "&uml;" "[diaeresis]" "¨" "¨")
-    ("zwnj" "\\/{}" nil "&zwnj;" "" "" "‌")
-    ("zwj" "" nil "&zwj;" "" "" "‍")
-    ("lrm" "" nil "&lrm;" "" "" "‎")
-    ("rlm" "" nil "&rlm;" "" "" "‏")
-
-    "** Smilies"
-    ("smile" "\\smile" t "&smile;" ":-)" ":-)" "⌣")
-    ("frown" "\\frown" t "&frown;" ":-(" ":-(" "⌢")
-    ("smiley" "\\smiley{}" nil "&#9786;" ":-)" ":-)" "☺")
-    ("blacksmile" "\\blacksmiley{}" nil "&#9787;" ":-)" ":-)" "☻")
-    ("sad" "\\frownie{}" nil "&#9785;" ":-(" ":-(" "☹")
-
-    "** Suits"
-    ("clubs" "\\clubsuit" t "&clubs;" "[clubs]" "[clubs]" "♣")
-    ("clubsuit" "\\clubsuit" t "&clubs;" "[clubs]" "[clubs]" "♣")
-    ("spades" "\\spadesuit" t "&spades;" "[spades]" "[spades]" "♠")
-    ("spadesuit" "\\spadesuit" t "&spades;" "[spades]" "[spades]" "♠")
-    ("hearts" "\\heartsuit" t "&hearts;" "[hearts]" "[hearts]" "♥")
-    ("heartsuit" "\\heartsuit" t "&heartsuit;" "[hearts]" "[hearts]" "♥")
-    ("diams" "\\diamondsuit" t "&diams;" "[diamonds]" "[diamonds]" "◆")
-    ("diamondsuit" "\\diamondsuit" t "&diams;" "[diamonds]" "[diamonds]" "◆")
-    ("diamond" "\\diamondsuit" t "&diamond;" "[diamond]" "[diamond]" "◆")
-    ("Diamond" "\\diamondsuit" t "&diamond;" "[diamond]" "[diamond]" "◆")
-    ("loz" "\\lozenge" t "&loz;" "[lozenge]" "[lozenge]" "⧫")
-    )
-  "Default entities used in Org-mode to produce special characters.
+  (append
+   '("* Letters"
+     "** Latin"
+     ("Agrave" "\\`{A}" nil "&Agrave;" "A" "À" "À")
+     ("agrave" "\\`{a}" nil "&agrave;" "a" "à" "à")
+     ("Aacute" "\\'{A}" nil "&Aacute;" "A" "Á" "Á")
+     ("aacute" "\\'{a}" nil "&aacute;" "a" "á" "á")
+     ("Acirc" "\\^{A}" nil "&Acirc;" "A" "Â" "Â")
+     ("acirc" "\\^{a}" nil "&acirc;" "a" "â" "â")
+     ("Atilde" "\\~{A}" nil "&Atilde;" "A" "Ã" "Ã")
+     ("atilde" "\\~{a}" nil "&atilde;" "a" "ã" "ã")
+     ("Auml" "\\\"{A}" nil "&Auml;" "Ae" "Ä" "Ä")
+     ("auml" "\\\"{a}" nil "&auml;" "ae" "ä" "ä")
+     ("Aring" "\\AA{}" nil "&Aring;" "A" "Å" "Å")
+     ("AA" "\\AA{}" nil "&Aring;" "A" "Å" "Å")
+     ("aring" "\\aa{}" nil "&aring;" "a" "å" "å")
+     ("AElig" "\\AE{}" nil "&AElig;" "AE" "Æ" "Æ")
+     ("aelig" "\\ae{}" nil "&aelig;" "ae" "æ" "æ")
+     ("Ccedil" "\\c{C}" nil "&Ccedil;" "C" "Ç" "Ç")
+     ("ccedil" "\\c{c}" nil "&ccedil;" "c" "ç" "ç")
+     ("Egrave" "\\`{E}" nil "&Egrave;" "E" "È" "È")
+     ("egrave" "\\`{e}" nil "&egrave;" "e" "è" "è")
+     ("Eacute" "\\'{E}" nil "&Eacute;" "E" "É" "É")
+     ("eacute" "\\'{e}" nil "&eacute;" "e" "é" "é")
+     ("Ecirc" "\\^{E}" nil "&Ecirc;" "E" "Ê" "Ê")
+     ("ecirc" "\\^{e}" nil "&ecirc;" "e" "ê" "ê")
+     ("Euml" "\\\"{E}" nil "&Euml;" "E" "Ë" "Ë")
+     ("euml" "\\\"{e}" nil "&euml;" "e" "ë" "ë")
+     ("Igrave" "\\`{I}" nil "&Igrave;" "I" "Ì" "Ì")
+     ("igrave" "\\`{i}" nil "&igrave;" "i" "ì" "ì")
+     ("Iacute" "\\'{I}" nil "&Iacute;" "I" "Í" "Í")
+     ("iacute" "\\'{i}" nil "&iacute;" "i" "í" "í")
+     ("Icirc" "\\^{I}" nil "&Icirc;" "I" "Î" "Î")
+     ("icirc" "\\^{i}" nil "&icirc;" "i" "î" "î")
+     ("Iuml" "\\\"{I}" nil "&Iuml;" "I" "Ï" "Ï")
+     ("iuml" "\\\"{i}" nil "&iuml;" "i" "ï" "ï")
+     ("Ntilde" "\\~{N}" nil "&Ntilde;" "N" "Ñ" "Ñ")
+     ("ntilde" "\\~{n}" nil "&ntilde;" "n" "ñ" "ñ")
+     ("Ograve" "\\`{O}" nil "&Ograve;" "O" "Ò" "Ò")
+     ("ograve" "\\`{o}" nil "&ograve;" "o" "ò" "ò")
+     ("Oacute" "\\'{O}" nil "&Oacute;" "O" "Ó" "Ó")
+     ("oacute" "\\'{o}" nil "&oacute;" "o" "ó" "ó")
+     ("Ocirc" "\\^{O}" nil "&Ocirc;" "O" "Ô" "Ô")
+     ("ocirc" "\\^{o}" nil "&ocirc;" "o" "ô" "ô")
+     ("Otilde" "\\~{O}" nil "&Otilde;" "O" "Õ" "Õ")
+     ("otilde" "\\~{o}" nil "&otilde;" "o" "õ" "õ")
+     ("Ouml" "\\\"{O}" nil "&Ouml;" "Oe" "Ö" "Ö")
+     ("ouml" "\\\"{o}" nil "&ouml;" "oe" "ö" "ö")
+     ("Oslash" "\\O" nil "&Oslash;" "O" "Ø" "Ø")
+     ("oslash" "\\o{}" nil "&oslash;" "o" "ø" "ø")
+     ("OElig" "\\OE{}" nil "&OElig;" "OE" "OE" "Œ")
+     ("oelig" "\\oe{}" nil "&oelig;" "oe" "oe" "œ")
+     ("Scaron" "\\v{S}" nil "&Scaron;" "S" "S" "Š")
+     ("scaron" "\\v{s}" nil "&scaron;" "s" "s" "š")
+     ("szlig" "\\ss{}" nil "&szlig;" "ss" "ß" "ß")
+     ("Ugrave" "\\`{U}" nil "&Ugrave;" "U" "Ù" "Ù")
+     ("ugrave" "\\`{u}" nil "&ugrave;" "u" "ù" "ù")
+     ("Uacute" "\\'{U}" nil "&Uacute;" "U" "Ú" "Ú")
+     ("uacute" "\\'{u}" nil "&uacute;" "u" "ú" "ú")
+     ("Ucirc" "\\^{U}" nil "&Ucirc;" "U" "Û" "Û")
+     ("ucirc" "\\^{u}" nil "&ucirc;" "u" "û" "û")
+     ("Uuml" "\\\"{U}" nil "&Uuml;" "Ue" "Ü" "Ü")
+     ("uuml" "\\\"{u}" nil "&uuml;" "ue" "ü" "ü")
+     ("Yacute" "\\'{Y}" nil "&Yacute;" "Y" "Ý" "Ý")
+     ("yacute" "\\'{y}" nil "&yacute;" "y" "ý" "ý")
+     ("Yuml" "\\\"{Y}" nil "&Yuml;" "Y" "Y" "Ÿ")
+     ("yuml" "\\\"{y}" nil "&yuml;" "y" "ÿ" "ÿ")
+
+     "** Latin (special face)"
+     ("fnof" "\\textit{f}" nil "&fnof;" "f" "f" "ƒ")
+     ("real" "\\Re" t "&real;" "R" "R" "ℜ")
+     ("image" "\\Im" t "&image;" "I" "I" "ℑ")
+     ("weierp" "\\wp" t "&weierp;" "P" "P" "℘")
+     ("ell" "\\ell" t "&ell;" "ell" "ell" "ℓ")
+     ("imath" "\\imath" t "&imath;" "[dotless i]" "dotless i" "ı")
+     ("jmath" "\\jmath" t "&jmath;" "[dotless j]" "dotless j" "ȷ")
+
+     "** Greek"
+     ("Alpha" "A" nil "&Alpha;" "Alpha" "Alpha" "Α")
+     ("alpha" "\\alpha" t "&alpha;" "alpha" "alpha" "α")
+     ("Beta" "B" nil "&Beta;" "Beta" "Beta" "Β")
+     ("beta" "\\beta" t "&beta;" "beta" "beta" "β")
+     ("Gamma" "\\Gamma" t "&Gamma;" "Gamma" "Gamma" "Γ")
+     ("gamma" "\\gamma" t "&gamma;" "gamma" "gamma" "γ")
+     ("Delta" "\\Delta" t "&Delta;" "Delta" "Gamma" "Δ")
+     ("delta" "\\delta" t "&delta;" "delta" "delta" "δ")
+     ("Epsilon" "E" nil "&Epsilon;" "Epsilon" "Epsilon" "Ε")
+     ("epsilon" "\\epsilon" t "&epsilon;" "epsilon" "epsilon" "ε")
+     ("varepsilon" "\\varepsilon" t "&epsilon;" "varepsilon" "varepsilon" "ε")
+     ("Zeta" "Z" nil "&Zeta;" "Zeta" "Zeta" "Ζ")
+     ("zeta" "\\zeta" t "&zeta;" "zeta" "zeta" "ζ")
+     ("Eta" "H" nil "&Eta;" "Eta" "Eta" "Η")
+     ("eta" "\\eta" t "&eta;" "eta" "eta" "η")
+     ("Theta" "\\Theta" t "&Theta;" "Theta" "Theta" "Θ")
+     ("theta" "\\theta" t "&theta;" "theta" "theta" "θ")
+     ("thetasym" "\\vartheta" t "&thetasym;" "theta" "theta" "ϑ")
+     ("vartheta" "\\vartheta" t "&thetasym;" "theta" "theta" "ϑ")
+     ("Iota" "I" nil "&Iota;" "Iota" "Iota" "Ι")
+     ("iota" "\\iota" t "&iota;" "iota" "iota" "ι")
+     ("Kappa" "K" nil "&Kappa;" "Kappa" "Kappa" "Κ")
+     ("kappa" "\\kappa" t "&kappa;" "kappa" "kappa" "κ")
+     ("Lambda" "\\Lambda" t "&Lambda;" "Lambda" "Lambda" "Λ")
+     ("lambda" "\\lambda" t "&lambda;" "lambda" "lambda" "λ")
+     ("Mu" "M" nil "&Mu;" "Mu" "Mu" "Μ")
+     ("mu" "\\mu" t "&mu;" "mu" "mu" "μ")
+     ("nu" "\\nu" t "&nu;" "nu" "nu" "ν")
+     ("Nu" "N" nil "&Nu;" "Nu" "Nu" "Ν")
+     ("Xi" "\\Xi" t "&Xi;" "Xi" "Xi" "Ξ")
+     ("xi" "\\xi" t "&xi;" "xi" "xi" "ξ")
+     ("Omicron" "O" nil "&Omicron;" "Omicron" "Omicron" "Ο")
+     ("omicron" "\\textit{o}" nil "&omicron;" "omicron" "omicron" "ο")
+     ("Pi" "\\Pi" t "&Pi;" "Pi" "Pi" "Π")
+     ("pi" "\\pi" t "&pi;" "pi" "pi" "π")
+     ("Rho" "P" nil "&Rho;" "Rho" "Rho" "Ρ")
+     ("rho" "\\rho" t "&rho;" "rho" "rho" "ρ")
+     ("Sigma" "\\Sigma" t "&Sigma;" "Sigma" "Sigma" "Σ")
+     ("sigma" "\\sigma" t "&sigma;" "sigma" "sigma" "σ")
+     ("sigmaf" "\\varsigma" t "&sigmaf;" "sigmaf" "sigmaf" "ς")
+     ("varsigma" "\\varsigma" t "&sigmaf;" "varsigma" "varsigma" "ς")
+     ("Tau" "T" nil "&Tau;" "Tau" "Tau" "Τ")
+     ("Upsilon" "\\Upsilon" t "&Upsilon;" "Upsilon" "Upsilon" "Υ")
+     ("upsih" "\\Upsilon" t "&upsih;" "upsilon" "upsilon" "ϒ")
+     ("upsilon" "\\upsilon" t "&upsilon;" "upsilon" "upsilon" "υ")
+     ("Phi" "\\Phi" t "&Phi;" "Phi" "Phi" "Φ")
+     ("phi" "\\phi" t "&phi;" "phi" "phi" "φ")
+     ("varphi" "\\varphi" t "&varphi;" "varphi" "varphi" "ɸ")
+     ("Chi" "X" nil "&Chi;" "Chi" "Chi" "Χ")
+     ("chi" "\\chi" t "&chi;" "chi" "chi" "χ")
+     ("acutex" "\\acute x" t "&acute;x" "'x" "'x" "𝑥́")
+     ("Psi" "\\Psi" t "&Psi;" "Psi" "Psi" "Ψ")
+     ("psi" "\\psi" t "&psi;" "psi" "psi" "ψ")
+     ("tau" "\\tau" t "&tau;" "tau" "tau" "τ")
+     ("Omega" "\\Omega" t "&Omega;" "Omega" "Omega" "Ω")
+     ("omega" "\\omega" t "&omega;" "omega" "omega" "ω")
+     ("piv" "\\varpi" t "&piv;" "omega-pi" "omega-pi" "ϖ")
+     ("varpi" "\\varpi" t "&piv;" "omega-pi" "omega-pi" "ϖ")
+     ("partial" "\\partial" t "&part;" "[partial differential]" "[partial differential]" "∂")
+
+     "** Hebrew"
+     ("alefsym" "\\aleph" t "&alefsym;" "aleph" "aleph" "ℵ")
+     ("aleph" "\\aleph" t "&aleph;" "aleph" "aleph" "ℵ")
+     ("gimel" "\\gimel" t "&gimel;" "gimel" "gimel" "ℷ")
+     ("beth" "\\beth" t "&beth;" "beth" "beth" "ב")
+     ("dalet" "\\daleth" t "&daleth;" "dalet" "dalet" "ד")
+
+     "** Dead languages"
+     ("ETH" "\\DH{}" nil "&ETH;" "D" "Ð" "Ð")
+     ("eth" "\\dh{}" nil "&eth;" "dh" "ð" "ð")
+     ("THORN" "\\TH{}" nil "&THORN;" "TH" "Þ" "Þ")
+     ("thorn" "\\th{}" nil "&thorn;" "th" "þ" "þ")
+
+     "* Punctuation"
+     "** Dots and Marks"
+     ("dots" "\\dots{}" nil "&hellip;" "..." "..." "…")
+     ("cdots" "\\cdots{}" t "&ctdot;" "..." "..." "⋯")
+     ("hellip" "\\dots{}" nil "&hellip;" "..." "..." "…")
+     ("middot" "\\textperiodcentered{}" nil "&middot;" "." "·" "·")
+     ("iexcl" "!`" nil "&iexcl;" "!" "¡" "¡")
+     ("iquest" "?`" nil "&iquest;" "?" "¿" "¿")
+
+     "** Dash-like"
+     ("shy" "\\-" nil "&shy;" "" "" "")
+     ("ndash" "--" nil "&ndash;" "-" "-" "–")
+     ("mdash" "---" nil "&mdash;" "--" "--" "—")
+
+     "** Quotations"
+     ("quot" "\\textquotedbl{}" nil "&quot;" "\"" "\"" "\"")
+     ("acute" "\\textasciiacute{}" nil "&acute;" "'" "´" "´")
+     ("ldquo" "\\textquotedblleft{}" nil "&ldquo;" "\"" "\"" "“")
+     ("rdquo" "\\textquotedblright{}" nil "&rdquo;" "\"" "\"" "”")
+     ("bdquo" "\\quotedblbase{}" nil "&bdquo;" "\"" "\"" "„")
+     ("lsquo" "\\textquoteleft{}" nil "&lsquo;" "`" "`" "‘")
+     ("rsquo" "\\textquoteright{}" nil "&rsquo;" "'" "'" "’")
+     ("sbquo" "\\quotesinglbase{}" nil "&sbquo;" "," "," "‚")
+     ("laquo" "\\guillemotleft{}" nil "&laquo;" "<<" "«" "«")
+     ("raquo" "\\guillemotright{}" nil "&raquo;" ">>" "»" "»")
+     ("lsaquo" "\\guilsinglleft{}" nil "&lsaquo;" "<" "<" "‹")
+     ("rsaquo" "\\guilsinglright{}" nil "&rsaquo;" ">" ">" "›")
+
+     "* Other"
+     "** Misc. (often used)"
+     ("circ" "\\^{}" nil "&circ;" "^" "^" "ˆ")
+     ("vert" "\\vert{}" t "&vert;" "|" "|" "|")
+     ("brvbar" "\\textbrokenbar{}" nil "&brvbar;" "|" "¦" "¦")
+     ("S" "\\S" nil "&sect;" "paragraph" "§" "§")
+     ("sect" "\\S" nil "&sect;" "paragraph" "§" "§")
+     ("amp" "\\&" nil "&amp;" "&" "&" "&")
+     ("lt" "\\textless{}" nil "&lt;" "<" "<" "<")
+     ("gt" "\\textgreater{}" nil "&gt;" ">" ">" ">")
+     ("tilde" "\\textasciitilde{}" nil "~" "~" "~" "~")
+     ("slash" "/" nil "/" "/" "/" "/")
+     ("plus" "+" nil "+" "+" "+" "+")
+     ("under" "\\_" nil "_" "_" "_" "_")
+     ("equal" "=" nil "=" "=" "=" "=")
+     ("asciicirc" "\\textasciicircum{}" nil "^" "^" "^" "^")
+     ("dagger" "\\textdagger{}" nil "&dagger;" "[dagger]" "[dagger]" "†")
+     ("dag" "\\dag{}" nil "&dagger;" "[dagger]" "[dagger]" "†")
+     ("Dagger" "\\textdaggerdbl{}" nil "&Dagger;" "[doubledagger]" "[doubledagger]" "‡")
+     ("ddag" "\\ddag{}" nil "&Dagger;" "[doubledagger]" "[doubledagger]" "‡")
+
+     "** Whitespace"
+     ("nbsp" "~" nil "&nbsp;" " " " " " ")
+     ("ensp" "\\hspace*{.5em}" nil "&ensp;" " " " " " ")
+     ("emsp" "\\hspace*{1em}" nil "&emsp;" " " " " " ")
+     ("thinsp" "\\hspace*{.2em}" nil "&thinsp;" " " " " " ")
+
+     "** Currency"
+     ("curren" "\\textcurrency{}" nil "&curren;" "curr." "¤" "¤")
+     ("cent" "\\textcent{}" nil "&cent;" "cent" "¢" "¢")
+     ("pound" "\\pounds{}" nil "&pound;" "pound" "£" "£")
+     ("yen" "\\textyen{}" nil "&yen;" "yen" "¥" "¥")
+     ("euro" "\\texteuro{}" nil "&euro;" "EUR" "EUR" "€")
+     ("EUR" "\\EUR{}" nil "&euro;" "EUR" "EUR" "€")
+     ("EURdig" "\\EURdig{}" nil "&euro;" "EUR" "EUR" "€")
+     ("EURhv" "\\EURhv{}" nil "&euro;" "EUR" "EUR" "€")
+     ("EURcr" "\\EURcr{}" nil "&euro;" "EUR" "EUR" "€")
+     ("EURtm" "\\EURtm{}" nil "&euro;" "EUR" "EUR" "€")
+
+     "** Property Marks"
+     ("copy" "\\textcopyright{}" nil "&copy;" "(c)" "©" "©")
+     ("reg" "\\textregistered{}" nil "&reg;" "(r)" "®" "®")
+     ("trade" "\\texttrademark{}" nil "&trade;" "TM" "TM" "™")
+
+     "** Science et al."
+     ("minus" "\\minus" t "&minus;" "-" "-" "−")
+     ("pm" "\\textpm{}" nil "&plusmn;" "+-" "±" "±")
+     ("plusmn" "\\textpm{}" nil "&plusmn;" "+-" "±" "±")
+     ("times" "\\texttimes{}" nil "&times;" "*" "×" "×")
+     ("frasl" "/" nil "&frasl;" "/" "/" "⁄")
+     ("colon" "\\colon" t ":" ":" ":" ":")
+     ("div" "\\textdiv{}" nil "&divide;" "/" "÷" "÷")
+     ("frac12" "\\textonehalf{}" nil "&frac12;" "1/2" "½" "½")
+     ("frac14" "\\textonequarter{}" nil "&frac14;" "1/4" "¼" "¼")
+     ("frac34" "\\textthreequarters{}" nil "&frac34;" "3/4" "¾" "¾")
+     ("permil" "\\textperthousand{}" nil "&permil;" "per thousand" "per thousand" "‰")
+     ("sup1" "\\textonesuperior{}" nil "&sup1;" "^1" "¹" "¹")
+     ("sup2" "\\texttwosuperior{}" nil "&sup2;" "^2" "²" "²")
+     ("sup3" "\\textthreesuperior{}" nil "&sup3;" "^3" "³" "³")
+     ("radic" "\\sqrt{\\,}" t "&radic;" "[square root]" "[square root]" "√")
+     ("sum" "\\sum" t "&sum;" "[sum]" "[sum]" "∑")
+     ("prod" "\\prod" t "&prod;" "[product]" "[n-ary product]" "∏")
+     ("micro" "\\textmu{}" nil "&micro;" "micro" "µ" "µ")
+     ("macr" "\\textasciimacron{}" nil "&macr;" "[macron]" "¯" "¯")
+     ("deg" "\\textdegree{}" nil "&deg;" "degree" "°" "°")
+     ("prime" "\\prime" t "&prime;" "'" "'" "′")
+     ("Prime" "\\prime{}\\prime" t "&Prime;" "''" "''" "″")
+     ("infin" "\\propto" t "&infin;" "[infinity]" "[infinity]" "∞")
+     ("infty" "\\infty" t "&infin;" "[infinity]" "[infinity]" "∞")
+     ("prop" "\\propto" t "&prop;" "[proportional to]" "[proportional to]" "∝")
+     ("propto" "\\propto" t "&prop;" "[proportional to]" "[proportional to]" "∝")
+     ("not" "\\textlnot{}" nil "&not;" "[angled dash]" "¬" "¬")
+     ("neg" "\\neg{}" t "&not;" "[angled dash]" "¬" "¬")
+     ("land" "\\land" t "&and;" "[logical and]" "[logical and]" "∧")
+     ("wedge" "\\wedge" t "&and;" "[logical and]" "[logical and]" "∧")
+     ("lor" "\\lor" t "&or;" "[logical or]" "[logical or]" "∨")
+     ("vee" "\\vee" t "&or;" "[logical or]" "[logical or]" "∨")
+     ("cap" "\\cap" t "&cap;" "[intersection]" "[intersection]" "∩")
+     ("cup" "\\cup" t "&cup;" "[union]" "[union]" "∪")
+     ("int" "\\int" t "&int;" "[integral]" "[integral]" "∫")
+     ("therefore" "\\therefore" t "&there4;" "[therefore]" "[therefore]" "∴")
+     ("there4" "\\therefore" t "&there4;" "[therefore]" "[therefore]" "∴")
+     ("because" "\\because" t "&because;" "[because]" "[because]" "∵")
+     ("sim" "\\sim" t "&sim;" "~" "~" "∼")
+     ("cong" "\\cong" t "&cong;" "[approx. equal to]" "[approx. equal to]" "≅")
+     ("simeq" "\\simeq" t "&cong;"  "[approx. equal to]" "[approx. equal to]" "≅")
+     ("asymp" "\\asymp" t "&asymp;" "[almost equal to]" "[almost equal to]" "≈")
+     ("approx" "\\approx" t "&asymp;" "[almost equal to]" "[almost equal to]" "≈")
+     ("ne" "\\ne" t "&ne;" "[not equal to]" "[not equal to]" "≠")
+     ("neq" "\\neq" t "&ne;" "[not equal to]" "[not equal to]" "≠")
+     ("equiv" "\\equiv" t "&equiv;" "[identical to]" "[identical to]" "≡")
+
+     ("triangleq" "\\triangleq" t "&triangleq;" "[defined to]" "[defined to]" "≜")
+     ("le" "\\le" t "&le;" "<=" "<=" "≤")
+     ("leq" "\\le" t "&le;" "<=" "<=" "≤")
+     ("ge" "\\ge" t "&ge;" ">=" ">=" "≥")
+     ("geq" "\\ge" t "&ge;" ">=" ">=" "≥")
+     ("lessgtr" "\\lessgtr" t "&lessgtr;" "[less than or greater than]" "[less than or greater than]" "≶")
+     ("lesseqgtr" "\\lesseqgtr" t "&lesseqgtr;" "[less than or equal or greater than or equal]" "[less than or equal or greater than or equal]" "⋚")
+     ("ll" "\\ll" t  "&Lt;" "<<" "<<" "≪")
+     ("Ll" "\lll" t "&Ll;" "<<<" "<<<" "⋘")
+     ("lll" "\lll" t "&Ll;" "<<<" "<<<" "⋘")
+     ("gg" "\\gg" t  "&Gt;" ">>" ">>" "≫")
+     ("Gg" "\\ggg" t "&Gg;" ">>>" ">>>" "⋙")
+     ("ggg" "\\ggg" t "&Gg;" ">>>" ">>>" "⋙")
+     ("prec" "\\prec" t "&pr;" "[precedes]" "[precedes]" "≺")
+     ("preceq" "\\preceq" t "&prcue;" "[precedes or equal]" "[precedes or equal]" "≼")
+     ("preccurlyeq" "\\preccurlyeq" t "&prcue;" "[precedes or equal]" "[precedes or equal]" "≼")
+     ("succ" "\\succ" t "&sc;" "[succeeds]" "[succeeds]" "≻")
+     ("succeq" "\\succeq" t "&sccue;" "[succeeds or equal]" "[succeeds or equal]" "≽")
+     ("succcurlyeq" "\\succcurlyeq" t "&sccue;" "[succeeds or equal]" "[succeeds or equal]" "≽")
+     ("sub" "\\subset" t "&sub;" "[subset of]" "[subset of]" "⊂")
+     ("subset" "\\subset" t "&sub;" "[subset of]" "[subset of]" "⊂")
+     ("sup" "\\supset" t "&sup;" "[superset of]" "[superset of]" "⊃")
+     ("supset" "\\supset" t "&sup;" "[superset of]" "[superset of]" "⊃")
+     ("nsub" "\\not\\subset" t "&nsub;" "[not a subset of]" "[not a subset of" "⊄")
+     ("sube" "\\subseteq" t "&sube;" "[subset of or equal to]" "[subset of or equal to]" "⊆")
+     ("nsup" "\\not\\supset" t "&nsup;" "[not a superset of]" "[not a superset of]" "⊅")
+     ("supe" "\\supseteq" t "&supe;" "[superset of or equal to]" "[superset of or equal to]" "⊇")
+     ("setminus" "\\setminus" t "&setminus;" "\" "\" "⧵")
+     ("forall" "\\forall" t "&forall;" "[for all]" "[for all]" "∀")
+     ("exist" "\\exists" t "&exist;" "[there exists]" "[there exists]" "∃")
+     ("exists" "\\exists" t "&exist;" "[there exists]" "[there exists]" "∃")
+     ("nexist" "\\nexists" t "&exist;" "[there does not exists]" "[there does not  exists]" "∄")
+     ("nexists" "\\nexists" t "&exist;" "[there does not exists]" "[there does not  exists]" "∄")
+     ("empty" "\\empty" t "&empty;" "[empty set]" "[empty set]" "∅")
+     ("emptyset" "\\emptyset" t "&empty;" "[empty set]" "[empty set]" "∅")
+     ("isin" "\\in" t "&isin;" "[element of]" "[element of]" "∈")
+     ("in" "\\in" t "&isin;" "[element of]" "[element of]" "∈")
+     ("notin" "\\notin" t "&notin;" "[not an element of]" "[not an element of]" "∉")
+     ("ni" "\\ni" t "&ni;" "[contains as member]" "[contains as member]" "∋")
+     ("nabla" "\\nabla" t "&nabla;" "[nabla]" "[nabla]" "∇")
+     ("ang" "\\angle" t "&ang;" "[angle]" "[angle]" "∠")
+     ("angle" "\\angle" t "&ang;" "[angle]" "[angle]" "∠")
+     ("perp" "\\perp" t "&perp;" "[up tack]" "[up tack]" "⊥")
+     ("parallel" "\\parallel" t "&parallel;" "||" "||" "∥")
+     ("sdot" "\\cdot" t "&sdot;" "[dot]" "[dot]" "⋅")
+     ("cdot" "\\cdot" t "&sdot;" "[dot]" "[dot]" "⋅")
+     ("lceil" "\\lceil" t "&lceil;" "[left ceiling]" "[left ceiling]" "⌈")
+     ("rceil" "\\rceil" t "&rceil;" "[right ceiling]" "[right ceiling]" "⌉")
+     ("lfloor" "\\lfloor" t "&lfloor;" "[left floor]" "[left floor]" "⌊")
+     ("rfloor" "\\rfloor" t "&rfloor;" "[right floor]" "[right floor]" "⌋")
+     ("lang" "\\langle" t "&lang;" "<" "<" "⟨")
+     ("rang" "\\rangle" t "&rang;" ">" ">" "⟩")
+     ("langle" "\\langle" t "&lang;" "<" "<" "⟨")
+     ("rangle" "\\rangle" t "&rang;" ">" ">" "⟩")
+     ("hbar" "\\hbar" t "&hbar;" "hbar" "hbar" "ℏ")
+     ("mho" "\\mho" t "&mho;" "mho" "mho" "℧")
+
+     "** Arrows"
+     ("larr" "\\leftarrow" t "&larr;" "<-" "<-" "←")
+     ("leftarrow" "\\leftarrow" t "&larr;"  "<-" "<-" "←")
+     ("gets" "\\gets" t "&larr;"  "<-" "<-" "←")
+     ("lArr" "\\Leftarrow" t "&lArr;" "<=" "<=" "⇐")
+     ("Leftarrow" "\\Leftarrow" t "&lArr;" "<=" "<=" "⇐")
+     ("uarr" "\\uparrow" t "&uarr;" "[uparrow]" "[uparrow]" "↑")
+     ("uparrow" "\\uparrow" t "&uarr;" "[uparrow]" "[uparrow]" "↑")
+     ("uArr" "\\Uparrow" t "&uArr;" "[dbluparrow]" "[dbluparrow]" "⇑")
+     ("Uparrow" "\\Uparrow" t "&uArr;" "[dbluparrow]" "[dbluparrow]" "⇑")
+     ("rarr" "\\rightarrow" t "&rarr;" "->" "->" "→")
+     ("to" "\\to" t "&rarr;" "->" "->" "→")
+     ("rightarrow" "\\rightarrow" t "&rarr;"  "->" "->" "→")
+     ("rArr" "\\Rightarrow" t "&rArr;" "=>" "=>" "⇒")
+     ("Rightarrow" "\\Rightarrow" t "&rArr;" "=>" "=>" "⇒")
+     ("darr" "\\downarrow" t "&darr;" "[downarrow]" "[downarrow]" "↓")
+     ("downarrow" "\\downarrow" t "&darr;" "[downarrow]" "[downarrow]" "↓")
+     ("dArr" "\\Downarrow" t "&dArr;" "[dbldownarrow]" "[dbldownarrow]" "⇓")
+     ("Downarrow" "\\Downarrow" t "&dArr;" "[dbldownarrow]" "[dbldownarrow]" "⇓")
+     ("harr" "\\leftrightarrow" t "&harr;" "<->" "<->" "↔")
+     ("leftrightarrow" "\\leftrightarrow" t "&harr;"  "<->" "<->" "↔")
+     ("hArr" "\\Leftrightarrow" t "&hArr;" "<=>" "<=>" "⇔")
+     ("Leftrightarrow" "\\Leftrightarrow" t "&hArr;" "<=>" "<=>" "⇔")
+     ("crarr" "\\hookleftarrow" t "&crarr;" "<-'" "<-'" "↵")
+     ("hookleftarrow" "\\hookleftarrow" t "&crarr;"  "<-'" "<-'" "↵")
+
+     "** Function names"
+     ("arccos" "\\arccos" t "arccos" "arccos" "arccos" "arccos")
+     ("arcsin" "\\arcsin" t "arcsin" "arcsin" "arcsin" "arcsin")
+     ("arctan" "\\arctan" t "arctan" "arctan" "arctan" "arctan")
+     ("arg" "\\arg" t "arg" "arg" "arg" "arg")
+     ("cos" "\\cos" t "cos" "cos" "cos" "cos")
+     ("cosh" "\\cosh" t "cosh" "cosh" "cosh" "cosh")
+     ("cot" "\\cot" t "cot" "cot" "cot" "cot")
+     ("coth" "\\coth" t "coth" "coth" "coth" "coth")
+     ("csc" "\\csc" t "csc" "csc" "csc" "csc")
+     ("deg" "\\deg" t "&deg;" "deg" "deg" "deg")
+     ("det" "\\det" t "det" "det" "det" "det")
+     ("dim" "\\dim" t "dim" "dim" "dim" "dim")
+     ("exp" "\\exp" t "exp" "exp" "exp" "exp")
+     ("gcd" "\\gcd" t "gcd" "gcd" "gcd" "gcd")
+     ("hom" "\\hom" t "hom" "hom" "hom" "hom")
+     ("inf" "\\inf" t "inf" "inf" "inf" "inf")
+     ("ker" "\\ker" t "ker" "ker" "ker" "ker")
+     ("lg" "\\lg" t "lg" "lg" "lg" "lg")
+     ("lim" "\\lim" t "lim" "lim" "lim" "lim")
+     ("liminf" "\\liminf" t "liminf" "liminf" "liminf" "liminf")
+     ("limsup" "\\limsup" t "limsup" "limsup" "limsup" "limsup")
+     ("ln" "\\ln" t "ln" "ln" "ln" "ln")
+     ("log" "\\log" t "log" "log" "log" "log")
+     ("max" "\\max" t "max" "max" "max" "max")
+     ("min" "\\min" t "min" "min" "min" "min")
+     ("Pr" "\\Pr" t "Pr" "Pr" "Pr" "Pr")
+     ("sec" "\\sec" t "sec" "sec" "sec" "sec")
+     ("sin" "\\sin" t "sin" "sin" "sin" "sin")
+     ("sinh" "\\sinh" t "sinh" "sinh" "sinh" "sinh")
+     ("sup" "\\sup" t "&sup;" "sup" "sup" "sup")
+     ("tan" "\\tan" t "tan" "tan" "tan" "tan")
+     ("tanh" "\\tanh" t "tanh" "tanh" "tanh" "tanh")
+
+     "** Signs & Symbols"
+     ("bull" "\\textbullet{}" nil "&bull;" "*" "*" "•")
+     ("bullet" "\\textbullet{}" nil "&bull;" "*" "*" "•")
+     ("star" "\\star" t "*" "*" "*" "⋆")
+     ("lowast" "\\ast" t "&lowast;" "*" "*" "∗")
+     ("ast" "\\ast" t "&lowast;" "*" "*" "*")
+     ("odot" "\\odot" t "o" "[circled dot]" "[circled dot]" "ʘ")
+     ("oplus" "\\oplus" t "&oplus;" "[circled plus]" "[circled plus]" "⊕")
+     ("otimes" "\\otimes" t "&otimes;" "[circled times]" "[circled times]" "⊗")
+     ("check" "\\checkmark" t "&checkmark;" "[checkmark]" "[checkmark]" "✓")
+     ("checkmark" "\\checkmark" t "&check;" "[checkmark]" "[checkmark]" "✓")
+
+     "** Miscellaneous (seldom used)"
+     ("para" "\\P{}" nil "&para;" "[pilcrow]" "¶" "¶")
+     ("ordf" "\\textordfeminine{}" nil "&ordf;" "_a_" "ª" "ª")
+     ("ordm" "\\textordmasculine{}" nil "&ordm;" "_o_" "º" "º")
+     ("cedil" "\\c{}" nil "&cedil;" "[cedilla]" "¸" "¸")
+     ("oline" "\\overline{~}" t "&oline;" "[overline]" "¯" "‾")
+     ("uml" "\\textasciidieresis{}" nil "&uml;" "[diaeresis]" "¨" "¨")
+     ("zwnj" "\\/{}" nil "&zwnj;" "" "" "‌")
+     ("zwj" "" nil "&zwj;" "" "" "‍")
+     ("lrm" "" nil "&lrm;" "" "" "‎")
+     ("rlm" "" nil "&rlm;" "" "" "‏")
+
+     "** Smilies"
+     ("smile" "\\smile" t "&smile;" ":-)" ":-)" "⌣")
+     ("frown" "\\frown" t "&frown;" ":-(" ":-(" "⌢")
+     ("smiley" "\\smiley{}" nil "&#9786;" ":-)" ":-)" "☺")
+     ("blacksmile" "\\blacksmiley{}" nil "&#9787;" ":-)" ":-)" "☻")
+     ("sad" "\\frownie{}" nil "&#9785;" ":-(" ":-(" "☹")
+
+     "** Suits"
+     ("clubs" "\\clubsuit" t "&clubs;" "[clubs]" "[clubs]" "♣")
+     ("clubsuit" "\\clubsuit" t "&clubs;" "[clubs]" "[clubs]" "♣")
+     ("spades" "\\spadesuit" t "&spades;" "[spades]" "[spades]" "♠")
+     ("spadesuit" "\\spadesuit" t "&spades;" "[spades]" "[spades]" "♠")
+     ("hearts" "\\heartsuit" t "&hearts;" "[hearts]" "[hearts]" "♥")
+     ("heartsuit" "\\heartsuit" t "&heartsuit;" "[hearts]" "[hearts]" "♥")
+     ("diams" "\\diamondsuit" t "&diams;" "[diamonds]" "[diamonds]" "◆")
+     ("diamondsuit" "\\diamondsuit" t "&diams;" "[diamonds]" "[diamonds]" "◆")
+     ("diamond" "\\diamondsuit" t "&diamond;" "[diamond]" "[diamond]" "◆")
+     ("Diamond" "\\diamondsuit" t "&diamond;" "[diamond]" "[diamond]" "◆")
+     ("loz" "\\lozenge" t "&loz;" "[lozenge]" "[lozenge]" "⧫"))
+   ;; Add "\...."-entity family for spaces.
+   (let (space-entities html-spaces)
+     (dotimes (n 20 (nreverse space-entities))
+       (let ((n (+ 1 n))
+	     (spaces (make-string n ?\s)))
+	 (push (list (make-string n ?.)
+		     (format "\\hspace*{%sem}" (* n .5))
+		     nil
+		     (setq html-spaces (concat "&ensp;" html-spaces))
+		     spaces
+		     spaces
+		     (make-string n ?\x2002))
+	       space-entities)))))
+  "Default entities used in Org mode to produce special characters.
 For details see `org-entities-user'.")
 
 (defsubst org-entity-get (name)

+ 3 - 0
lisp/org.el

@@ -6456,6 +6456,9 @@ needs to be inserted at a specific position in the font-lock sequence.")
   (let (ee)
     (when org-pretty-entities
       (catch 'match
+	;; \...-family is left out on purpose.  Only the first one,
+	;; i.e., "\.", could be fontified anyway, and it would be
+	;; confusing when adding more dots.
 	(while (re-search-forward
 		"\\\\\\(there4\\|sup[123]\\|frac[13][24]\\|[a-zA-Z]+\\)\\($\\|{}\\|[^[:alpha:]\n]\\)"
 		limit t)