rabbit 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (620) hide show
  1. data/COPYING +56 -0
  2. data/COPYING.ja +51 -0
  3. data/GPL +340 -0
  4. data/INSTALL.macosx-macports.en +75 -0
  5. data/INSTALL.macosx-macports.ja +101 -0
  6. data/INSTALL.win32.en +74 -0
  7. data/INSTALL.win32.ja +77 -0
  8. data/NEWS.en +337 -0
  9. data/NEWS.ja +338 -0
  10. data/README.en +836 -0
  11. data/README.ja +871 -0
  12. data/Rakefile +82 -0
  13. data/TODO +7 -0
  14. data/bin/rabbirc +86 -0
  15. data/bin/rabbit +759 -0
  16. data/bin/rabbit-command +95 -0
  17. data/bin/rabbit-theme-manager +133 -0
  18. data/bin/rabbit.bat +8 -0
  19. data/bin/rabrick +82 -0
  20. data/data/locale/en/LC_MESSAGES/rabbit.mo +0 -0
  21. data/data/locale/fr/LC_MESSAGES/rabbit.mo +0 -0
  22. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  23. data/data/rabbit/image/clear-blue-images/clear-blue-headline-background.png +0 -0
  24. data/data/rabbit/image/clear-blue-images/clear-blue-icon.png +0 -0
  25. data/data/rabbit/image/clear-blue-images/clear-blue-images.rb +0 -0
  26. data/data/rabbit/image/clear-blue-images/property.rb +4 -0
  27. data/data/rabbit/image/cozmixng-images/cozmixchu.png +0 -0
  28. data/data/rabbit/image/cozmixng-images/cozmixng-images.rb +2 -0
  29. data/data/rabbit/image/cozmixng-images/powered-by-cozmixng.png +0 -0
  30. data/data/rabbit/image/cozmixng-images/property.rb +4 -0
  31. data/data/rabbit/image/rabbit-images/blue-item.png +0 -0
  32. data/data/rabbit/image/rabbit-images/close-quote-blue.png +0 -0
  33. data/data/rabbit/image/rabbit-images/close-quote-brown.png +0 -0
  34. data/data/rabbit/image/rabbit-images/close-quote-light-blue.png +0 -0
  35. data/data/rabbit/image/rabbit-images/goal-flag.png +0 -0
  36. data/data/rabbit/image/rabbit-images/green-item.png +0 -0
  37. data/data/rabbit/image/rabbit-images/kame.png +0 -0
  38. data/data/rabbit/image/rabbit-images/lavie-icon.png +0 -0
  39. data/data/rabbit/image/rabbit-images/lavie-with-logo.png +0 -0
  40. data/data/rabbit/image/rabbit-images/lavie.png +0 -0
  41. data/data/rabbit/image/rabbit-images/mini-alice.png +0 -0
  42. data/data/rabbit/image/rabbit-images/mini-horizontal-bar.png +0 -0
  43. data/data/rabbit/image/rabbit-images/mini-kame-taro.png +0 -0
  44. data/data/rabbit/image/rabbit-images/mini-tanu-kitaro.png +0 -0
  45. data/data/rabbit/image/rabbit-images/mini-usa-taro.png +0 -0
  46. data/data/rabbit/image/rabbit-images/mini-usagi.png +0 -0
  47. data/data/rabbit/image/rabbit-images/mini-vertical-bar.png +0 -0
  48. data/data/rabbit/image/rabbit-images/mini-yukidaru-taro.png +0 -0
  49. data/data/rabbit/image/rabbit-images/open-quote-blue.png +0 -0
  50. data/data/rabbit/image/rabbit-images/open-quote-brown.png +0 -0
  51. data/data/rabbit/image/rabbit-images/open-quote-light-blue.png +0 -0
  52. data/data/rabbit/image/rabbit-images/property.rb +4 -0
  53. data/data/rabbit/image/rabbit-images/rabbit-banner-blue.png +0 -0
  54. data/data/rabbit/image/rabbit-images/rabbit-banner-green.png +0 -0
  55. data/data/rabbit/image/rabbit-images/rabbit-banner-heads.png +0 -0
  56. data/data/rabbit/image/rabbit-images/rabbit-banner-pink.png +0 -0
  57. data/data/rabbit/image/rabbit-images/rabbit-banner.png +0 -0
  58. data/data/rabbit/image/rabbit-images/rabbit-banner2.png +0 -0
  59. data/data/rabbit/image/rabbit-images/rabbit-images.rb +2 -0
  60. data/data/rabbit/image/rabbit-images/rabbit-pink-logo.png +0 -0
  61. data/data/rabbit/image/rabbit-images/rabbit-pink-logo2.png +0 -0
  62. data/data/rabbit/image/rabbit-images/red-item.png +0 -0
  63. data/data/rabbit/image/rabbit-images/red-item2.png +0 -0
  64. data/data/rabbit/image/rabbit-images/start-flag.png +0 -0
  65. data/data/rabbit/image/rabbit-images/tanu-kitaro.png +0 -0
  66. data/data/rabbit/image/rabbit-images/usa-taro.png +0 -0
  67. data/data/rabbit/image/rabbit-images/usagi.png +0 -0
  68. data/data/rabbit/image/rabbit-images/yukiusa.png +0 -0
  69. data/data/rabbit/image/ruby-images/property.rb +4 -0
  70. data/data/rabbit/image/ruby-images/ruby-images.rb +2 -0
  71. data/data/rabbit/image/ruby-images/ruby-pink-circle-icon.png +0 -0
  72. data/data/rabbit/image/ruby-images/ruby-pink-circle-logo.png +0 -0
  73. data/data/rabbit/image/ruby-images/ruby-pink-circle-small-icon.png +0 -0
  74. data/data/rabbit/image/ruby-images/ruby-pink-circle.png +0 -0
  75. data/data/rabbit/image/ruby-images/ruby-pink-polygon-icon.png +0 -0
  76. data/data/rabbit/image/ruby-images/ruby-pink-polygon-logo.png +0 -0
  77. data/data/rabbit/image/ruby-images/ruby-pink-polygon-small-icon.png +0 -0
  78. data/data/rabbit/image/ruby-images/ruby-pink-polygon.png +0 -0
  79. data/entities/README +10 -0
  80. data/entities/ent2rb.rb +57 -0
  81. data/entities/isoamsa.ent +167 -0
  82. data/entities/isoamsb.ent +143 -0
  83. data/entities/isoamsc.ent +43 -0
  84. data/entities/isoamsn.ent +114 -0
  85. data/entities/isoamso.ent +73 -0
  86. data/entities/isoamsr.ent +204 -0
  87. data/entities/isobox.ent +61 -0
  88. data/entities/isocyr1.ent +88 -0
  89. data/entities/isocyr2.ent +47 -0
  90. data/entities/isodia.ent +35 -0
  91. data/entities/isogrk3.ent +64 -0
  92. data/entities/isolat1.ent +83 -0
  93. data/entities/isolat2.ent +142 -0
  94. data/entities/isomfrk.ent +75 -0
  95. data/entities/isomopf.ent +49 -0
  96. data/entities/isomscr.ent +75 -0
  97. data/entities/isonum.ent +97 -0
  98. data/entities/isopub.ent +105 -0
  99. data/entities/isotech.ent +182 -0
  100. data/entities/mmlalias.ent +564 -0
  101. data/entities/mmlextra.ent +122 -0
  102. data/lib/rabbit/action.rb +143 -0
  103. data/lib/rabbit/action/basic.rb +304 -0
  104. data/lib/rabbit/action/radio.rb +78 -0
  105. data/lib/rabbit/action/toggle.rb +89 -0
  106. data/lib/rabbit/canvas.rb +760 -0
  107. data/lib/rabbit/comment-canvas.rb +21 -0
  108. data/lib/rabbit/comment/log.rb +74 -0
  109. data/lib/rabbit/console.rb +133 -0
  110. data/lib/rabbit/console/roff.rb +84 -0
  111. data/lib/rabbit/cursor-manager.rb +62 -0
  112. data/lib/rabbit/default-config.rb +16 -0
  113. data/lib/rabbit/dependency-canvas.rb +14 -0
  114. data/lib/rabbit/div/comment-i.erb +7 -0
  115. data/lib/rabbit/div/comment.erb +45 -0
  116. data/lib/rabbit/div/css.erb +1 -0
  117. data/lib/rabbit/div/js.erb +1 -0
  118. data/lib/rabbit/div/log.erb +5 -0
  119. data/lib/rabbit/div/main-i.erb +24 -0
  120. data/lib/rabbit/div/main.css +40 -0
  121. data/lib/rabbit/div/main.erb +33 -0
  122. data/lib/rabbit/div/navi-i.erb +6 -0
  123. data/lib/rabbit/div/navi.erb +6 -0
  124. data/lib/rabbit/div/prototype.js +4320 -0
  125. data/lib/rabbit/div/slide-i.erb +2 -0
  126. data/lib/rabbit/div/slide.erb +5 -0
  127. data/lib/rabbit/div/tofu.rb +309 -0
  128. data/lib/rabbit/element.rb +8 -0
  129. data/lib/rabbit/element/base.rb +499 -0
  130. data/lib/rabbit/element/base/draw-hook.rb +75 -0
  131. data/lib/rabbit/element/block-element.rb +38 -0
  132. data/lib/rabbit/element/block.rb +53 -0
  133. data/lib/rabbit/element/container-element.rb +254 -0
  134. data/lib/rabbit/element/description-list.rb +56 -0
  135. data/lib/rabbit/element/enum-list.rb +33 -0
  136. data/lib/rabbit/element/footnote.rb +32 -0
  137. data/lib/rabbit/element/image-title-slide.rb +18 -0
  138. data/lib/rabbit/element/image.rb +167 -0
  139. data/lib/rabbit/element/index-slide.rb +190 -0
  140. data/lib/rabbit/element/item-list.rb +31 -0
  141. data/lib/rabbit/element/method-list.rb +50 -0
  142. data/lib/rabbit/element/poppler-page.rb +36 -0
  143. data/lib/rabbit/element/poppler-slide.rb +25 -0
  144. data/lib/rabbit/element/poppler-title-slide.rb +23 -0
  145. data/lib/rabbit/element/preformatted.rb +27 -0
  146. data/lib/rabbit/element/slide-element.rb +97 -0
  147. data/lib/rabbit/element/slide.rb +51 -0
  148. data/lib/rabbit/element/table.rb +100 -0
  149. data/lib/rabbit/element/tag.rb +29 -0
  150. data/lib/rabbit/element/text-container-element.rb +104 -0
  151. data/lib/rabbit/element/text-element.rb +59 -0
  152. data/lib/rabbit/element/text-renderer.rb +321 -0
  153. data/lib/rabbit/element/text.rb +82 -0
  154. data/lib/rabbit/element/title-slide.rb +190 -0
  155. data/lib/rabbit/formatter.rb +143 -0
  156. data/lib/rabbit/frame.rb +275 -0
  157. data/lib/rabbit/front.rb +238 -0
  158. data/lib/rabbit/gesture/handler.rb +232 -0
  159. data/lib/rabbit/gesture/processor.rb +118 -0
  160. data/lib/rabbit/gettext.rb +90 -0
  161. data/lib/rabbit/graffiti/config-dialog.rb +57 -0
  162. data/lib/rabbit/graffiti/processor.rb +116 -0
  163. data/lib/rabbit/html/generator.rb +458 -0
  164. data/lib/rabbit/html/template.erb +109 -0
  165. data/lib/rabbit/image.rb +35 -0
  166. data/lib/rabbit/image/base.rb +104 -0
  167. data/lib/rabbit/image/default.rb +27 -0
  168. data/lib/rabbit/image/dia.rb +63 -0
  169. data/lib/rabbit/image/eps.rb +113 -0
  170. data/lib/rabbit/image/gimp.rb +53 -0
  171. data/lib/rabbit/image/pdf.rb +77 -0
  172. data/lib/rabbit/image/svg.rb +78 -0
  173. data/lib/rabbit/info-window.rb +160 -0
  174. data/lib/rabbit/keys.rb +190 -0
  175. data/lib/rabbit/logger.rb +14 -0
  176. data/lib/rabbit/logger/base.rb +129 -0
  177. data/lib/rabbit/logger/gui.rb +172 -0
  178. data/lib/rabbit/logger/stderr.rb +28 -0
  179. data/lib/rabbit/menu.rb +287 -0
  180. data/lib/rabbit/parser.rb +24 -0
  181. data/lib/rabbit/parser/base.rb +20 -0
  182. data/lib/rabbit/parser/ext/anthy.rb +43 -0
  183. data/lib/rabbit/parser/ext/enscript.rb +122 -0
  184. data/lib/rabbit/parser/ext/entity.rb +4178 -0
  185. data/lib/rabbit/parser/ext/escape.rb +18 -0
  186. data/lib/rabbit/parser/ext/image.rb +102 -0
  187. data/lib/rabbit/parser/ext/inline.rb +29 -0
  188. data/lib/rabbit/parser/ext/tex.rb +77 -0
  189. data/lib/rabbit/parser/image.rb +34 -0
  190. data/lib/rabbit/parser/pause-support.rb +32 -0
  191. data/lib/rabbit/parser/pdf.rb +35 -0
  192. data/lib/rabbit/parser/rd.rb +54 -0
  193. data/lib/rabbit/parser/rd/ext/anthy.rb +29 -0
  194. data/lib/rabbit/parser/rd/ext/base.rb +79 -0
  195. data/lib/rabbit/parser/rd/ext/block-verbatim.rb +103 -0
  196. data/lib/rabbit/parser/rd/ext/enscript.rb +24 -0
  197. data/lib/rabbit/parser/rd/ext/entity.rb +38 -0
  198. data/lib/rabbit/parser/rd/ext/image.rb +27 -0
  199. data/lib/rabbit/parser/rd/ext/inline-verbatim.rb +89 -0
  200. data/lib/rabbit/parser/rd/ext/refer.rb +34 -0
  201. data/lib/rabbit/parser/rd/ext/tex.rb +24 -0
  202. data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +424 -0
  203. data/lib/rabbit/parser/rd/rt/rt2rabbit-lib.rb +83 -0
  204. data/lib/rabbit/parser/rd/visitor.rb +56 -0
  205. data/lib/rabbit/parser/wiki.rb +30 -0
  206. data/lib/rabbit/parser/wiki/output.rb +460 -0
  207. data/lib/rabbit/post-setup.rb +8 -0
  208. data/lib/rabbit/pre-clean.rb +2 -0
  209. data/lib/rabbit/pre-distclean.rb +2 -0
  210. data/lib/rabbit/progress.rb +68 -0
  211. data/lib/rabbit/rabbit.rb +222 -0
  212. data/lib/rabbit/renderer.rb +27 -0
  213. data/lib/rabbit/renderer/base.rb +512 -0
  214. data/lib/rabbit/renderer/color.rb +80 -0
  215. data/lib/rabbit/renderer/display.rb +25 -0
  216. data/lib/rabbit/renderer/display/base.rb +93 -0
  217. data/lib/rabbit/renderer/display/button-handler.rb +145 -0
  218. data/lib/rabbit/renderer/display/clutter-embed.rb +634 -0
  219. data/lib/rabbit/renderer/display/comment-drawing-area.rb +173 -0
  220. data/lib/rabbit/renderer/display/comment.rb +194 -0
  221. data/lib/rabbit/renderer/display/cursor.rb +34 -0
  222. data/lib/rabbit/renderer/display/drawing-area-base.rb +395 -0
  223. data/lib/rabbit/renderer/display/drawing-area-primitive.rb +219 -0
  224. data/lib/rabbit/renderer/display/drawing-area-view-only.rb +33 -0
  225. data/lib/rabbit/renderer/display/drawing-area.rb +31 -0
  226. data/lib/rabbit/renderer/display/gesture.rb +94 -0
  227. data/lib/rabbit/renderer/display/gl.rb +98 -0
  228. data/lib/rabbit/renderer/display/graffiti.rb +120 -0
  229. data/lib/rabbit/renderer/display/info.rb +45 -0
  230. data/lib/rabbit/renderer/display/key-handler.rb +303 -0
  231. data/lib/rabbit/renderer/display/magnifier.rb +123 -0
  232. data/lib/rabbit/renderer/display/mask.rb +68 -0
  233. data/lib/rabbit/renderer/display/menu.rb +30 -0
  234. data/lib/rabbit/renderer/display/progress.rb +62 -0
  235. data/lib/rabbit/renderer/display/search.rb +107 -0
  236. data/lib/rabbit/renderer/display/spotlight.rb +117 -0
  237. data/lib/rabbit/renderer/engine.rb +18 -0
  238. data/lib/rabbit/renderer/engine/cairo.rb +438 -0
  239. data/lib/rabbit/renderer/engine/gdk.rb +229 -0
  240. data/lib/rabbit/renderer/gl.rb +176 -0
  241. data/lib/rabbit/renderer/kernel.rb +256 -0
  242. data/lib/rabbit/renderer/pixmap.rb +25 -0
  243. data/lib/rabbit/renderer/pixmap/base.rb +127 -0
  244. data/lib/rabbit/renderer/pixmap/cairo.rb +23 -0
  245. data/lib/rabbit/renderer/pixmap/gdk.rb +29 -0
  246. data/lib/rabbit/renderer/pixmap/gl.rb +46 -0
  247. data/lib/rabbit/renderer/print.rb +31 -0
  248. data/lib/rabbit/renderer/print/base.rb +73 -0
  249. data/lib/rabbit/renderer/print/cairo.rb +130 -0
  250. data/lib/rabbit/renderer/print/layout.rb +123 -0
  251. data/lib/rabbit/renderer/print/multiple.rb +205 -0
  252. data/lib/rabbit/search-window.rb +99 -0
  253. data/lib/rabbit/searcher.rb +106 -0
  254. data/lib/rabbit/soap/base.rb +17 -0
  255. data/lib/rabbit/soap/driver.rb +45 -0
  256. data/lib/rabbit/soap/server.rb +33 -0
  257. data/lib/rabbit/source.rb +14 -0
  258. data/lib/rabbit/source/argf.rb +29 -0
  259. data/lib/rabbit/source/base.rb +164 -0
  260. data/lib/rabbit/source/file.rb +65 -0
  261. data/lib/rabbit/source/hiki.rb +36 -0
  262. data/lib/rabbit/source/memory.rb +41 -0
  263. data/lib/rabbit/source/rwiki.rb +54 -0
  264. data/lib/rabbit/source/slide-share.rb +53 -0
  265. data/lib/rabbit/source/uri.rb +73 -0
  266. data/lib/rabbit/stock.rb +31 -0
  267. data/lib/rabbit/theme-browser.rb +104 -0
  268. data/lib/rabbit/theme-browser/default-tag.yaml +89 -0
  269. data/lib/rabbit/theme-browser/document.rb +200 -0
  270. data/lib/rabbit/theme-browser/ext/block-verbatim.rb +39 -0
  271. data/lib/rabbit/theme-browser/page.rb +133 -0
  272. data/lib/rabbit/theme-browser/rd2document-lib.rb +181 -0
  273. data/lib/rabbit/theme-browser/tag.rb +67 -0
  274. data/lib/rabbit/theme-browser/tree.rb +91 -0
  275. data/lib/rabbit/theme/applier.rb +613 -0
  276. data/lib/rabbit/theme/auto-slide/auto-slide.rb +6 -0
  277. data/lib/rabbit/theme/auto-slide/property.rb +4 -0
  278. data/lib/rabbit/theme/base/base.rb +76 -0
  279. data/lib/rabbit/theme/base/property.rb +4 -0
  280. data/lib/rabbit/theme/blue-bar/blue-bar.rb +93 -0
  281. data/lib/rabbit/theme/blue-bar/property.rb +3 -0
  282. data/lib/rabbit/theme/blue-circle/blue-circle.rb +14 -0
  283. data/lib/rabbit/theme/blue-circle/property.rb +3 -0
  284. data/lib/rabbit/theme/centering-rabbit/centering-rabbit.rb +5 -0
  285. data/lib/rabbit/theme/centering-rabbit/property.rb +3 -0
  286. data/lib/rabbit/theme/clear-blue/clear-blue.rb +100 -0
  287. data/lib/rabbit/theme/clear-blue/property.rb +3 -0
  288. data/lib/rabbit/theme/clock/clock.rb +37 -0
  289. data/lib/rabbit/theme/clock/property.rb +21 -0
  290. data/lib/rabbit/theme/color-circle-block-quote/color-circle-block-quote.rb +26 -0
  291. data/lib/rabbit/theme/color-circle-block-quote/property.rb +4 -0
  292. data/lib/rabbit/theme/color-circle-common/color-circle-common.rb +48 -0
  293. data/lib/rabbit/theme/color-circle-common/property.rb +3 -0
  294. data/lib/rabbit/theme/color-circle-description/color-circle-description.rb +9 -0
  295. data/lib/rabbit/theme/color-circle-description/property.rb +4 -0
  296. data/lib/rabbit/theme/color-circle-foot-text/color-circle-foot-text.rb +14 -0
  297. data/lib/rabbit/theme/color-circle-foot-text/property.rb +4 -0
  298. data/lib/rabbit/theme/color-circle-item-mark/color-circle-item-mark.rb +77 -0
  299. data/lib/rabbit/theme/color-circle-item-mark/property.rb +4 -0
  300. data/lib/rabbit/theme/color-circle-method-list/color-circle-method-list.rb +8 -0
  301. data/lib/rabbit/theme/color-circle-method-list/property.rb +4 -0
  302. data/lib/rabbit/theme/color-circle-preformatted/color-circle-preformatted.rb +5 -0
  303. data/lib/rabbit/theme/color-circle-preformatted/property.rb +4 -0
  304. data/lib/rabbit/theme/color-circle-slide/color-circle-slide.rb +13 -0
  305. data/lib/rabbit/theme/color-circle-slide/property.rb +4 -0
  306. data/lib/rabbit/theme/color-circle-text/color-circle-text.rb +9 -0
  307. data/lib/rabbit/theme/color-circle-text/property.rb +4 -0
  308. data/lib/rabbit/theme/color-circle-title-slide/color-circle-title-slide.rb +27 -0
  309. data/lib/rabbit/theme/color-circle-title-slide/property.rb +4 -0
  310. data/lib/rabbit/theme/color-circle-title-text/color-circle-title-text.rb +7 -0
  311. data/lib/rabbit/theme/color-circle-title-text/property.rb +4 -0
  312. data/lib/rabbit/theme/color-circle/color-circle.rb +40 -0
  313. data/lib/rabbit/theme/color-circle/property.rb +4 -0
  314. data/lib/rabbit/theme/comment/comment.rb +5 -0
  315. data/lib/rabbit/theme/comment/property.rb +3 -0
  316. data/lib/rabbit/theme/cozmixng-powered-by/cozmixng-powered-by.rb +6 -0
  317. data/lib/rabbit/theme/cozmixng-powered-by/property.rb +7 -0
  318. data/lib/rabbit/theme/cozmixng/cozmixng.rb +55 -0
  319. data/lib/rabbit/theme/cozmixng/property.rb +3 -0
  320. data/lib/rabbit/theme/day-white/day-white.rb +14 -0
  321. data/lib/rabbit/theme/day-white/property.rb +3 -0
  322. data/lib/rabbit/theme/default-block-quote/default-block-quote.rb +113 -0
  323. data/lib/rabbit/theme/default-block-quote/property.rb +3 -0
  324. data/lib/rabbit/theme/default-description/default-description.rb +64 -0
  325. data/lib/rabbit/theme/default-description/property.rb +5 -0
  326. data/lib/rabbit/theme/default-foot-text/default-foot-text.rb +52 -0
  327. data/lib/rabbit/theme/default-foot-text/property.rb +3 -0
  328. data/lib/rabbit/theme/default-icon/default-icon.rb +4 -0
  329. data/lib/rabbit/theme/default-icon/property.rb +5 -0
  330. data/lib/rabbit/theme/default-item-mark-setup/default-item-mark-setup.rb +116 -0
  331. data/lib/rabbit/theme/default-item-mark-setup/property.rb +3 -0
  332. data/lib/rabbit/theme/default-item-mark/default-item-mark.rb +92 -0
  333. data/lib/rabbit/theme/default-item-mark/property.rb +4 -0
  334. data/lib/rabbit/theme/default-method-list/default-method-list.rb +6 -0
  335. data/lib/rabbit/theme/default-method-list/property.rb +3 -0
  336. data/lib/rabbit/theme/default-preformatted/default-preformatted.rb +37 -0
  337. data/lib/rabbit/theme/default-preformatted/property.rb +3 -0
  338. data/lib/rabbit/theme/default-slide/default-slide.rb +33 -0
  339. data/lib/rabbit/theme/default-slide/property.rb +3 -0
  340. data/lib/rabbit/theme/default-text/default-text.rb +183 -0
  341. data/lib/rabbit/theme/default-text/property.rb +3 -0
  342. data/lib/rabbit/theme/default-title-slide/default-title-slide.rb +13 -0
  343. data/lib/rabbit/theme/default-title-slide/property.rb +6 -0
  344. data/lib/rabbit/theme/default-title-text/default-title-text.rb +48 -0
  345. data/lib/rabbit/theme/default-title-text/property.rb +3 -0
  346. data/lib/rabbit/theme/default/default.rb +22 -0
  347. data/lib/rabbit/theme/default/property.rb +3 -0
  348. data/lib/rabbit/theme/document.erb +35 -0
  349. data/lib/rabbit/theme/edge-info-toolkit/edge-info-toolkit.rb +77 -0
  350. data/lib/rabbit/theme/edge-info-toolkit/property.rb +3 -0
  351. data/lib/rabbit/theme/emphasize-keyword/emphasize-keyword.rb +16 -0
  352. data/lib/rabbit/theme/emphasize-keyword/property.rb +4 -0
  353. data/lib/rabbit/theme/entry.rb +121 -0
  354. data/lib/rabbit/theme/footer-logo/footer-logo.rb +30 -0
  355. data/lib/rabbit/theme/footer-logo/property.rb +26 -0
  356. data/lib/rabbit/theme/green-circle/green-circle.rb +14 -0
  357. data/lib/rabbit/theme/green-circle/property.rb +3 -0
  358. data/lib/rabbit/theme/headline-logo/headline-logo.rb +24 -0
  359. data/lib/rabbit/theme/headline-logo/property.rb +10 -0
  360. data/lib/rabbit/theme/icon/icon.rb +8 -0
  361. data/lib/rabbit/theme/icon/property.rb +24 -0
  362. data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +111 -0
  363. data/lib/rabbit/theme/image-slide-number/property.rb +64 -0
  364. data/lib/rabbit/theme/image-timer/image-timer.rb +109 -0
  365. data/lib/rabbit/theme/image-timer/property.rb +46 -0
  366. data/lib/rabbit/theme/image-viewer/image-viewer.rb +7 -0
  367. data/lib/rabbit/theme/image-viewer/property.rb +3 -0
  368. data/lib/rabbit/theme/image/image.rb +72 -0
  369. data/lib/rabbit/theme/image/property.rb +3 -0
  370. data/lib/rabbit/theme/lightning-clear-blue/lightning-clear-blue.rb +13 -0
  371. data/lib/rabbit/theme/lightning-clear-blue/property.rb +3 -0
  372. data/lib/rabbit/theme/lightning-rabbit/lightning-rabbit.rb +13 -0
  373. data/lib/rabbit/theme/lightning-rabbit/property.rb +3 -0
  374. data/lib/rabbit/theme/lightning-simple/lightning-simple.rb +60 -0
  375. data/lib/rabbit/theme/lightning-simple/property.rb +3 -0
  376. data/lib/rabbit/theme/lightning-talk-toolkit/lightning-talk-toolkit.rb +171 -0
  377. data/lib/rabbit/theme/lightning-talk-toolkit/property.rb +3 -0
  378. data/lib/rabbit/theme/lightning-talk/lightning-talk.rb +65 -0
  379. data/lib/rabbit/theme/lightning-talk/property.rb +3 -0
  380. data/lib/rabbit/theme/manager.rb +35 -0
  381. data/lib/rabbit/theme/mirror-effect/mirror-effect.rb +27 -0
  382. data/lib/rabbit/theme/mirror-effect/property.rb +3 -0
  383. data/lib/rabbit/theme/newline-in-slides/newline-in-slides.rb +3 -0
  384. data/lib/rabbit/theme/newline-in-slides/property.rb +4 -0
  385. data/lib/rabbit/theme/newline-in-title/newline-in-title.rb +7 -0
  386. data/lib/rabbit/theme/newline-in-title/property.rb +4 -0
  387. data/lib/rabbit/theme/night-black/night-black.rb +25 -0
  388. data/lib/rabbit/theme/night-black/property.rb +3 -0
  389. data/lib/rabbit/theme/pdf-tortoise-and-hare/pdf-tortoise-and-hare.rb +18 -0
  390. data/lib/rabbit/theme/pdf-tortoise-and-hare/property.rb +3 -0
  391. data/lib/rabbit/theme/pdf/pdf.rb +4 -0
  392. data/lib/rabbit/theme/pdf/property.rb +3 -0
  393. data/lib/rabbit/theme/powered-by/powered-by.rb +67 -0
  394. data/lib/rabbit/theme/powered-by/property.rb +24 -0
  395. data/lib/rabbit/theme/rabbit-block-quote/property.rb +4 -0
  396. data/lib/rabbit/theme/rabbit-block-quote/rabbit-block-quote.rb +16 -0
  397. data/lib/rabbit/theme/rabbit-headline-logo/property.rb +5 -0
  398. data/lib/rabbit/theme/rabbit-headline-logo/rabbit-headline-logo.rb +4 -0
  399. data/lib/rabbit/theme/rabbit-icon/property.rb +5 -0
  400. data/lib/rabbit/theme/rabbit-icon/rabbit-icon.rb +4 -0
  401. data/lib/rabbit/theme/rabbit-item-mark/property.rb +5 -0
  402. data/lib/rabbit/theme/rabbit-item-mark/rabbit-item-mark.rb +53 -0
  403. data/lib/rabbit/theme/rabbit-powered-by/property.rb +7 -0
  404. data/lib/rabbit/theme/rabbit-powered-by/rabbit-powered-by.rb +5 -0
  405. data/lib/rabbit/theme/rabbit-title-logo/property.rb +5 -0
  406. data/lib/rabbit/theme/rabbit-title-logo/rabbit-title-logo.rb +4 -0
  407. data/lib/rabbit/theme/rabbit/property.rb +3 -0
  408. data/lib/rabbit/theme/rabbit/rabbit.rb +63 -0
  409. data/lib/rabbit/theme/red-frame/property.rb +3 -0
  410. data/lib/rabbit/theme/red-frame/red-frame.rb +96 -0
  411. data/lib/rabbit/theme/rotate-zoom-effect/property.rb +4 -0
  412. data/lib/rabbit/theme/rotate-zoom-effect/rotate-zoom-effect.rb +51 -0
  413. data/lib/rabbit/theme/ruby-gnome2-description/property.rb +7 -0
  414. data/lib/rabbit/theme/ruby-gnome2-description/ruby-gnome2-description.rb +7 -0
  415. data/lib/rabbit/theme/ruby-gnome2-foot-text/property.rb +5 -0
  416. data/lib/rabbit/theme/ruby-gnome2-foot-text/ruby-gnome2-foot-text.rb +3 -0
  417. data/lib/rabbit/theme/ruby-gnome2-headline/property.rb +7 -0
  418. data/lib/rabbit/theme/ruby-gnome2-headline/ruby-gnome2-headline.rb +47 -0
  419. data/lib/rabbit/theme/ruby-gnome2-icon/property.rb +5 -0
  420. data/lib/rabbit/theme/ruby-gnome2-icon/ruby-gnome2-icon.rb +4 -0
  421. data/lib/rabbit/theme/ruby-gnome2-item-mark/property.rb +10 -0
  422. data/lib/rabbit/theme/ruby-gnome2-item-mark/ruby-gnome2-item-mark.rb +65 -0
  423. data/lib/rabbit/theme/ruby-gnome2-preformatted/property.rb +4 -0
  424. data/lib/rabbit/theme/ruby-gnome2-preformatted/ruby-gnome2-preformatted.rb +8 -0
  425. data/lib/rabbit/theme/ruby-gnome2-slide/property.rb +4 -0
  426. data/lib/rabbit/theme/ruby-gnome2-slide/ruby-gnome2-slide.rb +40 -0
  427. data/lib/rabbit/theme/ruby-gnome2/property.rb +3 -0
  428. data/lib/rabbit/theme/ruby-gnome2/ruby-gnome2.rb +61 -0
  429. data/lib/rabbit/theme/scroll-effect/property.rb +3 -0
  430. data/lib/rabbit/theme/scroll-effect/scroll-effect.rb +32 -0
  431. data/lib/rabbit/theme/searcher.rb +120 -0
  432. data/lib/rabbit/theme/show-frame/property.rb +16 -0
  433. data/lib/rabbit/theme/show-frame/show-frame.rb +17 -0
  434. data/lib/rabbit/theme/simple-item-mark/property.rb +5 -0
  435. data/lib/rabbit/theme/simple-item-mark/simple-item-mark.rb +112 -0
  436. data/lib/rabbit/theme/slide-background-image/property.rb +10 -0
  437. data/lib/rabbit/theme/slide-background-image/slide-background-image.rb +25 -0
  438. data/lib/rabbit/theme/slide-background/property.rb +6 -0
  439. data/lib/rabbit/theme/slide-background/slide-background.rb +3 -0
  440. data/lib/rabbit/theme/slide-footer-info/property.rb +43 -0
  441. data/lib/rabbit/theme/slide-footer-info/slide-footer-info.rb +42 -0
  442. data/lib/rabbit/theme/slide-header-info/property.rb +43 -0
  443. data/lib/rabbit/theme/slide-header-info/slide-header-info.rb +42 -0
  444. data/lib/rabbit/theme/slide-logo/property.rb +26 -0
  445. data/lib/rabbit/theme/slide-logo/slide-logo.rb +30 -0
  446. data/lib/rabbit/theme/slide-number/property.rb +21 -0
  447. data/lib/rabbit/theme/slide-number/slide-number.rb +28 -0
  448. data/lib/rabbit/theme/slide-show/property.rb +4 -0
  449. data/lib/rabbit/theme/slide-show/slide-show.rb +31 -0
  450. data/lib/rabbit/theme/table/property.rb +3 -0
  451. data/lib/rabbit/theme/table/table.rb +169 -0
  452. data/lib/rabbit/theme/timer/property.rb +3 -0
  453. data/lib/rabbit/theme/timer/timer.rb +63 -0
  454. data/lib/rabbit/theme/title-background-color/property.rb +10 -0
  455. data/lib/rabbit/theme/title-background-color/title-background-color.rb +17 -0
  456. data/lib/rabbit/theme/title-background-image/property.rb +11 -0
  457. data/lib/rabbit/theme/title-background-image/title-background-image.rb +25 -0
  458. data/lib/rabbit/theme/title-logo/property.rb +23 -0
  459. data/lib/rabbit/theme/title-logo/title-logo.rb +38 -0
  460. data/lib/rabbit/theme/title-on-image-toolkit/property.rb +3 -0
  461. data/lib/rabbit/theme/title-on-image-toolkit/title-on-image-toolkit.rb +122 -0
  462. data/lib/rabbit/theme/title-shadow/property.rb +11 -0
  463. data/lib/rabbit/theme/title-shadow/title-shadow.rb +33 -0
  464. data/lib/rabbit/trackball.rb +228 -0
  465. data/lib/rabbit/utils.rb +459 -0
  466. data/lib/rabbit/xmlrpc/base.rb +6 -0
  467. data/lib/rabbit/xmlrpc/client.rb +17 -0
  468. data/lib/rabbit/xmlrpc/server.rb +23 -0
  469. data/lib/rt/rt2html-lib.rb +157 -0
  470. data/lib/rt/rtparser.rb +226 -0
  471. data/lib/rt/rtvisitor.rb +68 -0
  472. data/lib/rwiki/soap/common.rb +5 -0
  473. data/lib/rwiki/soap/driver.rb +43 -0
  474. data/lib/rwiki/soap/servant.rb +78 -0
  475. data/misc/emacs/README.ja +177 -0
  476. data/misc/emacs/rabbit-mode.el +375 -0
  477. data/misc/make-image-sample.rb +94 -0
  478. data/misc/make-print-sample.rb +95 -0
  479. data/misc/update-rd.rb +78 -0
  480. data/misc/xyzzy/rabbit-mode.l +775 -0
  481. data/po/en/rabbit.po +2356 -0
  482. data/po/fr/rabbit.po +2452 -0
  483. data/po/ja/rabbit.po +2465 -0
  484. data/sample/asahina/alice.png +0 -0
  485. data/sample/asahina/yukiusa.png +0 -0
  486. data/sample/blue-circle.rd +37 -0
  487. data/sample/can_rabbit.rd +470 -0
  488. data/sample/cozmixng.rd +85 -0
  489. data/sample/cozmixng_is_field.png +0 -0
  490. data/sample/cozmixng_is_field.svg +430 -0
  491. data/sample/equation.eps +571 -0
  492. data/sample/gl-sample.rd +10 -0
  493. data/sample/html_and_wiki.png +0 -0
  494. data/sample/html_and_wiki.svg +275 -0
  495. data/sample/join_cozmixng.png +0 -0
  496. data/sample/join_cozmixng.svg +293 -0
  497. data/sample/kof2005/gesture-flow.svg +329 -0
  498. data/sample/kof2005/gesture.rb +473 -0
  499. data/sample/kof2005/gtk+-widget.svg +128 -0
  500. data/sample/kof2005/high-light-architecture.svg +203 -0
  501. data/sample/kof2005/high-light-expose.rb +120 -0
  502. data/sample/kof2005/high-light-expose.svg +153 -0
  503. data/sample/kof2005/high-light-widget.rb +147 -0
  504. data/sample/kof2005/high-light-widget.svg +172 -0
  505. data/sample/kof2005/high-light.svg +132 -0
  506. data/sample/kof2005/mask-screenshot.png +0 -0
  507. data/sample/kof2005/mask.rb +105 -0
  508. data/sample/kof2005/mask.svg +120 -0
  509. data/sample/kof2005/ruby-gnome2-logo.png +0 -0
  510. data/sample/kof2005/ruby-pink-circle-logo.png +0 -0
  511. data/sample/kof2005/skip-up-with-ruby-gnome2.rd +450 -0
  512. data/sample/kof2005/widget.svg +202 -0
  513. data/sample/kou/clear-blue-headline-background.svg +283 -0
  514. data/sample/kou/clear-blue-icon.svg +194 -0
  515. data/sample/kou/horizontal-bar.svg +82 -0
  516. data/sample/kou/quote.svg +497 -0
  517. data/sample/kou/vertical-bar.svg +70 -0
  518. data/sample/lavie.png +0 -0
  519. data/sample/lightning-talk.rd +50 -0
  520. data/sample/lldn/input.svg +269 -0
  521. data/sample/lldn/interface.svg +410 -0
  522. data/sample/lldn/kame.png +0 -0
  523. data/sample/lldn/lavie.png +0 -0
  524. data/sample/lldn/lldn.rd +212 -0
  525. data/sample/lldn/output.svg +284 -0
  526. data/sample/lldn/rabbit-rwiki.svg +353 -0
  527. data/sample/lldn/rabbit_banner.png +0 -0
  528. data/sample/lldn/rabbit_banner2.png +0 -0
  529. data/sample/m17n.rd +138 -0
  530. data/sample/momo/banner/bn1.png +0 -0
  531. data/sample/momo/banner/bn2.png +0 -0
  532. data/sample/momo/banner/bn_psd.psd +0 -0
  533. data/sample/momo/banner/bn_psd2.psd +0 -0
  534. data/sample/momo/tailavi/tailavi-ruby.png +0 -0
  535. data/sample/momo/tailavi/tailavi-ruby.psd +0 -0
  536. data/sample/momo/tailavi/tailavi-taiyaki.png +0 -0
  537. data/sample/momo/tailavi/tailavi-taiyaki.psd +0 -0
  538. data/sample/momo/tailavi/tailavi-yokubari.png +0 -0
  539. data/sample/momo/tailavi/tailavi-yokubari.psd +0 -0
  540. data/sample/momo/tailavi/taiyaki.png +0 -0
  541. data/sample/momo/tailavi/taiyaki.psd +0 -0
  542. data/sample/momo/usako/blue_dot.png +0 -0
  543. data/sample/momo/usako/green_dot.png +0 -0
  544. data/sample/momo/usako/rabbit.png +0 -0
  545. data/sample/momo/usako/rabbit_mimi.png +0 -0
  546. data/sample/momo/usako/rabbit_mimi2.png +0 -0
  547. data/sample/momo/usako/red_dot.png +0 -0
  548. data/sample/momo/usako/ruby.png +0 -0
  549. data/sample/momo/usako/ruby_new.png +0 -0
  550. data/sample/momo/usako/usa1.png +0 -0
  551. data/sample/momo/usako/usa2.png +0 -0
  552. data/sample/momo/usako/usa3.png +0 -0
  553. data/sample/momo/usako/usako_psd.psd +0 -0
  554. data/sample/momo/usako/usako_psd_100.png +0 -0
  555. data/sample/momo/usako/usako_psd_200.png +0 -0
  556. data/sample/ppt/hare-and-tortoise-end.png +0 -0
  557. data/sample/ppt/hare-and-tortoise-middle.png +0 -0
  558. data/sample/ppt/hare-and-tortoise-start.png +0 -0
  559. data/sample/ppt/ppt.rd +207 -0
  560. data/sample/ppt/rabbit-with-ruby.png +0 -0
  561. data/sample/pre.rd +112 -0
  562. data/sample/rabbit-balloon.eps +233 -0
  563. data/sample/rabbit-balloon.obj +93 -0
  564. data/sample/rabbit-en.rd +376 -0
  565. data/sample/rabbit-history.svg +280 -0
  566. data/sample/rabbit-implementation.rd +187 -0
  567. data/sample/rabbit.dia +408 -0
  568. data/sample/rabbit.hiki +328 -0
  569. data/sample/rabbit.rd +383 -0
  570. data/sample/rabbit.xcf +0 -0
  571. data/sample/rabbit/theme/festival/festival.rb +6 -0
  572. data/sample/rabbit/theme/gl-sample/gl-sample.rb +29 -0
  573. data/sample/rabbit/theme/image-with-frame/image-with-frame.rb +2 -0
  574. data/sample/rabbit/theme/image-with-no-shadow-frame/image-with-no-shadow-frame.rb +3 -0
  575. data/sample/rabbit/theme/image-without-frame/image-without-frame.rb +2 -0
  576. data/sample/rabbit/theme/kof2005/kof2005.rb +9 -0
  577. data/sample/rabbit/theme/kof2005/property.rb +3 -0
  578. data/sample/rabbit/theme/lightning-talk-with-contact/lightning-talk-with-contact.rb +6 -0
  579. data/sample/rabbit/theme/lldn/lldn.rb +20 -0
  580. data/sample/rabbit/theme/pdf/pdf.rb +16 -0
  581. data/sample/rabbit/theme/pdf/property.rb +4 -0
  582. data/sample/rabbit/theme/ppt/ppt.rb +5 -0
  583. data/sample/rabbit/theme/rabbit-and-tortoise/rabbit-and-tortoise.rb +11 -0
  584. data/sample/rabbit/theme/rectangle-image-slide-number/rectangle-image-slide-number.rb +4 -0
  585. data/sample/rabbit/theme/stop-auto-slide/stop-auto-slide.rb +2 -0
  586. data/sample/rabbit/theme/triangle-image-slide-number/triangle-image-slide-number.rb +5 -0
  587. data/sample/rabbit_icon.ico +0 -0
  588. data/sample/rabbit_icon.png +0 -0
  589. data/sample/shocker.jpg +0 -0
  590. data/sample/slide-property.hiki +14 -0
  591. data/sample/slide-property.rab +18 -0
  592. data/sample/sode/kame-color.riff +0 -0
  593. data/sample/sode/kame.riff +0 -0
  594. data/sample/spiral.svg +29 -0
  595. data/sample/table-en.rd +55 -0
  596. data/sample/table.rd +55 -0
  597. data/sample/theme-bench-en.rab +127 -0
  598. data/sample/theme-bench.rab +128 -0
  599. data/sample/usagi.png +0 -0
  600. data/sample/usatti/kame-taro.png +0 -0
  601. data/sample/usatti/rabbit-pink-logo.png +0 -0
  602. data/sample/usatti/rabbit-pink-logo2.png +0 -0
  603. data/sample/usatti/ruby-pink-circle-logo.png +0 -0
  604. data/sample/usatti/ruby-pink-circle.png +0 -0
  605. data/sample/usatti/ruby-pink-polygon-logo.png +0 -0
  606. data/sample/usatti/ruby-pink-polygon.png +0 -0
  607. data/sample/usatti/tanu-kitaro.png +0 -0
  608. data/sample/usatti/usa-taro.png +0 -0
  609. data/sample/usatti/yukidaru-taro.png +0 -0
  610. data/setup.rb +1585 -0
  611. data/test/rabbit-test-utils.rb +24 -0
  612. data/test/run-test.rb +11 -0
  613. data/test/test_applier.rb +42 -0
  614. data/test/test_color.rb +42 -0
  615. data/test/test_element.rb +91 -0
  616. data/test/test_source.rb +47 -0
  617. data/test/test_utils.rb +50 -0
  618. data/update-mo.rb +20 -0
  619. data/update-po.rb +57 -0
  620. metadata +703 -0
@@ -0,0 +1,24 @@
1
+ require "rabbit/utils"
2
+
3
+ dir = File.join("rabbit", "parser")
4
+ Rabbit::Utils.require_files_under_directory_in_load_path(dir)
5
+
6
+ module Rabbit
7
+ module Parser
8
+ module_function
9
+ def parse(canvas, source)
10
+ parser = Base.find_loader(source)
11
+ if parser.nil?
12
+ format = _("unsupported format. (supported: %s)")
13
+ loader_names = Base.loaders.collect {|loader| loader.name}
14
+ message = format % "[#{loader_names.join(', ')}]"
15
+ raise UnsupportedFormatError.new(message)
16
+ end
17
+ parser.new(canvas, source).parse
18
+ end
19
+
20
+ def normalize_property_name(name)
21
+ name.gsub(/_/, "-").strip
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ require "rabbit/utils"
2
+
3
+ module Rabbit
4
+ module Parser
5
+ class Base
6
+ extend ModuleLoader
7
+
8
+ class << self
9
+ def name
10
+ super.split(/::/).last
11
+ end
12
+ end
13
+
14
+ def initialize(canvas, source)
15
+ @canvas = canvas
16
+ @source = source
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,43 @@
1
+ begin
2
+ require 'anthy'
3
+ Anthy.set_personality("")
4
+ rescue LoadError
5
+ end
6
+
7
+ require 'rabbit/utils'
8
+
9
+ module Rabbit
10
+ module Parser
11
+ module Ext
12
+ module Anthy
13
+ include Element
14
+ include GetText
15
+
16
+ module_function
17
+ def available?
18
+ defined?(::Anthy)
19
+ end
20
+
21
+ def hiragana_to_kanji(text)
22
+ context = ::Anthy::Context.new
23
+ context.encoding = ::Anthy::EUC_JP_ENCODING
24
+ converted_text = ''
25
+ text.split(/(\s+)/m).each do |sentence|
26
+ if /\A\s+\z/m =~ sentence
27
+ converted_text << sentence
28
+ next
29
+ end
30
+ context.reset
31
+ context.string = Converter.to_eucjp_from_utf8(sentence)
32
+ context.stat.nr_segment.times do |i|
33
+ segment = context.segment(i, 0)
34
+ converted_text << Converter.to_utf8_from_eucjp(segment)
35
+ end
36
+ end
37
+
38
+ converted_text
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,122 @@
1
+ begin
2
+ require 'htree'
3
+ rescue LoadError
4
+ end
5
+
6
+ require 'rabbit/utils'
7
+ require 'rabbit/parser/ext/escape'
8
+
9
+ module Rabbit
10
+ module Parser
11
+ module Ext
12
+ module Enscript
13
+ include Element
14
+ include GetText
15
+
16
+ @@enscript_highlight = {}
17
+ enscript_highlight = []
18
+ begin
19
+ enscript_highlight = `enscript --help-highlight`
20
+ if enscript_highlight.respond_to?(:encode)
21
+ enscript_highlight = enscript_highlight.encode("UTF-8", "ISO-8859-1")
22
+ end
23
+ enscript_highlight = enscript_highlight.scan(/^Name: (\w+)/)
24
+ rescue Errno::ENOENT => ignored
25
+ end
26
+ enscript_highlight.flatten.each do |name|
27
+ @@enscript_highlight[name.downcase] = name
28
+ end
29
+
30
+ module_function
31
+ def check_availability(lang, logger)
32
+ if @@enscript_highlight.has_key?(lang)
33
+ true
34
+ else
35
+ logger.warn(_("enscript: unsupported language: %s") % lang)
36
+ false
37
+ end
38
+ end
39
+
40
+ def highlight(lang, text, logger)
41
+ src_file = Tempfile.new("rabbit-enscript")
42
+ src_file.open
43
+ src_file.print(text)
44
+ src_file.close
45
+ html_file = Tempfile.new("rabbit-enscript-html")
46
+ args = [
47
+ "--quiet", "--color", "--language=html",
48
+ "--highlight=#{@@enscript_highlight[lang]}",
49
+ "--output=#{html_file.path}",
50
+ src_file.path,
51
+ ]
52
+ if SystemRunner.run("enscript", *args)
53
+ html_file.open
54
+ html_to_rabbit(html_file.read, logger)
55
+ else
56
+ nil
57
+ end
58
+ end
59
+
60
+ def html_to_rabbit(html, logger)
61
+ unless defined?(HTree)
62
+ logger.warn(_("enscript: can't find HTree library"))
63
+ return nil
64
+ end
65
+ tree = HTree(extract_newline_around_pre(html))
66
+ pre = find_element(tree, "pre")
67
+ address = find_element(tree, "address")
68
+ element = tree_to_rabbit(pre, logger)
69
+ if element
70
+ logger.info(address.extract_text.to_s)
71
+ PreformattedBlock.new(element)
72
+ else
73
+ nil
74
+ end
75
+ end
76
+
77
+ def extract_newline_around_pre(html)
78
+ html = html.gsub(/<pre[^>]*>\n/i, '<pre\1>')
79
+ html.gsub(/\n<\/pre>/i, '</pre>')
80
+ end
81
+
82
+ def find_element(tree, name)
83
+ tree.find_element("{http://www.w3.org/1999/xhtml}#{name}")
84
+ end
85
+
86
+ def tree_to_rabbit(tree, logger)
87
+ element = element_to_rabbit(tree, logger)
88
+ return nil if element.nil?
89
+ tree.each_child do |child|
90
+ if child.text?
91
+ element << Text.new(Escape.escape_meta_character(child.to_s))
92
+ else
93
+ child_element = tree_to_rabbit(child, logger)
94
+ element << child_element unless child_element.nil?
95
+ end
96
+ end
97
+ element
98
+ end
99
+
100
+ def element_to_rabbit(element, logger)
101
+ case element.qualified_name
102
+ when "pre"
103
+ PreformattedText.new
104
+ when "b"
105
+ Keyword.new
106
+ when "i"
107
+ Element::Comment.new
108
+ when "font"
109
+ text = TextContainer.new
110
+ color = element.get_attribute("color").to_s
111
+ text.add_default_prop("foreground", color)
112
+ text
113
+ else
114
+ format = _("enscript: unsupported element name: %s")
115
+ logger.warn(format % element.qualified_name)
116
+ nil
117
+ end
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,4178 @@
1
+ require 'rabbit/element'
2
+
3
+ module Rabbit
4
+ module Parser
5
+ module Ext
6
+ module Entity
7
+ TABLE = {
8
+ # angle with down zig-zag arrow
9
+ "angzarr" => "&#x0237C;",
10
+ # circle, mid below
11
+ "cirmid" => "&#x02AEF;",
12
+ # left, curved, down arrow
13
+ "cudarrl" => "&#x02938;",
14
+ # right, curved, down arrow
15
+ "cudarrr" => "&#x02935;",
16
+ # /curvearrowleft A: left curved arrow
17
+ "cularr" => "&#x021B6;",
18
+ # curved left arrow with plus
19
+ "cularrp" => "&#x0293D;",
20
+ # /curvearrowright A: rt curved arrow
21
+ "curarr" => "&#x021B7;",
22
+ # curved right arrow with minus
23
+ "curarrm" => "&#x0293C;",
24
+ # down two-headed arrow
25
+ "Darr" => "&#x021A1;",
26
+ # /Downarrow A: down dbl arrow
27
+ "dArr" => "&#x021D3;",
28
+ # /downdownarrows A: two down arrows
29
+ "ddarr" => "&#x021CA;",
30
+ # right arrow with dotted stem
31
+ "DDotrahd" => "&#x02911;",
32
+ # down fish tail
33
+ "dfisht" => "&#x0297F;",
34
+ # down harpoon-left, down harpoon-right
35
+ "dHar" => "&#x02965;",
36
+ # /downharpoonleft A: dn harpoon-left
37
+ "dharl" => "&#x021C3;",
38
+ # /downharpoonright A: down harpoon-rt
39
+ "dharr" => "&#x021C2;",
40
+ # down arrow, up arrow
41
+ "duarr" => "&#x021F5;",
42
+ # down harp, up harp
43
+ "duhar" => "&#x0296F;",
44
+ # right long zig-zag arrow
45
+ "dzigrarr" => "&#x027FF;",
46
+ # equal, right arrow below
47
+ "erarr" => "&#x02971;",
48
+ # /Leftrightarrow A: l&r dbl arrow
49
+ "hArr" => "&#x021D4;",
50
+ # /leftrightarrow A: l&r arrow
51
+ "harr" => "&#x02194;",
52
+ # left and right arrow with a circle
53
+ "harrcir" => "&#x02948;",
54
+ # /leftrightsquigarrow A: l&r arr-wavy
55
+ "harrw" => "&#x021AD;",
56
+ # horizontal open arrow
57
+ "hoarr" => "&#x021FF;",
58
+ # image of
59
+ "imof" => "&#x022B7;",
60
+ # /Lleftarrow A: left triple arrow
61
+ "lAarr" => "&#x021DA;",
62
+ # /twoheadleftarrow A:
63
+ "Larr" => "&#x0219E;",
64
+ # left arrow-bar, filled square
65
+ "larrbfs" => "&#x0291F;",
66
+ # left arrow, filled square
67
+ "larrfs" => "&#x0291D;",
68
+ # /hookleftarrow A: left arrow-hooked
69
+ "larrhk" => "&#x021A9;",
70
+ # /looparrowleft A: left arrow-looped
71
+ "larrlp" => "&#x021AB;",
72
+ # left arrow, plus
73
+ "larrpl" => "&#x02939;",
74
+ # left arrow, similar
75
+ "larrsim" => "&#x02973;",
76
+ # /leftarrowtail A: left arrow-tailed
77
+ "larrtl" => "&#x021A2;",
78
+ # left double arrow-tail
79
+ "lAtail" => "&#x0291B;",
80
+ # left arrow-tail
81
+ "latail" => "&#x02919;",
82
+ # left doubly broken arrow
83
+ "lBarr" => "&#x0290E;",
84
+ # left broken arrow
85
+ "lbarr" => "&#x0290C;",
86
+ # left down curved arrow
87
+ "ldca" => "&#x02936;",
88
+ # left harpoon-down over right harpoon-down
89
+ "ldrdhar" => "&#x02967;",
90
+ # left-down-right-up harpoon
91
+ "ldrushar" => "&#x0294B;",
92
+ # left down angled arrow
93
+ "ldsh" => "&#x021B2;",
94
+ # left fish tail
95
+ "lfisht" => "&#x0297C;",
96
+ # left harpoon-up over left harpoon-down
97
+ "lHar" => "&#x02962;",
98
+ # /leftharpoondown A: l harpoon-down
99
+ "lhard" => "&#x021BD;",
100
+ # /leftharpoonup A: left harpoon-up
101
+ "lharu" => "&#x021BC;",
102
+ # left harpoon-up over long dash
103
+ "lharul" => "&#x0296A;",
104
+ # /leftleftarrows A: two left arrows
105
+ "llarr" => "&#x021C7;",
106
+ # left harpoon-down below long dash
107
+ "llhard" => "&#x0296B;",
108
+ # left open arrow
109
+ "loarr" => "&#x021FD;",
110
+ # /leftrightarrows A: l arr over r arr
111
+ "lrarr" => "&#x021C6;",
112
+ # /leftrightharpoons A: l harp over r
113
+ "lrhar" => "&#x021CB;",
114
+ # right harpoon-down below long dash
115
+ "lrhard" => "&#x0296D;",
116
+ # /Lsh A:
117
+ "lsh" => "&#x021B0;",
118
+ # left-up-right-down harpoon
119
+ "lurdshar" => "&#x0294A;",
120
+ # left harpoon-up over right harpoon-up
121
+ "luruhar" => "&#x02966;",
122
+ # twoheaded mapsto
123
+ "Map" => "&#x02905;",
124
+ # /mapsto A:
125
+ "map" => "&#x021A6;",
126
+ # mid, circle below
127
+ "midcir" => "&#x02AF0;",
128
+ # /multimap A:
129
+ "mumap" => "&#x022B8;",
130
+ # NE arrow-hooked
131
+ "nearhk" => "&#x02924;",
132
+ # NE pointing dbl arrow
133
+ "neArr" => "&#x021D7;",
134
+ # /nearrow A: NE pointing arrow
135
+ "nearr" => "&#x02197;",
136
+ # /toea A: NE & SE arrows
137
+ "nesear" => "&#x02928;",
138
+ # /nLeftrightarrow A: not l&r dbl arr
139
+ "nhArr" => "&#x021CE;",
140
+ # /nleftrightarrow A: not l&r arrow
141
+ "nharr" => "&#x021AE;",
142
+ # /nLeftarrow A: not implied by
143
+ "nlArr" => "&#x021CD;",
144
+ # /nleftarrow A: not left arrow
145
+ "nlarr" => "&#x0219A;",
146
+ # /nRightarrow A: not implies
147
+ "nrArr" => "&#x021CF;",
148
+ # /nrightarrow A: not right arrow
149
+ "nrarr" => "&#x0219B;",
150
+ # not right arrow-curved
151
+ "nrarrc" => "&#x02933;&#x00338;",
152
+ # not right arrow-wavy
153
+ "nrarrw" => "&#x0219D;&#x00338;",
154
+ # not, vert, left and right double arrow
155
+ "nvHarr" => "&#x02904;",
156
+ # not, vert, left double arrow
157
+ "nvlArr" => "&#x02902;",
158
+ # not, vert, right double arrow
159
+ "nvrArr" => "&#x02903;",
160
+ # NW arrow-hooked
161
+ "nwarhk" => "&#x02923;",
162
+ # NW pointing dbl arrow
163
+ "nwArr" => "&#x021D6;",
164
+ # /nwarrow A: NW pointing arrow
165
+ "nwarr" => "&#x02196;",
166
+ # NW & NE arrows
167
+ "nwnear" => "&#x02927;",
168
+ # /circlearrowleft A: l arr in circle
169
+ "olarr" => "&#x021BA;",
170
+ # /circlearrowright A: r arr in circle
171
+ "orarr" => "&#x021BB;",
172
+ # original of
173
+ "origof" => "&#x022B6;",
174
+ # /Rrightarrow A: right triple arrow
175
+ "rAarr" => "&#x021DB;",
176
+ # /twoheadrightarrow A:
177
+ "Rarr" => "&#x021A0;",
178
+ # approximate, right arrow above
179
+ "rarrap" => "&#x02975;",
180
+ # right arrow-bar, filled square
181
+ "rarrbfs" => "&#x02920;",
182
+ # right arrow-curved
183
+ "rarrc" => "&#x02933;",
184
+ # right arrow, filled square
185
+ "rarrfs" => "&#x0291E;",
186
+ # /hookrightarrow A: rt arrow-hooked
187
+ "rarrhk" => "&#x021AA;",
188
+ # /looparrowright A: rt arrow-looped
189
+ "rarrlp" => "&#x021AC;",
190
+ # right arrow, plus
191
+ "rarrpl" => "&#x02945;",
192
+ # right arrow, similar
193
+ "rarrsim" => "&#x02974;",
194
+ # right two-headed arrow with tail
195
+ "Rarrtl" => "&#x02916;",
196
+ # /rightarrowtail A: rt arrow-tailed
197
+ "rarrtl" => "&#x021A3;",
198
+ # /rightsquigarrow A: rt arrow-wavy
199
+ "rarrw" => "&#x0219D;",
200
+ # right double arrow-tail
201
+ "rAtail" => "&#x0291C;",
202
+ # right arrow-tail
203
+ "ratail" => "&#x0291A;",
204
+ # /drbkarow A: twoheaded right broken arrow
205
+ "RBarr" => "&#x02910;",
206
+ # /dbkarow A: right doubly broken arrow
207
+ "rBarr" => "&#x0290F;",
208
+ # /bkarow A: right broken arrow
209
+ "rbarr" => "&#x0290D;",
210
+ # right down curved arrow
211
+ "rdca" => "&#x02937;",
212
+ # right harpoon-down over left harpoon-down
213
+ "rdldhar" => "&#x02969;",
214
+ # right down angled arrow
215
+ "rdsh" => "&#x021B3;",
216
+ # right fish tail
217
+ "rfisht" => "&#x0297D;",
218
+ # right harpoon-up over right harpoon-down
219
+ "rHar" => "&#x02964;",
220
+ # /rightharpoondown A: rt harpoon-down
221
+ "rhard" => "&#x021C1;",
222
+ # /rightharpoonup A: rt harpoon-up
223
+ "rharu" => "&#x021C0;",
224
+ # right harpoon-up over long dash
225
+ "rharul" => "&#x0296C;",
226
+ # /rightleftarrows A: r arr over l arr
227
+ "rlarr" => "&#x021C4;",
228
+ # /rightleftharpoons A: r harp over l
229
+ "rlhar" => "&#x021CC;",
230
+ # right open arrow
231
+ "roarr" => "&#x021FE;",
232
+ # /rightrightarrows A: two rt arrows
233
+ "rrarr" => "&#x021C9;",
234
+ # /Rsh A:
235
+ "rsh" => "&#x021B1;",
236
+ # right harpoon-up over left harpoon-up
237
+ "ruluhar" => "&#x02968;",
238
+ # /hksearow A: SE arrow-hooken
239
+ "searhk" => "&#x02925;",
240
+ # SE pointing dbl arrow
241
+ "seArr" => "&#x021D8;",
242
+ # /searrow A: SE pointing arrow
243
+ "searr" => "&#x02198;",
244
+ # /tosa A: SE & SW arrows
245
+ "seswar" => "&#x02929;",
246
+ # similar, right arrow below
247
+ "simrarr" => "&#x02972;",
248
+ # short left arrow
249
+ "slarr" => "&#x02190;",
250
+ # short right arrow
251
+ "srarr" => "&#x02192;",
252
+ # /hkswarow A: SW arrow-hooked
253
+ "swarhk" => "&#x02926;",
254
+ # SW pointing dbl arrow
255
+ "swArr" => "&#x021D9;",
256
+ # /swarrow A: SW pointing arrow
257
+ "swarr" => "&#x02199;",
258
+ # SW & NW arrows
259
+ "swnwar" => "&#x0292A;",
260
+ # up two-headed arrow
261
+ "Uarr" => "&#x0219F;",
262
+ # /Uparrow A: up dbl arrow
263
+ "uArr" => "&#x021D1;",
264
+ # up two-headed arrow above circle
265
+ "Uarrocir" => "&#x02949;",
266
+ # up arrow, down arrow
267
+ "udarr" => "&#x021C5;",
268
+ # up harp, down harp
269
+ "udhar" => "&#x0296E;",
270
+ # up fish tail
271
+ "ufisht" => "&#x0297E;",
272
+ # up harpoon-left, up harpoon-right
273
+ "uHar" => "&#x02963;",
274
+ # /upharpoonleft A: up harpoon-left
275
+ "uharl" => "&#x021BF;",
276
+ # /upharpoonright /restriction A: up harp-r
277
+ "uharr" => "&#x021BE;",
278
+ # /upuparrows A: two up arrows
279
+ "uuarr" => "&#x021C8;",
280
+ # /Updownarrow A: up&down dbl arrow
281
+ "vArr" => "&#x021D5;",
282
+ # /updownarrow A: up&down arrow
283
+ "varr" => "&#x02195;",
284
+ # /Longleftrightarrow A: long l&r dbl arr
285
+ "xhArr" => "&#x027FA;",
286
+ # /longleftrightarrow A: long l&r arr
287
+ "xharr" => "&#x027F7;",
288
+ # /Longleftarrow A: long l dbl arrow
289
+ "xlArr" => "&#x027F8;",
290
+ # /longleftarrow A: long left arrow
291
+ "xlarr" => "&#x027F5;",
292
+ # /longmapsto A:
293
+ "xmap" => "&#x027FC;",
294
+ # /Longrightarrow A: long rt dbl arr
295
+ "xrArr" => "&#x027F9;",
296
+ # /longrightarrow A: long right arrow
297
+ "xrarr" => "&#x027F6;",
298
+ # right zig-zag arrow
299
+ "zigrarr" => "&#x021DD;",
300
+ # most positive
301
+ "ac" => "&#x0223E;",
302
+ # most positive, two lines below
303
+ "acE" => "&#x0223E;&#x00333;",
304
+ # /amalg B: amalgamation or coproduct
305
+ "amalg" => "&#x02A3F;",
306
+ # bar, vee
307
+ "barvee" => "&#x022BD;",
308
+ # /doublebarwedge B: log and, dbl bar above
309
+ "Barwed" => "&#x02306;",
310
+ # /barwedge B: logical and, bar above
311
+ "barwed" => "&#x02305;",
312
+ # reverse solidus in square
313
+ "bsolb" => "&#x029C5;",
314
+ # /Cap /doublecap B: dbl intersection
315
+ "Cap" => "&#x022D2;",
316
+ # intersection, and
317
+ "capand" => "&#x02A44;",
318
+ # intersection, bar, union
319
+ "capbrcup" => "&#x02A49;",
320
+ # intersection, intersection, joined
321
+ "capcap" => "&#x02A4B;",
322
+ # intersection above union
323
+ "capcup" => "&#x02A47;",
324
+ # intersection, with dot
325
+ "capdot" => "&#x02A40;",
326
+ # intersection, serifs
327
+ "caps" => "&#x02229;&#x0FE00;",
328
+ # closed intersection, serifs
329
+ "ccaps" => "&#x02A4D;",
330
+ # closed union, serifs
331
+ "ccups" => "&#x02A4C;",
332
+ # closed union, serifs, smash product
333
+ "ccupssm" => "&#x02A50;",
334
+ # /coprod L: coproduct operator
335
+ "coprod" => "&#x02210;",
336
+ # /Cup /doublecup B: dbl union
337
+ "Cup" => "&#x022D3;",
338
+ # union, bar, intersection
339
+ "cupbrcap" => "&#x02A48;",
340
+ # union above intersection
341
+ "cupcap" => "&#x02A46;",
342
+ # union, union, joined
343
+ "cupcup" => "&#x02A4A;",
344
+ # union, with dot
345
+ "cupdot" => "&#x0228D;",
346
+ # union, or
347
+ "cupor" => "&#x02A45;",
348
+ # union, serifs
349
+ "cups" => "&#x0222A;&#x0FE00;",
350
+ # /curlyvee B: curly logical or
351
+ "cuvee" => "&#x022CE;",
352
+ # /curlywedge B: curly logical and
353
+ "cuwed" => "&#x022CF;",
354
+ # /ddagger B: double dagger relation
355
+ "Dagger" => "&#x02021;",
356
+ # /dagger B: dagger relation
357
+ "dagger" => "&#x02020;",
358
+ # /diamond B: open diamond
359
+ "diam" => "&#x022C4;",
360
+ # /divideontimes B: division on times
361
+ "divonx" => "&#x022C7;",
362
+ # equal, plus
363
+ "eplus" => "&#x02A71;",
364
+ # hermitian conjugate matrix
365
+ "hercon" => "&#x022B9;",
366
+ # /intercal B: intercal
367
+ "intcal" => "&#x022BA;",
368
+ # /intprod
369
+ "iprod" => "&#x02A3C;",
370
+ # plus sign in left half circle
371
+ "loplus" => "&#x02A2D;",
372
+ # multiply sign in left half circle
373
+ "lotimes" => "&#x02A34;",
374
+ # /leftthreetimes B:
375
+ "lthree" => "&#x022CB;",
376
+ # /ltimes B: times sign, left closed
377
+ "ltimes" => "&#x022C9;",
378
+ # /ast B: asterisk
379
+ "midast" => "&#x0002A;",
380
+ # /boxminus B: minus sign in box
381
+ "minusb" => "&#x0229F;",
382
+ # /dotminus B: minus sign, dot above
383
+ "minusd" => "&#x02238;",
384
+ # minus sign, dot below
385
+ "minusdu" => "&#x02A2A;",
386
+ # bar, intersection
387
+ "ncap" => "&#x02A43;",
388
+ # bar, union
389
+ "ncup" => "&#x02A42;",
390
+ # /circledast B: asterisk in circle
391
+ "oast" => "&#x0229B;",
392
+ # /circledcirc B: small circle in circle
393
+ "ocir" => "&#x0229A;",
394
+ # /circleddash B: hyphen in circle
395
+ "odash" => "&#x0229D;",
396
+ # divide in circle
397
+ "odiv" => "&#x02A38;",
398
+ # /odot B: middle dot in circle
399
+ "odot" => "&#x02299;",
400
+ # dot, solidus, dot in circle
401
+ "odsold" => "&#x029BC;",
402
+ # filled circle in circle
403
+ "ofcir" => "&#x029BF;",
404
+ # greater-than in circle
405
+ "ogt" => "&#x029C1;",
406
+ # circle with horizontal bar
407
+ "ohbar" => "&#x029B5;",
408
+ # large circle in circle
409
+ "olcir" => "&#x029BE;",
410
+ # less-than in circle
411
+ "olt" => "&#x029C0;",
412
+ # vertical bar in circle
413
+ "omid" => "&#x029B6;",
414
+ # /ominus B: minus sign in circle
415
+ "ominus" => "&#x02296;",
416
+ # parallel in circle
417
+ "opar" => "&#x029B7;",
418
+ # perpendicular in circle
419
+ "operp" => "&#x029B9;",
420
+ # /oplus B: plus sign in circle
421
+ "oplus" => "&#x02295;",
422
+ # /oslash B: solidus in circle
423
+ "osol" => "&#x02298;",
424
+ # multiply sign in double circle
425
+ "Otimes" => "&#x02A37;",
426
+ # /otimes B: multiply sign in circle
427
+ "otimes" => "&#x02297;",
428
+ # multiply sign in circle, circumflex accent
429
+ "otimesas" => "&#x02A36;",
430
+ # circle with vertical bar
431
+ "ovbar" => "&#x0233D;",
432
+ # plus, circumflex accent above
433
+ "plusacir" => "&#x02A23;",
434
+ # /boxplus B: plus sign in box
435
+ "plusb" => "&#x0229E;",
436
+ # plus, small circle above
437
+ "pluscir" => "&#x02A22;",
438
+ # /dotplus B: plus sign, dot above
439
+ "plusdo" => "&#x02214;",
440
+ # plus sign, dot below
441
+ "plusdu" => "&#x02A25;",
442
+ # plus, equals
443
+ "pluse" => "&#x02A72;",
444
+ # plus, similar below
445
+ "plussim" => "&#x02A26;",
446
+ # plus, two; Nim-addition
447
+ "plustwo" => "&#x02A27;",
448
+ # /prod L: product operator
449
+ "prod" => "&#x0220F;",
450
+ # reverse most positive, line below
451
+ "race" => "&#x029DA;",
452
+ # plus sign in right half circle
453
+ "roplus" => "&#x02A2E;",
454
+ # multiply sign in right half circle
455
+ "rotimes" => "&#x02A35;",
456
+ # /rightthreetimes B:
457
+ "rthree" => "&#x022CC;",
458
+ # /rtimes B: times sign, right closed
459
+ "rtimes" => "&#x022CA;",
460
+ # /cdot B: small middle dot
461
+ "sdot" => "&#x022C5;",
462
+ # /dotsquare /boxdot B: small dot in box
463
+ "sdotb" => "&#x022A1;",
464
+ # /setminus B: reverse solidus
465
+ "setmn" => "&#x02216;",
466
+ # plus, similar above
467
+ "simplus" => "&#x02A24;",
468
+ # smash product
469
+ "smashp" => "&#x02A33;",
470
+ # solidus in square
471
+ "solb" => "&#x029C4;",
472
+ # /sqcap B: square intersection
473
+ "sqcap" => "&#x02293;",
474
+ # square intersection, serifs
475
+ "sqcaps" => "&#x02293;&#x0FE00;",
476
+ # /sqcup B: square union
477
+ "sqcup" => "&#x02294;",
478
+ # square union, serifs
479
+ "sqcups" => "&#x02294;&#x0FE00;",
480
+ # /smallsetminus B: sm reverse solidus
481
+ "ssetmn" => "&#x02216;",
482
+ # /star B: small star, filled
483
+ "sstarf" => "&#x022C6;",
484
+ # subset, with dot
485
+ "subdot" => "&#x02ABD;",
486
+ # /sum L: summation operator
487
+ "sum" => "&#x02211;",
488
+ # superset, with dot
489
+ "supdot" => "&#x02ABE;",
490
+ # /boxtimes B: multiply sign in box
491
+ "timesb" => "&#x022A0;",
492
+ # multiply sign, bar below
493
+ "timesbar" => "&#x02A31;",
494
+ # times, dot
495
+ "timesd" => "&#x02A30;",
496
+ # dot in triangle
497
+ "tridot" => "&#x025EC;",
498
+ # minus in triangle
499
+ "triminus" => "&#x02A3A;",
500
+ # plus in triangle
501
+ "triplus" => "&#x02A39;",
502
+ # triangle, serifs at bottom
503
+ "trisb" => "&#x029CD;",
504
+ # multiply in triangle
505
+ "tritime" => "&#x02A3B;",
506
+ # /uplus B: plus sign in union
507
+ "uplus" => "&#x0228E;",
508
+ # /veebar B: logical or, bar below
509
+ "veebar" => "&#x022BB;",
510
+ # wedge, bar below
511
+ "wedbar" => "&#x02A5F;",
512
+ # /wr B: wreath product
513
+ "wreath" => "&#x02240;",
514
+ # /bigcap L: intersection operator
515
+ "xcap" => "&#x022C2;",
516
+ # /bigcirc B: large circle
517
+ "xcirc" => "&#x025EF;",
518
+ # /bigcup L: union operator
519
+ "xcup" => "&#x022C3;",
520
+ # /bigtriangledown B: big dn tri, open
521
+ "xdtri" => "&#x025BD;",
522
+ # /bigodot L: circle dot operator
523
+ "xodot" => "&#x02A00;",
524
+ # /bigoplus L: circle plus operator
525
+ "xoplus" => "&#x02A01;",
526
+ # /bigotimes L: circle times operator
527
+ "xotime" => "&#x02A02;",
528
+ # /bigsqcup L: square union operator
529
+ "xsqcup" => "&#x02A06;",
530
+ # /biguplus L:
531
+ "xuplus" => "&#x02A04;",
532
+ # /bigtriangleup B: big up tri, open
533
+ "xutri" => "&#x025B3;",
534
+ # /bigvee L: logical and operator
535
+ "xvee" => "&#x022C1;",
536
+ # /bigwedge L: logical or operator
537
+ "xwedge" => "&#x022C0;",
538
+ # /llcorner O: lower left corner
539
+ "dlcorn" => "&#x0231E;",
540
+ # /lrcorner C: lower right corner
541
+ "drcorn" => "&#x0231F;",
542
+ # dbl left parenthesis, greater
543
+ "gtlPar" => "&#x02995;",
544
+ # left angle, dot
545
+ "langd" => "&#x02991;",
546
+ # left bracket, equal
547
+ "lbrke" => "&#x0298B;",
548
+ # left bracket, solidus bottom corner
549
+ "lbrksld" => "&#x0298F;",
550
+ # left bracket, solidus top corner
551
+ "lbrkslu" => "&#x0298D;",
552
+ # /lceil O: left ceiling
553
+ "lceil" => "&#x02308;",
554
+ # /lfloor O: left floor
555
+ "lfloor" => "&#x0230A;",
556
+ # /lmoustache
557
+ "lmoust" => "&#x023B0;",
558
+ # O: left parenthesis, lt
559
+ "lparlt" => "&#x02993;",
560
+ # dbl right parenthesis, less
561
+ "ltrPar" => "&#x02996;",
562
+ # right angle, dot
563
+ "rangd" => "&#x02992;",
564
+ # right bracket, equal
565
+ "rbrke" => "&#x0298C;",
566
+ # right bracket, solidus bottom corner
567
+ "rbrksld" => "&#x0298E;",
568
+ # right bracket, solidus top corner
569
+ "rbrkslu" => "&#x02990;",
570
+ # /rceil C: right ceiling
571
+ "rceil" => "&#x02309;",
572
+ # /rfloor C: right floor
573
+ "rfloor" => "&#x0230B;",
574
+ # /rmoustache
575
+ "rmoust" => "&#x023B1;",
576
+ # C: right paren, gt
577
+ "rpargt" => "&#x02994;",
578
+ # /ulcorner O: upper left corner
579
+ "ulcorn" => "&#x0231C;",
580
+ # /urcorner C: upper right corner
581
+ "urcorn" => "&#x0231D;",
582
+ # /gnapprox N: greater, not approximate
583
+ "gnap" => "&#x02A8A;",
584
+ # /gneqq N: greater, not dbl equals
585
+ "gnE" => "&#x02269;",
586
+ # /gneq N: greater, not equals
587
+ "gne" => "&#x02A88;",
588
+ # /gnsim N: greater, not similar
589
+ "gnsim" => "&#x022E7;",
590
+ # /gvertneqq N: gt, vert, not dbl eq
591
+ "gvnE" => "&#x02269;&#x0FE00;",
592
+ # /lnapprox N: less, not approximate
593
+ "lnap" => "&#x02A89;",
594
+ # /lneqq N: less, not double equals
595
+ "lnE" => "&#x02268;",
596
+ # /lneq N: less, not equals
597
+ "lne" => "&#x02A87;",
598
+ # /lnsim N: less, not similar
599
+ "lnsim" => "&#x022E6;",
600
+ # /lvertneqq N: less, vert, not dbl eq
601
+ "lvnE" => "&#x02268;&#x0FE00;",
602
+ # /napprox N: not approximate
603
+ "nap" => "&#x02249;",
604
+ # not approximately equal or equal to
605
+ "napE" => "&#x02A70;&#x00338;",
606
+ # not approximately identical to
607
+ "napid" => "&#x0224B;&#x00338;",
608
+ # /ncong N: not congruent with
609
+ "ncong" => "&#x02247;",
610
+ # not congruent, dot
611
+ "ncongdot" => "&#x02A6D;&#x00338;",
612
+ # /nequiv N: not identical with
613
+ "nequiv" => "&#x02262;",
614
+ # /ngeqq N: not greater, dbl equals
615
+ "ngE" => "&#x02267;&#x00338;",
616
+ # /ngeq N: not greater-than-or-equal
617
+ "nge" => "&#x02271;",
618
+ # /ngeqslant N: not gt-or-eq, slanted
619
+ "nges" => "&#x02A7E;&#x00338;",
620
+ # not triple greater than
621
+ "nGg" => "&#x022D9;&#x00338;",
622
+ # not greater, similar
623
+ "ngsim" => "&#x02275;",
624
+ # not, vert, much greater than
625
+ "nGt" => "&#x0226B;&#x020D2;",
626
+ # /ngtr N: not greater-than
627
+ "ngt" => "&#x0226F;",
628
+ # not much greater than, variant
629
+ "nGtv" => "&#x0226B;&#x00338;",
630
+ # /nleqq N: not less, dbl equals
631
+ "nlE" => "&#x02266;&#x00338;",
632
+ # /nleq N: not less-than-or-equal
633
+ "nle" => "&#x02270;",
634
+ # /nleqslant N: not less-or-eq, slant
635
+ "nles" => "&#x02A7D;&#x00338;",
636
+ # not triple less than
637
+ "nLl" => "&#x022D8;&#x00338;",
638
+ # not less, similar
639
+ "nlsim" => "&#x02274;",
640
+ # not, vert, much less than
641
+ "nLt" => "&#x0226A;&#x020D2;",
642
+ # /nless N: not less-than
643
+ "nlt" => "&#x0226E;",
644
+ # /ntriangleleft N: not left triangle
645
+ "nltri" => "&#x022EA;",
646
+ # /ntrianglelefteq N: not l tri, eq
647
+ "nltrie" => "&#x022EC;",
648
+ # not much less than, variant
649
+ "nLtv" => "&#x0226A;&#x00338;",
650
+ # /nmid
651
+ "nmid" => "&#x02224;",
652
+ # /nparallel N: not parallel
653
+ "npar" => "&#x02226;",
654
+ # /nprec N: not precedes
655
+ "npr" => "&#x02280;",
656
+ # not curly precedes, eq
657
+ "nprcue" => "&#x022E0;",
658
+ # /npreceq N: not precedes, equals
659
+ "npre" => "&#x02AAF;&#x00338;",
660
+ # /ntriangleright N: not rt triangle
661
+ "nrtri" => "&#x022EB;",
662
+ # /ntrianglerighteq N: not r tri, eq
663
+ "nrtrie" => "&#x022ED;",
664
+ # /nsucc N: not succeeds
665
+ "nsc" => "&#x02281;",
666
+ # not succeeds, curly eq
667
+ "nsccue" => "&#x022E1;",
668
+ # /nsucceq N: not succeeds, equals
669
+ "nsce" => "&#x02AB0;&#x00338;",
670
+ # /nsim N: not similar
671
+ "nsim" => "&#x02241;",
672
+ # /nsimeq N: not similar, equals
673
+ "nsime" => "&#x02244;",
674
+ # /nshortmid
675
+ "nsmid" => "&#x02224;",
676
+ # /nshortparallel N: not short par
677
+ "nspar" => "&#x02226;",
678
+ # not, square subset, equals
679
+ "nsqsube" => "&#x022E2;",
680
+ # not, square superset, equals
681
+ "nsqsupe" => "&#x022E3;",
682
+ # not subset
683
+ "nsub" => "&#x02284;",
684
+ # /nsubseteqq N: not subset, dbl eq
685
+ "nsubE" => "&#x02AC5;&#x00338;",
686
+ # /nsubseteq N: not subset, equals
687
+ "nsube" => "&#x02288;",
688
+ # not superset
689
+ "nsup" => "&#x02285;",
690
+ # /nsupseteqq N: not superset, dbl eq
691
+ "nsupE" => "&#x02AC6;&#x00338;",
692
+ # /nsupseteq N: not superset, equals
693
+ "nsupe" => "&#x02289;",
694
+ # not greater, less
695
+ "ntgl" => "&#x02279;",
696
+ # not less, greater
697
+ "ntlg" => "&#x02278;",
698
+ # not, vert, approximate
699
+ "nvap" => "&#x0224D;&#x020D2;",
700
+ # /nVDash N: not dbl vert, dbl dash
701
+ "nVDash" => "&#x022AF;",
702
+ # /nVdash N: not dbl vertical, dash
703
+ "nVdash" => "&#x022AE;",
704
+ # /nvDash N: not vertical, dbl dash
705
+ "nvDash" => "&#x022AD;",
706
+ # /nvdash N: not vertical, dash
707
+ "nvdash" => "&#x022AC;",
708
+ # not, vert, greater-than-or-equal
709
+ "nvge" => "&#x02265;&#x020D2;",
710
+ # not, vert, greater-than
711
+ "nvgt" => "&#x0003E;&#x020D2;",
712
+ # not, vert, less-than-or-equal
713
+ "nvle" => "&#x02264;&#x020D2;",
714
+ # not, vert, less-than
715
+ "nvlt" => "&#x0003C;&#x020D2;",
716
+ # not, vert, left triangle, equals
717
+ "nvltrie" => "&#x022B4;&#x020D2;",
718
+ # not, vert, right triangle, equals
719
+ "nvrtrie" => "&#x022B5;&#x020D2;",
720
+ # not, vert, similar
721
+ "nvsim" => "&#x0223C;&#x020D2;",
722
+ # parallel, similar
723
+ "parsim" => "&#x02AF3;",
724
+ # /precnapprox N: precedes, not approx
725
+ "prnap" => "&#x02AB9;",
726
+ # /precneqq N: precedes, not dbl eq
727
+ "prnE" => "&#x02AB5;",
728
+ # /precnsim N: precedes, not similar
729
+ "prnsim" => "&#x022E8;",
730
+ # reverse /nmid
731
+ "rnmid" => "&#x02AEE;",
732
+ # /succnapprox N: succeeds, not approx
733
+ "scnap" => "&#x02ABA;",
734
+ # /succneqq N: succeeds, not dbl eq
735
+ "scnE" => "&#x02AB6;",
736
+ # /succnsim N: succeeds, not similar
737
+ "scnsim" => "&#x022E9;",
738
+ # similar, not equals
739
+ "simne" => "&#x02246;",
740
+ # solidus, bar through
741
+ "solbar" => "&#x0233F;",
742
+ # /subsetneqq N: subset, not dbl eq
743
+ "subnE" => "&#x02ACB;",
744
+ # /subsetneq N: subset, not equals
745
+ "subne" => "&#x0228A;",
746
+ # /supsetneqq N: superset, not dbl eq
747
+ "supnE" => "&#x02ACC;",
748
+ # /supsetneq N: superset, not equals
749
+ "supne" => "&#x0228B;",
750
+ # /nsubset N: not subset, var
751
+ "vnsub" => "&#x02282;&#x020D2;",
752
+ # /nsupset N: not superset, var
753
+ "vnsup" => "&#x02283;&#x020D2;",
754
+ # /varsubsetneqq N: subset not dbl eq, var
755
+ "vsubnE" => "&#x02ACB;&#x0FE00;",
756
+ # /varsubsetneq N: subset, not eq, var
757
+ "vsubne" => "&#x0228A;&#x0FE00;",
758
+ # /varsupsetneqq N: super not dbl eq, var
759
+ "vsupnE" => "&#x02ACC;&#x0FE00;",
760
+ # /varsupsetneq N: superset, not eq, var
761
+ "vsupne" => "&#x0228B;&#x0FE00;",
762
+ # /angle - angle
763
+ "ang" => "&#x02220;",
764
+ # angle, equal
765
+ "ange" => "&#x029A4;",
766
+ # /measuredangle - angle-measured
767
+ "angmsd" => "&#x02221;",
768
+ # angle-measured, arrow, up, right
769
+ "angmsdaa" => "&#x029A8;",
770
+ # angle-measured, arrow, up, left
771
+ "angmsdab" => "&#x029A9;",
772
+ # angle-measured, arrow, down, right
773
+ "angmsdac" => "&#x029AA;",
774
+ # angle-measured, arrow, down, left
775
+ "angmsdad" => "&#x029AB;",
776
+ # angle-measured, arrow, right, up
777
+ "angmsdae" => "&#x029AC;",
778
+ # angle-measured, arrow, left, up
779
+ "angmsdaf" => "&#x029AD;",
780
+ # angle-measured, arrow, right, down
781
+ "angmsdag" => "&#x029AE;",
782
+ # angle-measured, arrow, left, down
783
+ "angmsdah" => "&#x029AF;",
784
+ # right angle-measured
785
+ "angrtvb" => "&#x022BE;",
786
+ # right angle-measured, dot
787
+ "angrtvbd" => "&#x0299D;",
788
+ # bottom square bracket
789
+ "bbrk" => "&#x023B5;",
790
+ # bottom above top square bracket
791
+ "bbrktbrk" => "&#x023B6;",
792
+ # reversed circle, slash
793
+ "bemptyv" => "&#x029B0;",
794
+ # /beth - beth, Hebrew
795
+ "beth" => "&#x02136;",
796
+ # two joined squares
797
+ "boxbox" => "&#x029C9;",
798
+ # /backprime - reverse prime
799
+ "bprime" => "&#x02035;",
800
+ # reverse semi-colon
801
+ "bsemi" => "&#x0204F;",
802
+ # circle, slash, small circle above
803
+ "cemptyv" => "&#x029B2;",
804
+ # circle, two horizontal stroked to the right
805
+ "cirE" => "&#x029C3;",
806
+ # circle, small circle to the right
807
+ "cirscir" => "&#x029C2;",
808
+ # /complement - complement sign
809
+ "comp" => "&#x02201;",
810
+ # /daleth - daleth, Hebrew
811
+ "daleth" => "&#x02138;",
812
+ # circle, slash, bar above
813
+ "demptyv" => "&#x029B1;",
814
+ # /ell - cursive small l
815
+ "ell" => "&#x02113;",
816
+ # /emptyset - zero, slash
817
+ "empty" => "&#x02205;",
818
+ # /varnothing - circle, slash
819
+ "emptyv" => "&#x02205;",
820
+ # /gimel - gimel, Hebrew
821
+ "gimel" => "&#x02137;",
822
+ # inverted iota
823
+ "iiota" => "&#x02129;",
824
+ # /Im - imaginary
825
+ "image" => "&#x02111;",
826
+ # /imath - small i, no dot
827
+ "imath" => "&#x00131;",
828
+ # /jmath - small j, no dot
829
+ "jmath" => "&#x0006A;",
830
+ # circle, slash, left arrow above
831
+ "laemptyv" => "&#x029B4;",
832
+ # lower left triangle
833
+ "lltri" => "&#x025FA;",
834
+ # lower right triangle
835
+ "lrtri" => "&#x022BF;",
836
+ # /mho - conductance
837
+ "mho" => "&#x02127;",
838
+ # not, vert, angle
839
+ "nang" => "&#x02220;&#x020D2;",
840
+ # /nexists - negated exists
841
+ "nexist" => "&#x02204;",
842
+ # /circledS - capital S in circle
843
+ "oS" => "&#x024C8;",
844
+ # /hbar - Planck's over 2pi
845
+ "planck" => "&#x0210F;",
846
+ # /hslash - variant Planck's over 2pi
847
+ "plankv" => "&#x0210F;",
848
+ # circle, slash, right arrow above
849
+ "raemptyv" => "&#x029B3;",
850
+ # reverse angle, equal
851
+ "range" => "&#x029A5;",
852
+ # /Re - real
853
+ "real" => "&#x0211C;",
854
+ # top square bracket
855
+ "tbrk" => "&#x023B4;",
856
+ # trapezium
857
+ "trpezium" => "&#x0FFFD;",
858
+ # upper left triangle
859
+ "ultri" => "&#x025F8;",
860
+ # upper right triangle
861
+ "urtri" => "&#x025F9;",
862
+ # vertical zig-zag line
863
+ "vzigzag" => "&#x0299A;",
864
+ # /wp - Weierstrass p
865
+ "weierp" => "&#x02118;",
866
+ # approximately equal or equal to
867
+ "apE" => "&#x02A70;",
868
+ # /approxeq R: approximate, equals
869
+ "ape" => "&#x0224A;",
870
+ # approximately identical to
871
+ "apid" => "&#x0224B;",
872
+ # /asymp R: asymptotically equal to
873
+ "asymp" => "&#x02248;",
874
+ # vert, dbl bar (over)
875
+ "Barv" => "&#x02AE7;",
876
+ # /backcong R: reverse congruent
877
+ "bcong" => "&#x0224C;",
878
+ # /backepsilon R: such that
879
+ "bepsi" => "&#x003F6;",
880
+ # /bowtie R:
881
+ "bowtie" => "&#x022C8;",
882
+ # /backsim R: reverse similar
883
+ "bsim" => "&#x0223D;",
884
+ # /backsimeq R: reverse similar, eq
885
+ "bsime" => "&#x022CD;",
886
+ # reverse solidus, subset
887
+ "bsolhsub" => "&#x0005C;&#x02282;",
888
+ # /Bumpeq R: bumpy equals
889
+ "bump" => "&#x0224E;",
890
+ # bump, equals
891
+ "bumpE" => "&#x02AAE;",
892
+ # /bumpeq R: bumpy equals, equals
893
+ "bumpe" => "&#x0224F;",
894
+ # /circeq R: circle, equals
895
+ "cire" => "&#x02257;",
896
+ # /Colon, two colons
897
+ "Colon" => "&#x02237;",
898
+ # double colon, equals
899
+ "Colone" => "&#x02A74;",
900
+ # /coloneq R: colon, equals
901
+ "colone" => "&#x02254;",
902
+ # congruent, dot
903
+ "congdot" => "&#x02A6D;",
904
+ # subset, closed
905
+ "csub" => "&#x02ACF;",
906
+ # subset, closed, equals
907
+ "csube" => "&#x02AD1;",
908
+ # superset, closed
909
+ "csup" => "&#x02AD0;",
910
+ # superset, closed, equals
911
+ "csupe" => "&#x02AD2;",
912
+ # /curlyeqprec R: curly eq, precedes
913
+ "cuepr" => "&#x022DE;",
914
+ # /curlyeqsucc R: curly eq, succeeds
915
+ "cuesc" => "&#x022DF;",
916
+ # dbl dash, vertical
917
+ "Dashv" => "&#x02AE4;",
918
+ # /dashv R: dash, vertical
919
+ "dashv" => "&#x022A3;",
920
+ # equal, asterisk above
921
+ "easter" => "&#x02A6E;",
922
+ # /eqcirc R: circle on equals sign
923
+ "ecir" => "&#x02256;",
924
+ # /eqcolon R: equals, colon
925
+ "ecolon" => "&#x02255;",
926
+ # /ddotseq R: equal with four dots
927
+ "eDDot" => "&#x02A77;",
928
+ # /doteqdot /Doteq R: eq, even dots
929
+ "eDot" => "&#x02251;",
930
+ # /fallingdotseq R: eq, falling dots
931
+ "efDot" => "&#x02252;",
932
+ # equal-or-greater
933
+ "eg" => "&#x02A9A;",
934
+ # /eqslantgtr R: equal-or-gtr, slanted
935
+ "egs" => "&#x02A96;",
936
+ # equal-or-greater, slanted, dot inside
937
+ "egsdot" => "&#x02A98;",
938
+ # equal-or-less
939
+ "el" => "&#x02A99;",
940
+ # /eqslantless R: eq-or-less, slanted
941
+ "els" => "&#x02A95;",
942
+ # equal-or-less, slanted, dot inside
943
+ "elsdot" => "&#x02A97;",
944
+ # /questeq R: equal with questionmark
945
+ "equest" => "&#x0225F;",
946
+ # equivalent, four dots above
947
+ "equivDD" => "&#x02A78;",
948
+ # /risingdotseq R: eq, rising dots
949
+ "erDot" => "&#x02253;",
950
+ # /doteq R: equals, single dot above
951
+ "esdot" => "&#x02250;",
952
+ # equal, similar
953
+ "Esim" => "&#x02A73;",
954
+ # /esim R: equals, similar
955
+ "esim" => "&#x02242;",
956
+ # /pitchfork R: pitchfork
957
+ "fork" => "&#x022D4;",
958
+ # fork, variant
959
+ "forkv" => "&#x02AD9;",
960
+ # /frown R: down curve
961
+ "frown" => "&#x02322;",
962
+ # /gtrapprox R: greater, approximate
963
+ "gap" => "&#x02A86;",
964
+ # /geqq R: greater, double equals
965
+ "gE" => "&#x02267;",
966
+ # /gtreqqless R: gt, dbl equals, less
967
+ "gEl" => "&#x02A8C;",
968
+ # /gtreqless R: greater, equals, less
969
+ "gel" => "&#x022DB;",
970
+ # /geqslant R: gt-or-equal, slanted
971
+ "ges" => "&#x02A7E;",
972
+ # greater than, closed by curve, equal, slanted
973
+ "gescc" => "&#x02AA9;",
974
+ # greater-than-or-equal, slanted, dot inside
975
+ "gesdot" => "&#x02A80;",
976
+ # greater-than-or-equal, slanted, dot above
977
+ "gesdoto" => "&#x02A82;",
978
+ # greater-than-or-equal, slanted, dot above left
979
+ "gesdotol" => "&#x02A84;",
980
+ # greater, equal, slanted, less
981
+ "gesl" => "&#x022DB;&#x0FE00;",
982
+ # greater, equal, slanted, less, equal, slanted
983
+ "gesles" => "&#x02A94;",
984
+ # /ggg /Gg /gggtr R: triple gtr-than
985
+ "Gg" => "&#x022D9;",
986
+ # /gtrless R: greater, less
987
+ "gl" => "&#x02277;",
988
+ # greater, less, apart
989
+ "gla" => "&#x02AA5;",
990
+ # greater, less, equal
991
+ "glE" => "&#x02A92;",
992
+ # greater, less, overlapping
993
+ "glj" => "&#x02AA4;",
994
+ # /gtrsim R: greater, similar
995
+ "gsim" => "&#x02273;",
996
+ # greater, similar, equal
997
+ "gsime" => "&#x02A8E;",
998
+ # greater, similar, less
999
+ "gsiml" => "&#x02A90;",
1000
+ # /gg R: dbl greater-than sign
1001
+ "Gt" => "&#x0226B;",
1002
+ # greater than, closed by curve
1003
+ "gtcc" => "&#x02AA7;",
1004
+ # greater than, circle inside
1005
+ "gtcir" => "&#x02A7A;",
1006
+ # /gtrdot R: greater than, with dot
1007
+ "gtdot" => "&#x022D7;",
1008
+ # greater than, questionmark above
1009
+ "gtquest" => "&#x02A7C;",
1010
+ # greater than, right arrow
1011
+ "gtrarr" => "&#x02978;",
1012
+ # homothetic
1013
+ "homtht" => "&#x0223B;",
1014
+ # /lessapprox R: less, approximate
1015
+ "lap" => "&#x02A85;",
1016
+ # larger than
1017
+ "lat" => "&#x02AAB;",
1018
+ # larger than or equal
1019
+ "late" => "&#x02AAD;",
1020
+ # larger than or equal, slanted
1021
+ "lates" => "&#x02AAD;&#x0FE00;",
1022
+ # /leqq R: less, double equals
1023
+ "lE" => "&#x02266;",
1024
+ # /lesseqqgtr R: less, dbl eq, greater
1025
+ "lEg" => "&#x02A8B;",
1026
+ # /lesseqgtr R: less, eq, greater
1027
+ "leg" => "&#x022DA;",
1028
+ # /leqslant R: less-than-or-eq, slant
1029
+ "les" => "&#x02A7D;",
1030
+ # less than, closed by curve, equal, slanted
1031
+ "lescc" => "&#x02AA8;",
1032
+ # less-than-or-equal, slanted, dot inside
1033
+ "lesdot" => "&#x02A7F;",
1034
+ # less-than-or-equal, slanted, dot above
1035
+ "lesdoto" => "&#x02A81;",
1036
+ # less-than-or-equal, slanted, dot above right
1037
+ "lesdotor" => "&#x02A83;",
1038
+ # less, equal, slanted, greater
1039
+ "lesg" => "&#x022DA;&#x0FE00;",
1040
+ # less, equal, slanted, greater, equal, slanted
1041
+ "lesges" => "&#x02A93;",
1042
+ # /lessgtr R: less, greater
1043
+ "lg" => "&#x02276;",
1044
+ # less, greater, equal
1045
+ "lgE" => "&#x02A91;",
1046
+ # /Ll /lll /llless R: triple less-than
1047
+ "Ll" => "&#x022D8;",
1048
+ # /lesssim R: less, similar
1049
+ "lsim" => "&#x02272;",
1050
+ # less, similar, equal
1051
+ "lsime" => "&#x02A8D;",
1052
+ # less, similar, greater
1053
+ "lsimg" => "&#x02A8F;",
1054
+ # /ll R: double less-than sign
1055
+ "Lt" => "&#x0226A;",
1056
+ # less than, closed by curve
1057
+ "ltcc" => "&#x02AA6;",
1058
+ # less than, circle inside
1059
+ "ltcir" => "&#x02A79;",
1060
+ # /lessdot R: less than, with dot
1061
+ "ltdot" => "&#x022D6;",
1062
+ # less than, left arrow
1063
+ "ltlarr" => "&#x02976;",
1064
+ # less than, questionmark above
1065
+ "ltquest" => "&#x02A7B;",
1066
+ # /trianglelefteq R: left triangle, eq
1067
+ "ltrie" => "&#x022B4;",
1068
+ # minus, comma above
1069
+ "mcomma" => "&#x02A29;",
1070
+ # minus with four dots, geometric properties
1071
+ "mDDot" => "&#x0223A;",
1072
+ # /mid R:
1073
+ "mid" => "&#x02223;",
1074
+ # /mlcp
1075
+ "mlcp" => "&#x02ADB;",
1076
+ # /models R:
1077
+ "models" => "&#x022A7;",
1078
+ # most positive
1079
+ "mstpos" => "&#x0223E;",
1080
+ # dbl precedes
1081
+ "Pr" => "&#x02ABB;",
1082
+ # /prec R: precedes
1083
+ "pr" => "&#x0227A;",
1084
+ # /precapprox R: precedes, approximate
1085
+ "prap" => "&#x02AB7;",
1086
+ # /preccurlyeq R: precedes, curly eq
1087
+ "prcue" => "&#x0227C;",
1088
+ # precedes, dbl equals
1089
+ "prE" => "&#x02AB3;",
1090
+ # /preceq R: precedes, equals
1091
+ "pre" => "&#x02AAF;",
1092
+ # /precsim R: precedes, similar
1093
+ "prsim" => "&#x0227E;",
1094
+ # element precedes under relation
1095
+ "prurel" => "&#x022B0;",
1096
+ # /ratio
1097
+ "ratio" => "&#x02236;",
1098
+ # /trianglerighteq R: right tri, eq
1099
+ "rtrie" => "&#x022B5;",
1100
+ # right triangle above left triangle
1101
+ "rtriltri" => "&#x029CE;",
1102
+ # dbl succeeds
1103
+ "Sc" => "&#x02ABC;",
1104
+ # /succ R: succeeds
1105
+ "sc" => "&#x0227B;",
1106
+ # /succapprox R: succeeds, approximate
1107
+ "scap" => "&#x02AB8;",
1108
+ # /succcurlyeq R: succeeds, curly eq
1109
+ "sccue" => "&#x0227D;",
1110
+ # succeeds, dbl equals
1111
+ "scE" => "&#x02AB4;",
1112
+ # /succeq R: succeeds, equals
1113
+ "sce" => "&#x02AB0;",
1114
+ # /succsim R: succeeds, similar
1115
+ "scsim" => "&#x0227F;",
1116
+ # equal, dot below
1117
+ "sdote" => "&#x02A66;",
1118
+ # /smallfrown R: small down curve
1119
+ "sfrown" => "&#x02322;",
1120
+ # similar, greater
1121
+ "simg" => "&#x02A9E;",
1122
+ # similar, greater, equal
1123
+ "simgE" => "&#x02AA0;",
1124
+ # similar, less
1125
+ "siml" => "&#x02A9D;",
1126
+ # similar, less, equal
1127
+ "simlE" => "&#x02A9F;",
1128
+ # /shortmid R:
1129
+ "smid" => "&#x02223;",
1130
+ # /smile R: up curve
1131
+ "smile" => "&#x02323;",
1132
+ # smaller than
1133
+ "smt" => "&#x02AAA;",
1134
+ # smaller than or equal
1135
+ "smte" => "&#x02AAC;",
1136
+ # smaller than or equal, slanted
1137
+ "smtes" => "&#x02AAC;&#x0FE00;",
1138
+ # /shortparallel R: short parallel
1139
+ "spar" => "&#x02225;",
1140
+ # /sqsubset R: square subset
1141
+ "sqsub" => "&#x0228F;",
1142
+ # /sqsubseteq R: square subset, equals
1143
+ "sqsube" => "&#x02291;",
1144
+ # /sqsupset R: square superset
1145
+ "sqsup" => "&#x02290;",
1146
+ # /sqsupseteq R: square superset, eq
1147
+ "sqsupe" => "&#x02292;",
1148
+ # /smallsmile R: small up curve
1149
+ "ssmile" => "&#x02323;",
1150
+ # /Subset R: double subset
1151
+ "Sub" => "&#x022D0;",
1152
+ # /subseteqq R: subset, dbl equals
1153
+ "subE" => "&#x02AC5;",
1154
+ # subset, equals, dot
1155
+ "subedot" => "&#x02AC3;",
1156
+ # subset, multiply
1157
+ "submult" => "&#x02AC1;",
1158
+ # subset, plus
1159
+ "subplus" => "&#x02ABF;",
1160
+ # subset, right arrow
1161
+ "subrarr" => "&#x02979;",
1162
+ # subset, similar
1163
+ "subsim" => "&#x02AC7;",
1164
+ # subset above subset
1165
+ "subsub" => "&#x02AD5;",
1166
+ # subset above superset
1167
+ "subsup" => "&#x02AD3;",
1168
+ # /Supset R: dbl superset
1169
+ "Sup" => "&#x022D1;",
1170
+ # superset, subset, dash joining them
1171
+ "supdsub" => "&#x02AD8;",
1172
+ # /supseteqq R: superset, dbl equals
1173
+ "supE" => "&#x02AC6;",
1174
+ # superset, equals, dot
1175
+ "supedot" => "&#x02AC4;",
1176
+ # superset, solidus
1177
+ "suphsol" => "&#x02283;&#x0002F;",
1178
+ # superset, subset
1179
+ "suphsub" => "&#x02AD7;",
1180
+ # superset, left arrow
1181
+ "suplarr" => "&#x0297B;",
1182
+ # superset, multiply
1183
+ "supmult" => "&#x02AC2;",
1184
+ # superset, plus
1185
+ "supplus" => "&#x02AC0;",
1186
+ # superset, similar
1187
+ "supsim" => "&#x02AC8;",
1188
+ # superset above subset
1189
+ "supsub" => "&#x02AD4;",
1190
+ # superset above superset
1191
+ "supsup" => "&#x02AD6;",
1192
+ # /thickapprox R: thick approximate
1193
+ "thkap" => "&#x02248;",
1194
+ # /thicksim R: thick similar
1195
+ "thksim" => "&#x0223C;",
1196
+ # fork with top
1197
+ "topfork" => "&#x02ADA;",
1198
+ # /triangleq R: triangle, equals
1199
+ "trie" => "&#x0225C;",
1200
+ # /between R: between
1201
+ "twixt" => "&#x0226C;",
1202
+ # dbl vert, bar (under)
1203
+ "Vbar" => "&#x02AEB;",
1204
+ # vert, dbl bar (under)
1205
+ "vBar" => "&#x02AE8;",
1206
+ # dbl bar, vert over and under
1207
+ "vBarv" => "&#x02AE9;",
1208
+ # dbl vert, dbl dash
1209
+ "VDash" => "&#x022AB;",
1210
+ # /Vdash R: dbl vertical, dash
1211
+ "Vdash" => "&#x022A9;",
1212
+ # /vDash R: vertical, dbl dash
1213
+ "vDash" => "&#x022A8;",
1214
+ # /vdash R: vertical, dash
1215
+ "vdash" => "&#x022A2;",
1216
+ # vertical, dash (long)
1217
+ "Vdashl" => "&#x02AE6;",
1218
+ # /vartriangleleft R: l tri, open, var
1219
+ "vltri" => "&#x022B2;",
1220
+ # /varpropto R: proportional, variant
1221
+ "vprop" => "&#x0221D;",
1222
+ # /vartriangleright R: r tri, open, var
1223
+ "vrtri" => "&#x022B3;",
1224
+ # /Vvdash R: triple vertical, dash
1225
+ "Vvdash" => "&#x022AA;",
1226
+ # lower left quadrant
1227
+ "boxDL" => "&#x02557;",
1228
+ # lower left quadrant
1229
+ "boxDl" => "&#x02556;",
1230
+ # lower left quadrant
1231
+ "boxdL" => "&#x02555;",
1232
+ # lower left quadrant
1233
+ "boxdl" => "&#x02510;",
1234
+ # lower right quadrant
1235
+ "boxDR" => "&#x02554;",
1236
+ # lower right quadrant
1237
+ "boxDr" => "&#x02553;",
1238
+ # lower right quadrant
1239
+ "boxdR" => "&#x02552;",
1240
+ # lower right quadrant
1241
+ "boxdr" => "&#x0250C;",
1242
+ # horizontal line
1243
+ "boxH" => "&#x02550;",
1244
+ # horizontal line
1245
+ "boxh" => "&#x02500;",
1246
+ # lower left and right quadrants
1247
+ "boxHD" => "&#x02566;",
1248
+ # lower left and right quadrants
1249
+ "boxHd" => "&#x02564;",
1250
+ # lower left and right quadrants
1251
+ "boxhD" => "&#x02565;",
1252
+ # lower left and right quadrants
1253
+ "boxhd" => "&#x0252C;",
1254
+ # upper left and right quadrants
1255
+ "boxHU" => "&#x02569;",
1256
+ # upper left and right quadrants
1257
+ "boxHu" => "&#x02567;",
1258
+ # upper left and right quadrants
1259
+ "boxhU" => "&#x02568;",
1260
+ # upper left and right quadrants
1261
+ "boxhu" => "&#x02534;",
1262
+ # upper left quadrant
1263
+ "boxUL" => "&#x0255D;",
1264
+ # upper left quadrant
1265
+ "boxUl" => "&#x0255C;",
1266
+ # upper left quadrant
1267
+ "boxuL" => "&#x0255B;",
1268
+ # upper left quadrant
1269
+ "boxul" => "&#x02518;",
1270
+ # upper right quadrant
1271
+ "boxUR" => "&#x0255A;",
1272
+ # upper right quadrant
1273
+ "boxUr" => "&#x02559;",
1274
+ # upper right quadrant
1275
+ "boxuR" => "&#x02558;",
1276
+ # upper right quadrant
1277
+ "boxur" => "&#x02514;",
1278
+ # vertical line
1279
+ "boxV" => "&#x02551;",
1280
+ # vertical line
1281
+ "boxv" => "&#x02502;",
1282
+ # all four quadrants
1283
+ "boxVH" => "&#x0256C;",
1284
+ # all four quadrants
1285
+ "boxVh" => "&#x0256B;",
1286
+ # all four quadrants
1287
+ "boxvH" => "&#x0256A;",
1288
+ # all four quadrants
1289
+ "boxvh" => "&#x0253C;",
1290
+ # upper and lower left quadrants
1291
+ "boxVL" => "&#x02563;",
1292
+ # upper and lower left quadrants
1293
+ "boxVl" => "&#x02562;",
1294
+ # upper and lower left quadrants
1295
+ "boxvL" => "&#x02561;",
1296
+ # upper and lower left quadrants
1297
+ "boxvl" => "&#x02524;",
1298
+ # upper and lower right quadrants
1299
+ "boxVR" => "&#x02560;",
1300
+ # upper and lower right quadrants
1301
+ "boxVr" => "&#x0255F;",
1302
+ # upper and lower right quadrants
1303
+ "boxvR" => "&#x0255E;",
1304
+ # upper and lower right quadrants
1305
+ "boxvr" => "&#x0251C;",
1306
+ # =capital A, Cyrillic
1307
+ "Acy" => "&#x00410;",
1308
+ # =small a, Cyrillic
1309
+ "acy" => "&#x00430;",
1310
+ # =capital BE, Cyrillic
1311
+ "Bcy" => "&#x00411;",
1312
+ # =small be, Cyrillic
1313
+ "bcy" => "&#x00431;",
1314
+ # =capital CHE, Cyrillic
1315
+ "CHcy" => "&#x00427;",
1316
+ # =small che, Cyrillic
1317
+ "chcy" => "&#x00447;",
1318
+ # =capital DE, Cyrillic
1319
+ "Dcy" => "&#x00414;",
1320
+ # =small de, Cyrillic
1321
+ "dcy" => "&#x00434;",
1322
+ # =capital E, Cyrillic
1323
+ "Ecy" => "&#x0042D;",
1324
+ # =small e, Cyrillic
1325
+ "ecy" => "&#x0044D;",
1326
+ # =capital EF, Cyrillic
1327
+ "Fcy" => "&#x00424;",
1328
+ # =small ef, Cyrillic
1329
+ "fcy" => "&#x00444;",
1330
+ # =capital GHE, Cyrillic
1331
+ "Gcy" => "&#x00413;",
1332
+ # =small ghe, Cyrillic
1333
+ "gcy" => "&#x00433;",
1334
+ # =capital HARD sign, Cyrillic
1335
+ "HARDcy" => "&#x0042A;",
1336
+ # =small hard sign, Cyrillic
1337
+ "hardcy" => "&#x0044A;",
1338
+ # =capital I, Cyrillic
1339
+ "Icy" => "&#x00418;",
1340
+ # =small i, Cyrillic
1341
+ "icy" => "&#x00438;",
1342
+ # =capital IE, Cyrillic
1343
+ "IEcy" => "&#x00415;",
1344
+ # =small ie, Cyrillic
1345
+ "iecy" => "&#x00435;",
1346
+ # =capital IO, Russian
1347
+ "IOcy" => "&#x00401;",
1348
+ # =small io, Russian
1349
+ "iocy" => "&#x00451;",
1350
+ # =capital short I, Cyrillic
1351
+ "Jcy" => "&#x00419;",
1352
+ # =small short i, Cyrillic
1353
+ "jcy" => "&#x00439;",
1354
+ # =capital KA, Cyrillic
1355
+ "Kcy" => "&#x0041A;",
1356
+ # =small ka, Cyrillic
1357
+ "kcy" => "&#x0043A;",
1358
+ # =capital HA, Cyrillic
1359
+ "KHcy" => "&#x00425;",
1360
+ # =small ha, Cyrillic
1361
+ "khcy" => "&#x00445;",
1362
+ # =capital EL, Cyrillic
1363
+ "Lcy" => "&#x0041B;",
1364
+ # =small el, Cyrillic
1365
+ "lcy" => "&#x0043B;",
1366
+ # =capital EM, Cyrillic
1367
+ "Mcy" => "&#x0041C;",
1368
+ # =small em, Cyrillic
1369
+ "mcy" => "&#x0043C;",
1370
+ # =capital EN, Cyrillic
1371
+ "Ncy" => "&#x0041D;",
1372
+ # =small en, Cyrillic
1373
+ "ncy" => "&#x0043D;",
1374
+ # =numero sign
1375
+ "numero" => "&#x02116;",
1376
+ # =capital O, Cyrillic
1377
+ "Ocy" => "&#x0041E;",
1378
+ # =small o, Cyrillic
1379
+ "ocy" => "&#x0043E;",
1380
+ # =capital PE, Cyrillic
1381
+ "Pcy" => "&#x0041F;",
1382
+ # =small pe, Cyrillic
1383
+ "pcy" => "&#x0043F;",
1384
+ # =capital ER, Cyrillic
1385
+ "Rcy" => "&#x00420;",
1386
+ # =small er, Cyrillic
1387
+ "rcy" => "&#x00440;",
1388
+ # =capital ES, Cyrillic
1389
+ "Scy" => "&#x00421;",
1390
+ # =small es, Cyrillic
1391
+ "scy" => "&#x00441;",
1392
+ # =capital SHCHA, Cyrillic
1393
+ "SHCHcy" => "&#x00429;",
1394
+ # =small shcha, Cyrillic
1395
+ "shchcy" => "&#x00449;",
1396
+ # =capital SHA, Cyrillic
1397
+ "SHcy" => "&#x00428;",
1398
+ # =small sha, Cyrillic
1399
+ "shcy" => "&#x00448;",
1400
+ # =capital SOFT sign, Cyrillic
1401
+ "SOFTcy" => "&#x0042C;",
1402
+ # =small soft sign, Cyrillic
1403
+ "softcy" => "&#x0044C;",
1404
+ # =capital TE, Cyrillic
1405
+ "Tcy" => "&#x00422;",
1406
+ # =small te, Cyrillic
1407
+ "tcy" => "&#x00442;",
1408
+ # =capital TSE, Cyrillic
1409
+ "TScy" => "&#x00426;",
1410
+ # =small tse, Cyrillic
1411
+ "tscy" => "&#x00446;",
1412
+ # =capital U, Cyrillic
1413
+ "Ucy" => "&#x00423;",
1414
+ # =small u, Cyrillic
1415
+ "ucy" => "&#x00443;",
1416
+ # =capital VE, Cyrillic
1417
+ "Vcy" => "&#x00412;",
1418
+ # =small ve, Cyrillic
1419
+ "vcy" => "&#x00432;",
1420
+ # =capital YA, Cyrillic
1421
+ "YAcy" => "&#x0042F;",
1422
+ # =small ya, Cyrillic
1423
+ "yacy" => "&#x0044F;",
1424
+ # =capital YERU, Cyrillic
1425
+ "Ycy" => "&#x0042B;",
1426
+ # =small yeru, Cyrillic
1427
+ "ycy" => "&#x0044B;",
1428
+ # =capital YU, Cyrillic
1429
+ "YUcy" => "&#x0042E;",
1430
+ # =small yu, Cyrillic
1431
+ "yucy" => "&#x0044E;",
1432
+ # =capital ZE, Cyrillic
1433
+ "Zcy" => "&#x00417;",
1434
+ # =small ze, Cyrillic
1435
+ "zcy" => "&#x00437;",
1436
+ # =capital ZHE, Cyrillic
1437
+ "ZHcy" => "&#x00416;",
1438
+ # =small zhe, Cyrillic
1439
+ "zhcy" => "&#x00436;",
1440
+ # =capital DJE, Serbian
1441
+ "DJcy" => "&#x00402;",
1442
+ # =small dje, Serbian
1443
+ "djcy" => "&#x00452;",
1444
+ # =capital DSE, Macedonian
1445
+ "DScy" => "&#x00405;",
1446
+ # =small dse, Macedonian
1447
+ "dscy" => "&#x00455;",
1448
+ # =capital dze, Serbian
1449
+ "DZcy" => "&#x0040F;",
1450
+ # =small dze, Serbian
1451
+ "dzcy" => "&#x0045F;",
1452
+ # =capital GJE Macedonian
1453
+ "GJcy" => "&#x00403;",
1454
+ # =small gje, Macedonian
1455
+ "gjcy" => "&#x00453;",
1456
+ # =capital I, Ukrainian
1457
+ "Iukcy" => "&#x00406;",
1458
+ # =small i, Ukrainian
1459
+ "iukcy" => "&#x00456;",
1460
+ # =capital JE, Serbian
1461
+ "Jsercy" => "&#x00408;",
1462
+ # =small je, Serbian
1463
+ "jsercy" => "&#x00458;",
1464
+ # =capital JE, Ukrainian
1465
+ "Jukcy" => "&#x00404;",
1466
+ # =small je, Ukrainian
1467
+ "jukcy" => "&#x00454;",
1468
+ # =capital KJE, Macedonian
1469
+ "KJcy" => "&#x0040C;",
1470
+ # =small kje Macedonian
1471
+ "kjcy" => "&#x0045C;",
1472
+ # =capital LJE, Serbian
1473
+ "LJcy" => "&#x00409;",
1474
+ # =small lje, Serbian
1475
+ "ljcy" => "&#x00459;",
1476
+ # =capital NJE, Serbian
1477
+ "NJcy" => "&#x0040A;",
1478
+ # =small nje, Serbian
1479
+ "njcy" => "&#x0045A;",
1480
+ # =capital TSHE, Serbian
1481
+ "TSHcy" => "&#x0040B;",
1482
+ # =small tshe, Serbian
1483
+ "tshcy" => "&#x0045B;",
1484
+ # =capital U, Byelorussian
1485
+ "Ubrcy" => "&#x0040E;",
1486
+ # =small u, Byelorussian
1487
+ "ubrcy" => "&#x0045E;",
1488
+ # =capital YI, Ukrainian
1489
+ "YIcy" => "&#x00407;",
1490
+ # =small yi, Ukrainian
1491
+ "yicy" => "&#x00457;",
1492
+ # =acute accent
1493
+ "acute" => "&#x000B4;",
1494
+ # =breve
1495
+ "breve" => "&#x002D8;",
1496
+ # =caron
1497
+ "caron" => "&#x002C7;",
1498
+ # =cedilla
1499
+ "cedil" => "&#x000B8;",
1500
+ # circumflex accent
1501
+ "circ" => "&#x002C6;",
1502
+ # =double acute accent
1503
+ "dblac" => "&#x002DD;",
1504
+ # =dieresis
1505
+ "die" => "&#x000A8;",
1506
+ # =dot above
1507
+ "dot" => "&#x002D9;",
1508
+ # =grave accent
1509
+ "grave" => "&#x00060;",
1510
+ # =macron
1511
+ "macr" => "&#x000AF;",
1512
+ # =ogonek
1513
+ "ogon" => "&#x002DB;",
1514
+ # =ring
1515
+ "ring" => "&#x002DA;",
1516
+ # =tilde
1517
+ "tilde" => "&#x002DC;",
1518
+ # =umlaut mark
1519
+ "uml" => "&#x000A8;",
1520
+ # /alpha small alpha, Greek
1521
+ "alpha" => "&#x003B1;",
1522
+ # /beta small beta, Greek
1523
+ "beta" => "&#x003B2;",
1524
+ # /chi small chi, Greek
1525
+ "chi" => "&#x003C7;",
1526
+ # /Delta capital Delta, Greek
1527
+ "Delta" => "&#x00394;",
1528
+ # /delta small delta, Greek
1529
+ "delta" => "&#x003B4;",
1530
+ # /straightepsilon, small epsilon, Greek
1531
+ "epsi" => "&#x003F5;",
1532
+ # /varepsilon
1533
+ "epsiv" => "&#x003B5;",
1534
+ # /eta small eta, Greek
1535
+ "eta" => "&#x003B7;",
1536
+ # /Gamma capital Gamma, Greek
1537
+ "Gamma" => "&#x00393;",
1538
+ # /gamma small gamma, Greek
1539
+ "gamma" => "&#x003B3;",
1540
+ # capital digamma
1541
+ "Gammad" => "&#x003DC;",
1542
+ # /digamma
1543
+ "gammad" => "&#x003DD;",
1544
+ # /iota small iota, Greek
1545
+ "iota" => "&#x003B9;",
1546
+ # /kappa small kappa, Greek
1547
+ "kappa" => "&#x003BA;",
1548
+ # /varkappa
1549
+ "kappav" => "&#x003F0;",
1550
+ # /Lambda capital Lambda, Greek
1551
+ "Lambda" => "&#x0039B;",
1552
+ # /lambda small lambda, Greek
1553
+ "lambda" => "&#x003BB;",
1554
+ # /mu small mu, Greek
1555
+ "mu" => "&#x003BC;",
1556
+ # /nu small nu, Greek
1557
+ "nu" => "&#x003BD;",
1558
+ # /Omega capital Omega, Greek
1559
+ "Omega" => "&#x003A9;",
1560
+ # /omega small omega, Greek
1561
+ "omega" => "&#x003C9;",
1562
+ # /Phi capital Phi, Greek
1563
+ "Phi" => "&#x003A6;",
1564
+ # /straightphi - small phi, Greek
1565
+ "phi" => "&#x003D5;",
1566
+ # /varphi - curly or open phi
1567
+ "phiv" => "&#x003C6;",
1568
+ # /Pi capital Pi, Greek
1569
+ "Pi" => "&#x003A0;",
1570
+ # /pi small pi, Greek
1571
+ "pi" => "&#x003C0;",
1572
+ # /varpi
1573
+ "piv" => "&#x003D6;",
1574
+ # /Psi capital Psi, Greek
1575
+ "Psi" => "&#x003A8;",
1576
+ # /psi small psi, Greek
1577
+ "psi" => "&#x003C8;",
1578
+ # /rho small rho, Greek
1579
+ "rho" => "&#x003C1;",
1580
+ # /varrho
1581
+ "rhov" => "&#x003F1;",
1582
+ # /Sigma capital Sigma, Greek
1583
+ "Sigma" => "&#x003A3;",
1584
+ # /sigma small sigma, Greek
1585
+ "sigma" => "&#x003C3;",
1586
+ # /varsigma
1587
+ "sigmav" => "&#x003C2;",
1588
+ # /tau small tau, Greek
1589
+ "tau" => "&#x003C4;",
1590
+ # /Theta capital Theta, Greek
1591
+ "Theta" => "&#x00398;",
1592
+ # /theta straight theta, small theta, Greek
1593
+ "theta" => "&#x003B8;",
1594
+ # /vartheta - curly or open theta
1595
+ "thetav" => "&#x003D1;",
1596
+ # /Upsilon capital Upsilon, Greek
1597
+ "Upsi" => "&#x003D2;",
1598
+ # /upsilon small upsilon, Greek
1599
+ "upsi" => "&#x003C5;",
1600
+ # /Xi capital Xi, Greek
1601
+ "Xi" => "&#x0039E;",
1602
+ # /xi small xi, Greek
1603
+ "xi" => "&#x003BE;",
1604
+ # /zeta small zeta, Greek
1605
+ "zeta" => "&#x003B6;",
1606
+ # =capital A, acute accent
1607
+ "Aacute" => "&#x000C1;",
1608
+ # =small a, acute accent
1609
+ "aacute" => "&#x000E1;",
1610
+ # =capital A, circumflex accent
1611
+ "Acirc" => "&#x000C2;",
1612
+ # =small a, circumflex accent
1613
+ "acirc" => "&#x000E2;",
1614
+ # =capital AE diphthong (ligature)
1615
+ "AElig" => "&#x000C6;",
1616
+ # =small ae diphthong (ligature)
1617
+ "aelig" => "&#x000E6;",
1618
+ # =capital A, grave accent
1619
+ "Agrave" => "&#x000C0;",
1620
+ # =small a, grave accent
1621
+ "agrave" => "&#x000E0;",
1622
+ # =capital A, ring
1623
+ "Aring" => "&#x000C5;",
1624
+ # =small a, ring
1625
+ "aring" => "&#x000E5;",
1626
+ # =capital A, tilde
1627
+ "Atilde" => "&#x000C3;",
1628
+ # =small a, tilde
1629
+ "atilde" => "&#x000E3;",
1630
+ # =capital A, dieresis or umlaut mark
1631
+ "Auml" => "&#x000C4;",
1632
+ # =small a, dieresis or umlaut mark
1633
+ "auml" => "&#x000E4;",
1634
+ # =capital C, cedilla
1635
+ "Ccedil" => "&#x000C7;",
1636
+ # =small c, cedilla
1637
+ "ccedil" => "&#x000E7;",
1638
+ # =capital E, acute accent
1639
+ "Eacute" => "&#x000C9;",
1640
+ # =small e, acute accent
1641
+ "eacute" => "&#x000E9;",
1642
+ # =capital E, circumflex accent
1643
+ "Ecirc" => "&#x000CA;",
1644
+ # =small e, circumflex accent
1645
+ "ecirc" => "&#x000EA;",
1646
+ # =capital E, grave accent
1647
+ "Egrave" => "&#x000C8;",
1648
+ # =small e, grave accent
1649
+ "egrave" => "&#x000E8;",
1650
+ # =capital Eth, Icelandic
1651
+ "ETH" => "&#x000D0;",
1652
+ # =small eth, Icelandic
1653
+ "eth" => "&#x000F0;",
1654
+ # =capital E, dieresis or umlaut mark
1655
+ "Euml" => "&#x000CB;",
1656
+ # =small e, dieresis or umlaut mark
1657
+ "euml" => "&#x000EB;",
1658
+ # =capital I, acute accent
1659
+ "Iacute" => "&#x000CD;",
1660
+ # =small i, acute accent
1661
+ "iacute" => "&#x000ED;",
1662
+ # =capital I, circumflex accent
1663
+ "Icirc" => "&#x000CE;",
1664
+ # =small i, circumflex accent
1665
+ "icirc" => "&#x000EE;",
1666
+ # =capital I, grave accent
1667
+ "Igrave" => "&#x000CC;",
1668
+ # =small i, grave accent
1669
+ "igrave" => "&#x000EC;",
1670
+ # =capital I, dieresis or umlaut mark
1671
+ "Iuml" => "&#x000CF;",
1672
+ # =small i, dieresis or umlaut mark
1673
+ "iuml" => "&#x000EF;",
1674
+ # =capital N, tilde
1675
+ "Ntilde" => "&#x000D1;",
1676
+ # =small n, tilde
1677
+ "ntilde" => "&#x000F1;",
1678
+ # =capital O, acute accent
1679
+ "Oacute" => "&#x000D3;",
1680
+ # =small o, acute accent
1681
+ "oacute" => "&#x000F3;",
1682
+ # =capital O, circumflex accent
1683
+ "Ocirc" => "&#x000D4;",
1684
+ # =small o, circumflex accent
1685
+ "ocirc" => "&#x000F4;",
1686
+ # =capital O, grave accent
1687
+ "Ograve" => "&#x000D2;",
1688
+ # =small o, grave accent
1689
+ "ograve" => "&#x000F2;",
1690
+ # =capital O, slash
1691
+ "Oslash" => "&#x000D8;",
1692
+ # latin small letter o with stroke
1693
+ "oslash" => "&#x000F8;",
1694
+ # =capital O, tilde
1695
+ "Otilde" => "&#x000D5;",
1696
+ # =small o, tilde
1697
+ "otilde" => "&#x000F5;",
1698
+ # =capital O, dieresis or umlaut mark
1699
+ "Ouml" => "&#x000D6;",
1700
+ # =small o, dieresis or umlaut mark
1701
+ "ouml" => "&#x000F6;",
1702
+ # =small sharp s, German (sz ligature)
1703
+ "szlig" => "&#x000DF;",
1704
+ # =capital THORN, Icelandic
1705
+ "THORN" => "&#x000DE;",
1706
+ # =small thorn, Icelandic
1707
+ "thorn" => "&#x000FE;",
1708
+ # =capital U, acute accent
1709
+ "Uacute" => "&#x000DA;",
1710
+ # =small u, acute accent
1711
+ "uacute" => "&#x000FA;",
1712
+ # =capital U, circumflex accent
1713
+ "Ucirc" => "&#x000DB;",
1714
+ # =small u, circumflex accent
1715
+ "ucirc" => "&#x000FB;",
1716
+ # =capital U, grave accent
1717
+ "Ugrave" => "&#x000D9;",
1718
+ # =small u, grave accent
1719
+ "ugrave" => "&#x000F9;",
1720
+ # =capital U, dieresis or umlaut mark
1721
+ "Uuml" => "&#x000DC;",
1722
+ # =small u, dieresis or umlaut mark
1723
+ "uuml" => "&#x000FC;",
1724
+ # =capital Y, acute accent
1725
+ "Yacute" => "&#x000DD;",
1726
+ # =small y, acute accent
1727
+ "yacute" => "&#x000FD;",
1728
+ # =small y, dieresis or umlaut mark
1729
+ "yuml" => "&#x000FF;",
1730
+ # =capital A, breve
1731
+ "Abreve" => "&#x00102;",
1732
+ # =small a, breve
1733
+ "abreve" => "&#x00103;",
1734
+ # =capital A, macron
1735
+ "Amacr" => "&#x00100;",
1736
+ # =small a, macron
1737
+ "amacr" => "&#x00101;",
1738
+ # =capital A, ogonek
1739
+ "Aogon" => "&#x00104;",
1740
+ # =small a, ogonek
1741
+ "aogon" => "&#x00105;",
1742
+ # =capital C, acute accent
1743
+ "Cacute" => "&#x00106;",
1744
+ # =small c, acute accent
1745
+ "cacute" => "&#x00107;",
1746
+ # =capital C, caron
1747
+ "Ccaron" => "&#x0010C;",
1748
+ # =small c, caron
1749
+ "ccaron" => "&#x0010D;",
1750
+ # =capital C, circumflex accent
1751
+ "Ccirc" => "&#x00108;",
1752
+ # =small c, circumflex accent
1753
+ "ccirc" => "&#x00109;",
1754
+ # =capital C, dot above
1755
+ "Cdot" => "&#x0010A;",
1756
+ # =small c, dot above
1757
+ "cdot" => "&#x0010B;",
1758
+ # =capital D, caron
1759
+ "Dcaron" => "&#x0010E;",
1760
+ # =small d, caron
1761
+ "dcaron" => "&#x0010F;",
1762
+ # =capital D, stroke
1763
+ "Dstrok" => "&#x00110;",
1764
+ # =small d, stroke
1765
+ "dstrok" => "&#x00111;",
1766
+ # =capital E, caron
1767
+ "Ecaron" => "&#x0011A;",
1768
+ # =small e, caron
1769
+ "ecaron" => "&#x0011B;",
1770
+ # =capital E, dot above
1771
+ "Edot" => "&#x00116;",
1772
+ # =small e, dot above
1773
+ "edot" => "&#x00117;",
1774
+ # =capital E, macron
1775
+ "Emacr" => "&#x00112;",
1776
+ # =small e, macron
1777
+ "emacr" => "&#x00113;",
1778
+ # =capital ENG, Lapp
1779
+ "ENG" => "&#x0014A;",
1780
+ # =small eng, Lapp
1781
+ "eng" => "&#x0014B;",
1782
+ # =capital E, ogonek
1783
+ "Eogon" => "&#x00118;",
1784
+ # =small e, ogonek
1785
+ "eogon" => "&#x00119;",
1786
+ # =small g, acute accent
1787
+ "gacute" => "&#x001F5;",
1788
+ # =capital G, breve
1789
+ "Gbreve" => "&#x0011E;",
1790
+ # =small g, breve
1791
+ "gbreve" => "&#x0011F;",
1792
+ # =capital G, cedilla
1793
+ "Gcedil" => "&#x00122;",
1794
+ # =capital G, circumflex accent
1795
+ "Gcirc" => "&#x0011C;",
1796
+ # =small g, circumflex accent
1797
+ "gcirc" => "&#x0011D;",
1798
+ # =capital G, dot above
1799
+ "Gdot" => "&#x00120;",
1800
+ # =small g, dot above
1801
+ "gdot" => "&#x00121;",
1802
+ # =capital H, circumflex accent
1803
+ "Hcirc" => "&#x00124;",
1804
+ # =small h, circumflex accent
1805
+ "hcirc" => "&#x00125;",
1806
+ # =capital H, stroke
1807
+ "Hstrok" => "&#x00126;",
1808
+ # =small h, stroke
1809
+ "hstrok" => "&#x00127;",
1810
+ # =capital I, dot above
1811
+ "Idot" => "&#x00130;",
1812
+ # =capital IJ ligature
1813
+ "IJlig" => "&#x00132;",
1814
+ # =small ij ligature
1815
+ "ijlig" => "&#x00133;",
1816
+ # =capital I, macron
1817
+ "Imacr" => "&#x0012A;",
1818
+ # =small i, macron
1819
+ "imacr" => "&#x0012B;",
1820
+ # =small i without dot
1821
+ "inodot" => "&#x00131;",
1822
+ # =capital I, ogonek
1823
+ "Iogon" => "&#x0012E;",
1824
+ # =small i, ogonek
1825
+ "iogon" => "&#x0012F;",
1826
+ # =capital I, tilde
1827
+ "Itilde" => "&#x00128;",
1828
+ # =small i, tilde
1829
+ "itilde" => "&#x00129;",
1830
+ # =capital J, circumflex accent
1831
+ "Jcirc" => "&#x00134;",
1832
+ # =small j, circumflex accent
1833
+ "jcirc" => "&#x00135;",
1834
+ # =capital K, cedilla
1835
+ "Kcedil" => "&#x00136;",
1836
+ # =small k, cedilla
1837
+ "kcedil" => "&#x00137;",
1838
+ # =small k, Greenlandic
1839
+ "kgreen" => "&#x00138;",
1840
+ # =capital L, acute accent
1841
+ "Lacute" => "&#x00139;",
1842
+ # =small l, acute accent
1843
+ "lacute" => "&#x0013A;",
1844
+ # =capital L, caron
1845
+ "Lcaron" => "&#x0013D;",
1846
+ # =small l, caron
1847
+ "lcaron" => "&#x0013E;",
1848
+ # =capital L, cedilla
1849
+ "Lcedil" => "&#x0013B;",
1850
+ # =small l, cedilla
1851
+ "lcedil" => "&#x0013C;",
1852
+ # =capital L, middle dot
1853
+ "Lmidot" => "&#x0013F;",
1854
+ # =small l, middle dot
1855
+ "lmidot" => "&#x00140;",
1856
+ # =capital L, stroke
1857
+ "Lstrok" => "&#x00141;",
1858
+ # =small l, stroke
1859
+ "lstrok" => "&#x00142;",
1860
+ # =capital N, acute accent
1861
+ "Nacute" => "&#x00143;",
1862
+ # =small n, acute accent
1863
+ "nacute" => "&#x00144;",
1864
+ # =small n, apostrophe
1865
+ "napos" => "&#x00149;",
1866
+ # =capital N, caron
1867
+ "Ncaron" => "&#x00147;",
1868
+ # =small n, caron
1869
+ "ncaron" => "&#x00148;",
1870
+ # =capital N, cedilla
1871
+ "Ncedil" => "&#x00145;",
1872
+ # =small n, cedilla
1873
+ "ncedil" => "&#x00146;",
1874
+ # =capital O, double acute accent
1875
+ "Odblac" => "&#x00150;",
1876
+ # =small o, double acute accent
1877
+ "odblac" => "&#x00151;",
1878
+ # =capital OE ligature
1879
+ "OElig" => "&#x00152;",
1880
+ # =small oe ligature
1881
+ "oelig" => "&#x00153;",
1882
+ # =capital O, macron
1883
+ "Omacr" => "&#x0014C;",
1884
+ # =small o, macron
1885
+ "omacr" => "&#x0014D;",
1886
+ # =capital R, acute accent
1887
+ "Racute" => "&#x00154;",
1888
+ # =small r, acute accent
1889
+ "racute" => "&#x00155;",
1890
+ # =capital R, caron
1891
+ "Rcaron" => "&#x00158;",
1892
+ # =small r, caron
1893
+ "rcaron" => "&#x00159;",
1894
+ # =capital R, cedilla
1895
+ "Rcedil" => "&#x00156;",
1896
+ # =small r, cedilla
1897
+ "rcedil" => "&#x00157;",
1898
+ # =capital S, acute accent
1899
+ "Sacute" => "&#x0015A;",
1900
+ # =small s, acute accent
1901
+ "sacute" => "&#x0015B;",
1902
+ # =capital S, caron
1903
+ "Scaron" => "&#x00160;",
1904
+ # =small s, caron
1905
+ "scaron" => "&#x00161;",
1906
+ # =capital S, cedilla
1907
+ "Scedil" => "&#x0015E;",
1908
+ # =small s, cedilla
1909
+ "scedil" => "&#x0015F;",
1910
+ # =capital S, circumflex accent
1911
+ "Scirc" => "&#x0015C;",
1912
+ # =small s, circumflex accent
1913
+ "scirc" => "&#x0015D;",
1914
+ # =capital T, caron
1915
+ "Tcaron" => "&#x00164;",
1916
+ # =small t, caron
1917
+ "tcaron" => "&#x00165;",
1918
+ # =capital T, cedilla
1919
+ "Tcedil" => "&#x00162;",
1920
+ # =small t, cedilla
1921
+ "tcedil" => "&#x00163;",
1922
+ # =capital T, stroke
1923
+ "Tstrok" => "&#x00166;",
1924
+ # =small t, stroke
1925
+ "tstrok" => "&#x00167;",
1926
+ # =capital U, breve
1927
+ "Ubreve" => "&#x0016C;",
1928
+ # =small u, breve
1929
+ "ubreve" => "&#x0016D;",
1930
+ # =capital U, double acute accent
1931
+ "Udblac" => "&#x00170;",
1932
+ # =small u, double acute accent
1933
+ "udblac" => "&#x00171;",
1934
+ # =capital U, macron
1935
+ "Umacr" => "&#x0016A;",
1936
+ # =small u, macron
1937
+ "umacr" => "&#x0016B;",
1938
+ # =capital U, ogonek
1939
+ "Uogon" => "&#x00172;",
1940
+ # =small u, ogonek
1941
+ "uogon" => "&#x00173;",
1942
+ # =capital U, ring
1943
+ "Uring" => "&#x0016E;",
1944
+ # =small u, ring
1945
+ "uring" => "&#x0016F;",
1946
+ # =capital U, tilde
1947
+ "Utilde" => "&#x00168;",
1948
+ # =small u, tilde
1949
+ "utilde" => "&#x00169;",
1950
+ # =capital W, circumflex accent
1951
+ "Wcirc" => "&#x00174;",
1952
+ # =small w, circumflex accent
1953
+ "wcirc" => "&#x00175;",
1954
+ # =capital Y, circumflex accent
1955
+ "Ycirc" => "&#x00176;",
1956
+ # =small y, circumflex accent
1957
+ "ycirc" => "&#x00177;",
1958
+ # =capital Y, dieresis or umlaut mark
1959
+ "Yuml" => "&#x00178;",
1960
+ # =capital Z, acute accent
1961
+ "Zacute" => "&#x00179;",
1962
+ # =small z, acute accent
1963
+ "zacute" => "&#x0017A;",
1964
+ # =capital Z, caron
1965
+ "Zcaron" => "&#x0017D;",
1966
+ # =small z, caron
1967
+ "zcaron" => "&#x0017E;",
1968
+ # =capital Z, dot above
1969
+ "Zdot" => "&#x0017B;",
1970
+ # =small z, dot above
1971
+ "zdot" => "&#x0017C;",
1972
+ # /frak A, upper case a
1973
+ "Afr" => "&#x1D504;",
1974
+ # /frak a, lower case a
1975
+ "afr" => "&#x1D51E;",
1976
+ # /frak B, upper case b
1977
+ "Bfr" => "&#x1D505;",
1978
+ # /frak b, lower case b
1979
+ "bfr" => "&#x1D51F;",
1980
+ # /frak C, upper case c
1981
+ "Cfr" => "&#x0212D;",
1982
+ # /frak c, lower case c
1983
+ "cfr" => "&#x1D520;",
1984
+ # /frak D, upper case d
1985
+ "Dfr" => "&#x1D507;",
1986
+ # /frak d, lower case d
1987
+ "dfr" => "&#x1D521;",
1988
+ # /frak E, upper case e
1989
+ "Efr" => "&#x1D508;",
1990
+ # /frak e, lower case e
1991
+ "efr" => "&#x1D522;",
1992
+ # /frak F, upper case f
1993
+ "Ffr" => "&#x1D509;",
1994
+ # /frak f, lower case f
1995
+ "ffr" => "&#x1D523;",
1996
+ # /frak G, upper case g
1997
+ "Gfr" => "&#x1D50A;",
1998
+ # /frak g, lower case g
1999
+ "gfr" => "&#x1D524;",
2000
+ # /frak H, upper case h
2001
+ "Hfr" => "&#x0210C;",
2002
+ # /frak h, lower case h
2003
+ "hfr" => "&#x1D525;",
2004
+ # /frak I, upper case i
2005
+ "Ifr" => "&#x02111;",
2006
+ # /frak i, lower case i
2007
+ "ifr" => "&#x1D526;",
2008
+ # /frak J, upper case j
2009
+ "Jfr" => "&#x1D50D;",
2010
+ # /frak j, lower case j
2011
+ "jfr" => "&#x1D527;",
2012
+ # /frak K, upper case k
2013
+ "Kfr" => "&#x1D50E;",
2014
+ # /frak k, lower case k
2015
+ "kfr" => "&#x1D528;",
2016
+ # /frak L, upper case l
2017
+ "Lfr" => "&#x1D50F;",
2018
+ # /frak l, lower case l
2019
+ "lfr" => "&#x1D529;",
2020
+ # /frak M, upper case m
2021
+ "Mfr" => "&#x1D510;",
2022
+ # /frak m, lower case m
2023
+ "mfr" => "&#x1D52A;",
2024
+ # /frak N, upper case n
2025
+ "Nfr" => "&#x1D511;",
2026
+ # /frak n, lower case n
2027
+ "nfr" => "&#x1D52B;",
2028
+ # /frak O, upper case o
2029
+ "Ofr" => "&#x1D512;",
2030
+ # /frak o, lower case o
2031
+ "ofr" => "&#x1D52C;",
2032
+ # /frak P, upper case p
2033
+ "Pfr" => "&#x1D513;",
2034
+ # /frak p, lower case p
2035
+ "pfr" => "&#x1D52D;",
2036
+ # /frak Q, upper case q
2037
+ "Qfr" => "&#x1D514;",
2038
+ # /frak q, lower case q
2039
+ "qfr" => "&#x1D52E;",
2040
+ # /frak R, upper case r
2041
+ "Rfr" => "&#x0211C;",
2042
+ # /frak r, lower case r
2043
+ "rfr" => "&#x1D52F;",
2044
+ # /frak S, upper case s
2045
+ "Sfr" => "&#x1D516;",
2046
+ # /frak s, lower case s
2047
+ "sfr" => "&#x1D530;",
2048
+ # /frak T, upper case t
2049
+ "Tfr" => "&#x1D517;",
2050
+ # /frak t, lower case t
2051
+ "tfr" => "&#x1D531;",
2052
+ # /frak U, upper case u
2053
+ "Ufr" => "&#x1D518;",
2054
+ # /frak u, lower case u
2055
+ "ufr" => "&#x1D532;",
2056
+ # /frak V, upper case v
2057
+ "Vfr" => "&#x1D519;",
2058
+ # /frak v, lower case v
2059
+ "vfr" => "&#x1D533;",
2060
+ # /frak W, upper case w
2061
+ "Wfr" => "&#x1D51A;",
2062
+ # /frak w, lower case w
2063
+ "wfr" => "&#x1D534;",
2064
+ # /frak X, upper case x
2065
+ "Xfr" => "&#x1D51B;",
2066
+ # /frak x, lower case x
2067
+ "xfr" => "&#x1D535;",
2068
+ # /frak Y, upper case y
2069
+ "Yfr" => "&#x1D51C;",
2070
+ # /frak y, lower case y
2071
+ "yfr" => "&#x1D536;",
2072
+ # /frak Z, upper case z
2073
+ "Zfr" => "&#x02128;",
2074
+ # /frak z, lower case z
2075
+ "zfr" => "&#x1D537;",
2076
+ # /Bbb A, open face A
2077
+ "Aopf" => "&#x1D538;",
2078
+ # /Bbb B, open face B
2079
+ "Bopf" => "&#x1D539;",
2080
+ # /Bbb C, open face C
2081
+ "Copf" => "&#x02102;",
2082
+ # /Bbb D, open face D
2083
+ "Dopf" => "&#x1D53B;",
2084
+ # /Bbb E, open face E
2085
+ "Eopf" => "&#x1D53C;",
2086
+ # /Bbb F, open face F
2087
+ "Fopf" => "&#x1D53D;",
2088
+ # /Bbb G, open face G
2089
+ "Gopf" => "&#x1D53E;",
2090
+ # /Bbb H, open face H
2091
+ "Hopf" => "&#x0210D;",
2092
+ # /Bbb I, open face I
2093
+ "Iopf" => "&#x1D540;",
2094
+ # /Bbb J, open face J
2095
+ "Jopf" => "&#x1D541;",
2096
+ # /Bbb K, open face K
2097
+ "Kopf" => "&#x1D542;",
2098
+ # /Bbb L, open face L
2099
+ "Lopf" => "&#x1D543;",
2100
+ # /Bbb M, open face M
2101
+ "Mopf" => "&#x1D544;",
2102
+ # /Bbb N, open face N
2103
+ "Nopf" => "&#x02115;",
2104
+ # /Bbb O, open face O
2105
+ "Oopf" => "&#x1D546;",
2106
+ # /Bbb P, open face P
2107
+ "Popf" => "&#x02119;",
2108
+ # /Bbb Q, open face Q
2109
+ "Qopf" => "&#x0211A;",
2110
+ # /Bbb R, open face R
2111
+ "Ropf" => "&#x0211D;",
2112
+ # /Bbb S, open face S
2113
+ "Sopf" => "&#x1D54A;",
2114
+ # /Bbb T, open face T
2115
+ "Topf" => "&#x1D54B;",
2116
+ # /Bbb U, open face U
2117
+ "Uopf" => "&#x1D54C;",
2118
+ # /Bbb V, open face V
2119
+ "Vopf" => "&#x1D54D;",
2120
+ # /Bbb W, open face W
2121
+ "Wopf" => "&#x1D54E;",
2122
+ # /Bbb X, open face X
2123
+ "Xopf" => "&#x1D54F;",
2124
+ # /Bbb Y, open face Y
2125
+ "Yopf" => "&#x1D550;",
2126
+ # /Bbb Z, open face Z
2127
+ "Zopf" => "&#x02124;",
2128
+ # /scr A, script letter A
2129
+ "Ascr" => "&#x1D49C;",
2130
+ # /scr a, script letter a
2131
+ "ascr" => "&#x1D4B6;",
2132
+ # /scr B, script letter B
2133
+ "Bscr" => "&#x0212C;",
2134
+ # /scr b, script letter b
2135
+ "bscr" => "&#x1D4B7;",
2136
+ # /scr C, script letter C
2137
+ "Cscr" => "&#x1D49E;",
2138
+ # /scr c, script letter c
2139
+ "cscr" => "&#x1D4B8;",
2140
+ # /scr D, script letter D
2141
+ "Dscr" => "&#x1D49F;",
2142
+ # /scr d, script letter d
2143
+ "dscr" => "&#x1D4B9;",
2144
+ # /scr E, script letter E
2145
+ "Escr" => "&#x02130;",
2146
+ # /scr e, script letter e
2147
+ "escr" => "&#x0212F;",
2148
+ # /scr F, script letter F
2149
+ "Fscr" => "&#x02131;",
2150
+ # /scr f, script letter f
2151
+ "fscr" => "&#x1D4BB;",
2152
+ # /scr G, script letter G
2153
+ "Gscr" => "&#x1D4A2;",
2154
+ # /scr g, script letter g
2155
+ "gscr" => "&#x0210A;",
2156
+ # /scr H, script letter H
2157
+ "Hscr" => "&#x0210B;",
2158
+ # /scr h, script letter h
2159
+ "hscr" => "&#x1D4BD;",
2160
+ # /scr I, script letter I
2161
+ "Iscr" => "&#x02110;",
2162
+ # /scr i, script letter i
2163
+ "iscr" => "&#x1D4BE;",
2164
+ # /scr J, script letter J
2165
+ "Jscr" => "&#x1D4A5;",
2166
+ # /scr j, script letter j
2167
+ "jscr" => "&#x1D4BF;",
2168
+ # /scr K, script letter K
2169
+ "Kscr" => "&#x1D4A6;",
2170
+ # /scr k, script letter k
2171
+ "kscr" => "&#x1D4C0;",
2172
+ # /scr L, script letter L
2173
+ "Lscr" => "&#x02112;",
2174
+ # /scr l, script letter l
2175
+ "lscr" => "&#x1D4C1;",
2176
+ # /scr M, script letter M
2177
+ "Mscr" => "&#x02133;",
2178
+ # /scr m, script letter m
2179
+ "mscr" => "&#x1D4C2;",
2180
+ # /scr N, script letter N
2181
+ "Nscr" => "&#x1D4A9;",
2182
+ # /scr n, script letter n
2183
+ "nscr" => "&#x1D4C3;",
2184
+ # /scr O, script letter O
2185
+ "Oscr" => "&#x1D4AA;",
2186
+ # /scr o, script letter o
2187
+ "oscr" => "&#x02134;",
2188
+ # /scr P, script letter P
2189
+ "Pscr" => "&#x1D4AB;",
2190
+ # /scr p, script letter p
2191
+ "pscr" => "&#x1D4C5;",
2192
+ # /scr Q, script letter Q
2193
+ "Qscr" => "&#x1D4AC;",
2194
+ # /scr q, script letter q
2195
+ "qscr" => "&#x1D4C6;",
2196
+ # /scr R, script letter R
2197
+ "Rscr" => "&#x0211B;",
2198
+ # /scr r, script letter r
2199
+ "rscr" => "&#x1D4C7;",
2200
+ # /scr S, script letter S
2201
+ "Sscr" => "&#x1D4AE;",
2202
+ # /scr s, script letter s
2203
+ "sscr" => "&#x1D4C8;",
2204
+ # /scr T, script letter T
2205
+ "Tscr" => "&#x1D4AF;",
2206
+ # /scr t, script letter t
2207
+ "tscr" => "&#x1D4C9;",
2208
+ # /scr U, script letter U
2209
+ "Uscr" => "&#x1D4B0;",
2210
+ # /scr u, script letter u
2211
+ "uscr" => "&#x1D4CA;",
2212
+ # /scr V, script letter V
2213
+ "Vscr" => "&#x1D4B1;",
2214
+ # /scr v, script letter v
2215
+ "vscr" => "&#x1D4CB;",
2216
+ # /scr W, script letter W
2217
+ "Wscr" => "&#x1D4B2;",
2218
+ # /scr w, script letter w
2219
+ "wscr" => "&#x1D4CC;",
2220
+ # /scr X, script letter X
2221
+ "Xscr" => "&#x1D4B3;",
2222
+ # /scr x, script letter x
2223
+ "xscr" => "&#x1D4CD;",
2224
+ # /scr Y, script letter Y
2225
+ "Yscr" => "&#x1D4B4;",
2226
+ # /scr y, script letter y
2227
+ "yscr" => "&#x1D4CE;",
2228
+ # /scr Z, script letter Z
2229
+ "Zscr" => "&#x1D4B5;",
2230
+ # /scr z, script letter z
2231
+ "zscr" => "&#x1D4CF;",
2232
+ # =ampersand
2233
+ "amp" => "&#38;",
2234
+ # =apostrophe
2235
+ "apos" => "&#x00027;",
2236
+ # /ast B: =asterisk
2237
+ "ast" => "&#x0002A;",
2238
+ # =broken (vertical) bar
2239
+ "brvbar" => "&#x000A6;",
2240
+ # /backslash =reverse solidus
2241
+ "bsol" => "&#x0005C;",
2242
+ # =cent sign
2243
+ "cent" => "&#x000A2;",
2244
+ # /colon P:
2245
+ "colon" => "&#x0003A;",
2246
+ # P: =comma
2247
+ "comma" => "&#x0002C;",
2248
+ # =commercial at
2249
+ "commat" => "&#x00040;",
2250
+ # =copyright sign
2251
+ "copy" => "&#x000A9;",
2252
+ # =general currency sign
2253
+ "curren" => "&#x000A4;",
2254
+ # /downarrow A: =downward arrow
2255
+ "darr" => "&#x02193;",
2256
+ # =degree sign
2257
+ "deg" => "&#x000B0;",
2258
+ # /div B: =divide sign
2259
+ "divide" => "&#x000F7;",
2260
+ # =dollar sign
2261
+ "dollar" => "&#x00024;",
2262
+ # =equals sign R:
2263
+ "equals" => "&#x0003D;",
2264
+ # =exclamation mark
2265
+ "excl" => "&#x00021;",
2266
+ # =fraction one-half
2267
+ "frac12" => "&#x000BD;",
2268
+ # =fraction one-quarter
2269
+ "frac14" => "&#x000BC;",
2270
+ # =fraction one-eighth
2271
+ "frac18" => "&#x0215B;",
2272
+ # =fraction three-quarters
2273
+ "frac34" => "&#x000BE;",
2274
+ # =fraction three-eighths
2275
+ "frac38" => "&#x0215C;",
2276
+ # =fraction five-eighths
2277
+ "frac58" => "&#x0215D;",
2278
+ # =fraction seven-eighths
2279
+ "frac78" => "&#x0215E;",
2280
+ # =greater-than sign R:
2281
+ "gt" => "&#x0003E;",
2282
+ # =fraction one-half
2283
+ "half" => "&#x000BD;",
2284
+ # =horizontal bar
2285
+ "horbar" => "&#x02015;",
2286
+ # =hyphen
2287
+ "hyphen" => "&#x02010;",
2288
+ # =inverted exclamation mark
2289
+ "iexcl" => "&#x000A1;",
2290
+ # =inverted question mark
2291
+ "iquest" => "&#x000BF;",
2292
+ # =angle quotation mark, left
2293
+ "laquo" => "&#x000AB;",
2294
+ # /leftarrow /gets A: =leftward arrow
2295
+ "larr" => "&#x02190;",
2296
+ # /lbrace O: =left curly bracket
2297
+ "lcub" => "&#x0007B;",
2298
+ # =double quotation mark, left
2299
+ "ldquo" => "&#x0201C;",
2300
+ # =low line
2301
+ "lowbar" => "&#x0005F;",
2302
+ # O: =left parenthesis
2303
+ "lpar" => "&#x00028;",
2304
+ # /lbrack O: =left square bracket
2305
+ "lsqb" => "&#x0005B;",
2306
+ # =single quotation mark, left
2307
+ "lsquo" => "&#x02018;",
2308
+ # =less-than sign R:
2309
+ "lt" => "&#60;",
2310
+ # =micro sign
2311
+ "micro" => "&#x000B5;",
2312
+ # /centerdot B: =middle dot
2313
+ "middot" => "&#x000B7;",
2314
+ # =no break (required) space
2315
+ "nbsp" => "&#x000A0;",
2316
+ # /neg /lnot =not sign
2317
+ "not" => "&#x000AC;",
2318
+ # =number sign
2319
+ "num" => "&#x00023;",
2320
+ # =ohm sign
2321
+ "ohm" => "&#x02126;",
2322
+ # =ordinal indicator, feminine
2323
+ "ordf" => "&#x000AA;",
2324
+ # =ordinal indicator, masculine
2325
+ "ordm" => "&#x000BA;",
2326
+ # =pilcrow (paragraph sign)
2327
+ "para" => "&#x000B6;",
2328
+ # =percent sign
2329
+ "percnt" => "&#x00025;",
2330
+ # =full stop, period
2331
+ "period" => "&#x0002E;",
2332
+ # =plus sign B:
2333
+ "plus" => "&#x0002B;",
2334
+ # /pm B: =plus-or-minus sign
2335
+ "plusmn" => "&#x000B1;",
2336
+ # =pound sign
2337
+ "pound" => "&#x000A3;",
2338
+ # =question mark
2339
+ "quest" => "&#x0003F;",
2340
+ # =quotation mark
2341
+ "quot" => "&#x00022;",
2342
+ # =angle quotation mark, right
2343
+ "raquo" => "&#x000BB;",
2344
+ # /rightarrow /to A: =rightward arrow
2345
+ "rarr" => "&#x02192;",
2346
+ # /rbrace C: =right curly bracket
2347
+ "rcub" => "&#x0007D;",
2348
+ # =double quotation mark, right
2349
+ "rdquo" => "&#x0201D;",
2350
+ # /circledR =registered sign
2351
+ "reg" => "&#x000AE;",
2352
+ # C: =right parenthesis
2353
+ "rpar" => "&#x00029;",
2354
+ # /rbrack C: =right square bracket
2355
+ "rsqb" => "&#x0005D;",
2356
+ # =single quotation mark, right
2357
+ "rsquo" => "&#x02019;",
2358
+ # =section sign
2359
+ "sect" => "&#x000A7;",
2360
+ # =semicolon P:
2361
+ "semi" => "&#x0003B;",
2362
+ # =soft hyphen
2363
+ "shy" => "&#x000AD;",
2364
+ # =solidus
2365
+ "sol" => "&#x0002F;",
2366
+ # =music note (sung text sign)
2367
+ "sung" => "&#x0266A;",
2368
+ # =superscript one
2369
+ "sup1" => "&#x000B9;",
2370
+ # =superscript two
2371
+ "sup2" => "&#x000B2;",
2372
+ # =superscript three
2373
+ "sup3" => "&#x000B3;",
2374
+ # /times B: =multiply sign
2375
+ "times" => "&#x000D7;",
2376
+ # =trade mark sign
2377
+ "trade" => "&#x02122;",
2378
+ # /uparrow A: =upward arrow
2379
+ "uarr" => "&#x02191;",
2380
+ # /vert =vertical bar
2381
+ "verbar" => "&#x0007C;",
2382
+ # /yen =yen sign
2383
+ "yen" => "&#x000A5;",
2384
+ # =significant blank symbol
2385
+ "blank" => "&#x02423;",
2386
+ # =50% shaded block
2387
+ "blk12" => "&#x02592;",
2388
+ # =25% shaded block
2389
+ "blk14" => "&#x02591;",
2390
+ # =75% shaded block
2391
+ "blk34" => "&#x02593;",
2392
+ # =full block
2393
+ "block" => "&#x02588;",
2394
+ # /bullet B: =round bullet, filled
2395
+ "bull" => "&#x02022;",
2396
+ # =caret (insertion mark)
2397
+ "caret" => "&#x02041;",
2398
+ # /checkmark =tick, check mark
2399
+ "check" => "&#x02713;",
2400
+ # /circ B: =circle, open
2401
+ "cir" => "&#x025CB;",
2402
+ # /clubsuit =club suit symbol
2403
+ "clubs" => "&#x02663;",
2404
+ # =sound recording copyright sign
2405
+ "copysr" => "&#x02117;",
2406
+ # =ballot cross
2407
+ "cross" => "&#x02717;",
2408
+ # /ddagger B: =double dagger
2409
+ "Dagger" => "&#x02021;",
2410
+ # /dagger B: =dagger
2411
+ "dagger" => "&#x02020;",
2412
+ # =hyphen (true graphic)
2413
+ "dash" => "&#x02010;",
2414
+ # /diamondsuit =diamond suit symbol
2415
+ "diams" => "&#x02666;",
2416
+ # downward left crop mark
2417
+ "dlcrop" => "&#x0230D;",
2418
+ # downward right crop mark
2419
+ "drcrop" => "&#x0230C;",
2420
+ # /triangledown =down triangle, open
2421
+ "dtri" => "&#x025BF;",
2422
+ # /blacktriangledown =dn tri, filled
2423
+ "dtrif" => "&#x025BE;",
2424
+ # =em space
2425
+ "emsp" => "&#x02003;",
2426
+ # =1/3-em space
2427
+ "emsp13" => "&#x02004;",
2428
+ # =1/4-em space
2429
+ "emsp14" => "&#x02005;",
2430
+ # =en space (1/2-em)
2431
+ "ensp" => "&#x02002;",
2432
+ # =female symbol
2433
+ "female" => "&#x02640;",
2434
+ # small ffi ligature
2435
+ "ffilig" => "&#x0FB03;",
2436
+ # small ff ligature
2437
+ "fflig" => "&#x0FB00;",
2438
+ # small ffl ligature
2439
+ "ffllig" => "&#x0FB04;",
2440
+ # small fi ligature
2441
+ "filig" => "&#x0FB01;",
2442
+ # /flat =musical flat
2443
+ "flat" => "&#x0266D;",
2444
+ # small fl ligature
2445
+ "fllig" => "&#x0FB02;",
2446
+ # =fraction one-third
2447
+ "frac13" => "&#x02153;",
2448
+ # =fraction one-fifth
2449
+ "frac15" => "&#x02155;",
2450
+ # =fraction one-sixth
2451
+ "frac16" => "&#x02159;",
2452
+ # =fraction two-thirds
2453
+ "frac23" => "&#x02154;",
2454
+ # =fraction two-fifths
2455
+ "frac25" => "&#x02156;",
2456
+ # =fraction three-fifths
2457
+ "frac35" => "&#x02157;",
2458
+ # =fraction four-fifths
2459
+ "frac45" => "&#x02158;",
2460
+ # =fraction five-sixths
2461
+ "frac56" => "&#x0215A;",
2462
+ # =hair space
2463
+ "hairsp" => "&#x0200A;",
2464
+ # /heartsuit =heart suit symbol
2465
+ "hearts" => "&#x02665;",
2466
+ # =ellipsis (horizontal)
2467
+ "hellip" => "&#x02026;",
2468
+ # rectangle, filled (hyphen bullet)
2469
+ "hybull" => "&#x02043;",
2470
+ # =in-care-of symbol
2471
+ "incare" => "&#x02105;",
2472
+ # =rising dbl quote, left (low)
2473
+ "ldquor" => "&#x0201E;",
2474
+ # =lower half block
2475
+ "lhblk" => "&#x02584;",
2476
+ # /lozenge - lozenge or total mark
2477
+ "loz" => "&#x025CA;",
2478
+ # /blacklozenge - lozenge, filled
2479
+ "lozf" => "&#x029EB;",
2480
+ # =rising single quote, left (low)
2481
+ "lsquor" => "&#x0201A;",
2482
+ # /triangleleft B: l triangle, open
2483
+ "ltri" => "&#x025C3;",
2484
+ # /blacktriangleleft R: =l tri, filled
2485
+ "ltrif" => "&#x025C2;",
2486
+ # =male symbol
2487
+ "male" => "&#x02642;",
2488
+ # /maltese =maltese cross
2489
+ "malt" => "&#x02720;",
2490
+ # =histogram marker
2491
+ "marker" => "&#x025AE;",
2492
+ # =em dash
2493
+ "mdash" => "&#x02014;",
2494
+ # em leader
2495
+ "mldr" => "&#x02026;",
2496
+ # /natural - music natural
2497
+ "natur" => "&#x0266E;",
2498
+ # =en dash
2499
+ "ndash" => "&#x02013;",
2500
+ # =double baseline dot (en leader)
2501
+ "nldr" => "&#x02025;",
2502
+ # =digit space (width of a number)
2503
+ "numsp" => "&#x02007;",
2504
+ # =telephone symbol
2505
+ "phone" => "&#x0260E;",
2506
+ # =punctuation space (width of comma)
2507
+ "puncsp" => "&#x02008;",
2508
+ # rising dbl quote, right (high)
2509
+ "rdquor" => "&#x0201D;",
2510
+ # =rectangle, open
2511
+ "rect" => "&#x025AD;",
2512
+ # rising single quote, right (high)
2513
+ "rsquor" => "&#x02019;",
2514
+ # /triangleright B: r triangle, open
2515
+ "rtri" => "&#x025B9;",
2516
+ # /blacktriangleright R: =r tri, filled
2517
+ "rtrif" => "&#x025B8;",
2518
+ # pharmaceutical prescription (Rx)
2519
+ "rx" => "&#x0211E;",
2520
+ # sextile (6-pointed star)
2521
+ "sext" => "&#x02736;",
2522
+ # /sharp =musical sharp
2523
+ "sharp" => "&#x0266F;",
2524
+ # /spadesuit =spades suit symbol
2525
+ "spades" => "&#x02660;",
2526
+ # =square, open
2527
+ "squ" => "&#x025A1;",
2528
+ # /blacksquare =sq bullet, filled
2529
+ "squf" => "&#x025AA;",
2530
+ # =star, open
2531
+ "star" => "&#x02606;",
2532
+ # /bigstar - star, filled
2533
+ "starf" => "&#x02605;",
2534
+ # register mark or target
2535
+ "target" => "&#x02316;",
2536
+ # =telephone recorder symbol
2537
+ "telrec" => "&#x02315;",
2538
+ # =thin space (1/6-em)
2539
+ "thinsp" => "&#x02009;",
2540
+ # =upper half block
2541
+ "uhblk" => "&#x02580;",
2542
+ # upward left crop mark
2543
+ "ulcrop" => "&#x0230F;",
2544
+ # upward right crop mark
2545
+ "urcrop" => "&#x0230E;",
2546
+ # /triangle =up triangle, open
2547
+ "utri" => "&#x025B5;",
2548
+ # /blacktriangle =up tri, filled
2549
+ "utrif" => "&#x025B4;",
2550
+ # vertical ellipsis
2551
+ "vellip" => "&#x022EE;",
2552
+ # ac current
2553
+ "acd" => "&#x0223F;",
2554
+ # /aleph aleph, Hebrew
2555
+ "aleph" => "&#x02135;",
2556
+ # dbl logical and
2557
+ "And" => "&#x02A53;",
2558
+ # /wedge /land B: logical and
2559
+ "and" => "&#x02227;",
2560
+ # two logical and
2561
+ "andand" => "&#x02A55;",
2562
+ # and, horizontal dash
2563
+ "andd" => "&#x02A5C;",
2564
+ # sloping large and
2565
+ "andslope" => "&#x02A58;",
2566
+ # and with middle stem
2567
+ "andv" => "&#x02A5A;",
2568
+ # right (90 degree) angle
2569
+ "angrt" => "&#x0221F;",
2570
+ # /sphericalangle angle-spherical
2571
+ "angsph" => "&#x02222;",
2572
+ # Angstrom capital A, ring
2573
+ "angst" => "&#x0212B;",
2574
+ # /approx R: approximate
2575
+ "ap" => "&#x02248;",
2576
+ # approximate, circumflex accent
2577
+ "apacir" => "&#x02A6F;",
2578
+ # contour integral, anti-clockwise
2579
+ "awconint" => "&#x02233;",
2580
+ # anti clock-wise integration
2581
+ "awint" => "&#x02A11;",
2582
+ # /because R: because
2583
+ "becaus" => "&#x02235;",
2584
+ # Bernoulli function (script capital B)
2585
+ "bernou" => "&#x0212C;",
2586
+ # reverse not equal
2587
+ "bne" => "&#x0003D;&#x020E5;",
2588
+ # reverse not equivalent
2589
+ "bnequiv" => "&#x02261;&#x020E5;",
2590
+ # reverse not with two horizontal strokes
2591
+ "bNot" => "&#x02AED;",
2592
+ # reverse not
2593
+ "bnot" => "&#x02310;",
2594
+ # /bot bottom
2595
+ "bottom" => "&#x022A5;",
2596
+ # /cap B: intersection
2597
+ "cap" => "&#x02229;",
2598
+ # triple contour integral operator
2599
+ "Cconint" => "&#x02230;",
2600
+ # circulation function
2601
+ "cirfnint" => "&#x02A10;",
2602
+ # /circ B: composite function (small circle)
2603
+ "compfn" => "&#x02218;",
2604
+ # /cong R: congruent with
2605
+ "cong" => "&#x02245;",
2606
+ # double contour integral operator
2607
+ "Conint" => "&#x0222F;",
2608
+ # /oint L: contour integral operator
2609
+ "conint" => "&#x0222E;",
2610
+ # /cdots, three dots, centered
2611
+ "ctdot" => "&#x022EF;",
2612
+ # /cup B: union or logical sum
2613
+ "cup" => "&#x0222A;",
2614
+ # contour integral, clockwise
2615
+ "cwconint" => "&#x02232;",
2616
+ # clockwise integral
2617
+ "cwint" => "&#x02231;",
2618
+ # cylindricity
2619
+ "cylcty" => "&#x0232D;",
2620
+ # set membership, long horizontal stroke
2621
+ "disin" => "&#x022F2;",
2622
+ # dieresis or umlaut mark
2623
+ "Dot" => "&#x000A8;",
2624
+ # solidus, bar above
2625
+ "dsol" => "&#x029F6;",
2626
+ # /ddots, three dots, descending
2627
+ "dtdot" => "&#x022F1;",
2628
+ # large downward pointing angle
2629
+ "dwangle" => "&#x029A6;",
2630
+ # electrical intersection
2631
+ "elinters" => "&#x0FFFD;",
2632
+ # parallel, equal; equal or parallel
2633
+ "epar" => "&#x022D5;",
2634
+ # parallel, slanted, equal; homothetically congruent to
2635
+ "eparsl" => "&#x029E3;",
2636
+ # /equiv R: identical with
2637
+ "equiv" => "&#x02261;",
2638
+ # equivalent, equal; congruent and parallel
2639
+ "eqvparsl" => "&#x029E5;",
2640
+ # /exists at least one exists
2641
+ "exist" => "&#x02203;",
2642
+ # flatness
2643
+ "fltns" => "&#x025B1;",
2644
+ # function of (italic small f)
2645
+ "fnof" => "&#x00192;",
2646
+ # /forall for all
2647
+ "forall" => "&#x02200;",
2648
+ # finite part integral
2649
+ "fpartint" => "&#x02A0D;",
2650
+ # /geq /ge R: greater-than-or-equal
2651
+ "ge" => "&#x02265;",
2652
+ # Hamiltonian (script capital H)
2653
+ "hamilt" => "&#x0210B;",
2654
+ # /iff if and only if
2655
+ "iff" => "&#x021D4;",
2656
+ # infinity sign, incomplete
2657
+ "iinfin" => "&#x029DC;",
2658
+ # impedance
2659
+ "imped" => "&#x001B5;",
2660
+ # /infty infinity
2661
+ "infin" => "&#x0221E;",
2662
+ # tie, infinity
2663
+ "infintie" => "&#x029DD;",
2664
+ # double integral operator
2665
+ "Int" => "&#x0222C;",
2666
+ # /int L: integral operator
2667
+ "int" => "&#x0222B;",
2668
+ # integral, left arrow with hook
2669
+ "intlarhk" => "&#x02A17;",
2670
+ # /in R: set membership
2671
+ "isin" => "&#x02208;",
2672
+ # set membership, dot above
2673
+ "isindot" => "&#x022F5;",
2674
+ # set membership, two horizontal strokes
2675
+ "isinE" => "&#x022F9;",
2676
+ # set membership, vertical bar on horizontal stroke
2677
+ "isins" => "&#x022F4;",
2678
+ # large set membership, vertical bar on horizontal stroke
2679
+ "isinsv" => "&#x022F3;",
2680
+ # set membership, variant
2681
+ "isinv" => "&#x02208;",
2682
+ # Lagrangian (script capital L)
2683
+ "lagran" => "&#x02112;",
2684
+ # left angle bracket, double
2685
+ "Lang" => "&#x0300A;",
2686
+ # /langle O: left angle bracket
2687
+ "lang" => "&#x02329;",
2688
+ # /Leftarrow A: is implied by
2689
+ "lArr" => "&#x021D0;",
2690
+ # left broken bracket
2691
+ "lbbrk" => "&#x03014;",
2692
+ # /leq /le R: less-than-or-equal
2693
+ "le" => "&#x02264;",
2694
+ # left open angular bracket
2695
+ "loang" => "&#x03018;",
2696
+ # left open bracket
2697
+ "lobrk" => "&#x0301A;",
2698
+ # left open parenthesis
2699
+ "lopar" => "&#x02985;",
2700
+ # low asterisk
2701
+ "lowast" => "&#x02217;",
2702
+ # B: minus sign
2703
+ "minus" => "&#x02212;",
2704
+ # /mp B: minus-or-plus sign
2705
+ "mnplus" => "&#x02213;",
2706
+ # /nabla del, Hamilton operator
2707
+ "nabla" => "&#x02207;",
2708
+ # /ne /neq R: not equal
2709
+ "ne" => "&#x02260;",
2710
+ # not equal, dot
2711
+ "nedot" => "&#x02250;&#x00338;",
2712
+ # not, horizontal, parallel
2713
+ "nhpar" => "&#x02AF2;",
2714
+ # /ni /owns R: contains
2715
+ "ni" => "&#x0220B;",
2716
+ # contains, vertical bar on horizontal stroke
2717
+ "nis" => "&#x022FC;",
2718
+ # contains, long horizontal stroke
2719
+ "nisd" => "&#x022FA;",
2720
+ # contains, variant
2721
+ "niv" => "&#x0220B;",
2722
+ # not with two horizontal strokes
2723
+ "Not" => "&#x02AEC;",
2724
+ # /notin N: negated set membership
2725
+ "notin" => "&#x02209;",
2726
+ # negated set membership, dot above
2727
+ "notindot" => "&#x022F5;&#x00338;",
2728
+ # negated set membership, two horizontal strokes
2729
+ "notinE" => "&#x022F9;&#x00338;",
2730
+ # negated set membership, variant
2731
+ "notinva" => "&#x02209;",
2732
+ # negated set membership, variant
2733
+ "notinvb" => "&#x022F7;",
2734
+ # negated set membership, variant
2735
+ "notinvc" => "&#x022F6;",
2736
+ # negated contains
2737
+ "notni" => "&#x0220C;",
2738
+ # negated contains, variant
2739
+ "notniva" => "&#x0220C;",
2740
+ # contains, variant
2741
+ "notnivb" => "&#x022FE;",
2742
+ # contains, variant
2743
+ "notnivc" => "&#x022FD;",
2744
+ # not parallel, slanted
2745
+ "nparsl" => "&#x02AFD;&#x020E5;",
2746
+ # not partial differential
2747
+ "npart" => "&#x02202;&#x00338;",
2748
+ # line integration, not including the pole
2749
+ "npolint" => "&#x02A14;",
2750
+ # not, vert, infinity
2751
+ "nvinfin" => "&#x029DE;",
2752
+ # circle, cross
2753
+ "olcross" => "&#x029BB;",
2754
+ # dbl logical or
2755
+ "Or" => "&#x02A54;",
2756
+ # /vee /lor B: logical or
2757
+ "or" => "&#x02228;",
2758
+ # or, horizontal dash
2759
+ "ord" => "&#x02A5D;",
2760
+ # order of (script small o)
2761
+ "order" => "&#x02134;",
2762
+ # two logical or
2763
+ "oror" => "&#x02A56;",
2764
+ # sloping large or
2765
+ "orslope" => "&#x02A57;",
2766
+ # or with middle stem
2767
+ "orv" => "&#x02A5B;",
2768
+ # /parallel R: parallel
2769
+ "par" => "&#x02225;",
2770
+ # parallel, slanted
2771
+ "parsl" => "&#x02AFD;",
2772
+ # /partial partial differential
2773
+ "part" => "&#x02202;",
2774
+ # per thousand
2775
+ "permil" => "&#x02030;",
2776
+ # /perp R: perpendicular
2777
+ "perp" => "&#x022A5;",
2778
+ # per 10 thousand
2779
+ "pertenk" => "&#x02031;",
2780
+ # physics M-matrix (script capital M)
2781
+ "phmmat" => "&#x02133;",
2782
+ # integral around a point operator
2783
+ "pointint" => "&#x02A15;",
2784
+ # double prime or second
2785
+ "Prime" => "&#x02033;",
2786
+ # /prime prime or minute
2787
+ "prime" => "&#x02032;",
2788
+ # all-around profile
2789
+ "profalar" => "&#x0232E;",
2790
+ # profile of a line
2791
+ "profline" => "&#x02312;",
2792
+ # profile of a surface
2793
+ "profsurf" => "&#x02313;",
2794
+ # /propto R: is proportional to
2795
+ "prop" => "&#x0221D;",
2796
+ # /iiiint quadruple integral operator
2797
+ "qint" => "&#x02A0C;",
2798
+ # quadruple prime
2799
+ "qprime" => "&#x02057;",
2800
+ # quaternion integral operator
2801
+ "quatint" => "&#x02A16;",
2802
+ # /surd radical
2803
+ "radic" => "&#x0221A;",
2804
+ # right angle bracket, double
2805
+ "Rang" => "&#x0300B;",
2806
+ # /rangle C: right angle bracket
2807
+ "rang" => "&#x0232A;",
2808
+ # /Rightarrow A: implies
2809
+ "rArr" => "&#x021D2;",
2810
+ # right broken bracket
2811
+ "rbbrk" => "&#x03015;",
2812
+ # right open angular bracket
2813
+ "roang" => "&#x03019;",
2814
+ # right open bracket
2815
+ "robrk" => "&#x0301B;",
2816
+ # right open parenthesis
2817
+ "ropar" => "&#x02986;",
2818
+ # line integration, rectangular path around pole
2819
+ "rppolint" => "&#x02A12;",
2820
+ # line integration, semi-circular path around pole
2821
+ "scpolint" => "&#x02A13;",
2822
+ # /sim R: similar
2823
+ "sim" => "&#x0223C;",
2824
+ # similar, dot
2825
+ "simdot" => "&#x02A6A;",
2826
+ # /simeq R: similar, equals
2827
+ "sime" => "&#x02243;",
2828
+ # similar, parallel, slanted, equal
2829
+ "smeparsl" => "&#x029E4;",
2830
+ # /square, square
2831
+ "square" => "&#x025A1;",
2832
+ # /blacksquare, square, filled
2833
+ "squarf" => "&#x025AA;",
2834
+ # straightness
2835
+ "strns" => "&#x000AF;",
2836
+ # /subset R: subset or is implied by
2837
+ "sub" => "&#x02282;",
2838
+ # /subseteq R: subset, equals
2839
+ "sube" => "&#x02286;",
2840
+ # /supset R: superset or implies
2841
+ "sup" => "&#x02283;",
2842
+ # /supseteq R: superset, equals
2843
+ "supe" => "&#x02287;",
2844
+ # /therefore R: therefore
2845
+ "there4" => "&#x02234;",
2846
+ # /iiint triple integral operator
2847
+ "tint" => "&#x0222D;",
2848
+ # /top top
2849
+ "top" => "&#x022A4;",
2850
+ # top and bottom
2851
+ "topbot" => "&#x02336;",
2852
+ # top, circle below
2853
+ "topcir" => "&#x02AF1;",
2854
+ # triple prime
2855
+ "tprime" => "&#x02034;",
2856
+ # three dots, ascending
2857
+ "utdot" => "&#x022F0;",
2858
+ # large upward pointing angle
2859
+ "uwangle" => "&#x029A7;",
2860
+ # right angle, variant
2861
+ "vangrt" => "&#x0299C;",
2862
+ # logical or, equals
2863
+ "veeeq" => "&#x0225A;",
2864
+ # /Vert dbl vertical bar
2865
+ "Verbar" => "&#x02016;",
2866
+ # /wedgeq R: corresponds to (wedge, equals)
2867
+ "wedgeq" => "&#x02259;",
2868
+ # large contains, vertical bar on horizontal stroke
2869
+ "xnis" => "&#x022FB;",
2870
+ # alias ISOAMSO ang
2871
+ "angle" => "&#x02220;",
2872
+ # character showing function application in presentation tagging
2873
+ "ApplyFunction" => "&#x02061;",
2874
+ # alias ISOTECH ap
2875
+ "approx" => "&#x02248;",
2876
+ # alias ISOAMSR ape
2877
+ "approxeq" => "&#x0224A;",
2878
+ # assignment operator, alias ISOAMSR colone
2879
+ "Assign" => "&#x02254;",
2880
+ # alias ISOAMSR bcong
2881
+ "backcong" => "&#x0224C;",
2882
+ # alias ISOAMSR bepsi
2883
+ "backepsilon" => "&#x003F6;",
2884
+ # alias ISOAMSO bprime
2885
+ "backprime" => "&#x02035;",
2886
+ # alias ISOAMSR bsim
2887
+ "backsim" => "&#x0223D;",
2888
+ # alias ISOAMSR bsime
2889
+ "backsimeq" => "&#x022CD;",
2890
+ # alias ISOAMSB setmn
2891
+ "Backslash" => "&#x02216;",
2892
+ # alias ISOAMSB barwed
2893
+ "barwedge" => "&#x02305;",
2894
+ # alias ISOTECH becaus
2895
+ "Because" => "&#x02235;",
2896
+ # alias ISOTECH becaus
2897
+ "because" => "&#x02235;",
2898
+ # alias ISOTECH bernou
2899
+ "Bernoullis" => "&#x0212C;",
2900
+ # alias ISOAMSR twixt
2901
+ "between" => "&#x0226C;",
2902
+ # alias ISOAMSB xcap
2903
+ "bigcap" => "&#x022C2;",
2904
+ # alias ISOAMSB xcirc
2905
+ "bigcirc" => "&#x025EF;",
2906
+ # alias ISOAMSB xcup
2907
+ "bigcup" => "&#x022C3;",
2908
+ # alias ISOAMSB xodot
2909
+ "bigodot" => "&#x02A00;",
2910
+ # alias ISOAMSB xoplus
2911
+ "bigoplus" => "&#x02A01;",
2912
+ # alias ISOAMSB xotime
2913
+ "bigotimes" => "&#x02A02;",
2914
+ # alias ISOAMSB xsqcup
2915
+ "bigsqcup" => "&#x02A06;",
2916
+ # ISOPUB starf
2917
+ "bigstar" => "&#x02605;",
2918
+ # alias ISOAMSB xdtri
2919
+ "bigtriangledown" => "&#x025BD;",
2920
+ # alias ISOAMSB xutri
2921
+ "bigtriangleup" => "&#x025B3;",
2922
+ # alias ISOAMSB xuplus
2923
+ "biguplus" => "&#x02A04;",
2924
+ # alias ISOAMSB xvee
2925
+ "bigvee" => "&#x022C1;",
2926
+ # alias ISOAMSB xwedge
2927
+ "bigwedge" => "&#x022C0;",
2928
+ # alias ISOAMSA rbarr
2929
+ "bkarow" => "&#x0290D;",
2930
+ # alias ISOPUB lozf
2931
+ "blacklozenge" => "&#x029EB;",
2932
+ # ISOTECH squarf
2933
+ "blacksquare" => "&#x025AA;",
2934
+ # alias ISOPUB utrif
2935
+ "blacktriangle" => "&#x025B4;",
2936
+ # alias ISOPUB dtrif
2937
+ "blacktriangledown" => "&#x025BE;",
2938
+ # alias ISOPUB ltrif
2939
+ "blacktriangleleft" => "&#x025C2;",
2940
+ # alias ISOPUB rtrif
2941
+ "blacktriangleright" => "&#x025B8;",
2942
+ # alias ISOTECH bottom
2943
+ "bot" => "&#x022A5;",
2944
+ # alias ISOAMSB minusb
2945
+ "boxminus" => "&#x0229F;",
2946
+ # alias ISOAMSB plusb
2947
+ "boxplus" => "&#x0229E;",
2948
+ # alias ISOAMSB timesb
2949
+ "boxtimes" => "&#x022A0;",
2950
+ # alias ISODIA breve
2951
+ "Breve" => "&#x002D8;",
2952
+ # alias ISOPUB bull
2953
+ "bullet" => "&#x02022;",
2954
+ # alias ISOAMSR bump
2955
+ "Bumpeq" => "&#x0224E;",
2956
+ # alias ISOAMSR bumpe
2957
+ "bumpeq" => "&#x0224F;",
2958
+ # D for use in differentials, e.g., within integrals
2959
+ "CapitalDifferentialD" => "&#x02145;",
2960
+ # the non-associative ring of octonions or Cayley numbers
2961
+ "Cayleys" => "&#x0212D;",
2962
+ # alias ISODIA cedil
2963
+ "Cedilla" => "&#x000B8;",
2964
+ # alias ISONUM middot
2965
+ "CenterDot" => "&#x000B7;",
2966
+ # alias ISONUM middot
2967
+ "centerdot" => "&#x000B7;",
2968
+ # alias ISOPUB check
2969
+ "checkmark" => "&#x02713;",
2970
+ # alias ISOAMSR cire
2971
+ "circeq" => "&#x02257;",
2972
+ # alias ISOAMSA olarr
2973
+ "circlearrowleft" => "&#x021BA;",
2974
+ # alias ISOAMSA orarr
2975
+ "circlearrowright" => "&#x021BB;",
2976
+ # alias ISOAMSB oast
2977
+ "circledast" => "&#x0229B;",
2978
+ # alias ISOAMSB ocir
2979
+ "circledcirc" => "&#x0229A;",
2980
+ # alias ISOAMSB odash
2981
+ "circleddash" => "&#x0229D;",
2982
+ # alias ISOAMSB odot
2983
+ "CircleDot" => "&#x02299;",
2984
+ # alias ISONUM reg
2985
+ "circledR" => "&#x000AE;",
2986
+ # alias ISOAMSO oS
2987
+ "circledS" => "&#x024C8;",
2988
+ # alias ISOAMSB ominus
2989
+ "CircleMinus" => "&#x02296;",
2990
+ # alias ISOAMSB oplus
2991
+ "CirclePlus" => "&#x02295;",
2992
+ # alias ISOAMSB otimes
2993
+ "CircleTimes" => "&#x02297;",
2994
+ # alias ISOTECH cwconint
2995
+ "ClockwiseContourIntegral" => "&#x02232;",
2996
+ # alias ISONUM rdquo
2997
+ "CloseCurlyDoubleQuote" => "&#x0201D;",
2998
+ # alias ISONUM rsquo
2999
+ "CloseCurlyQuote" => "&#x02019;",
3000
+ # ISOPUB clubs
3001
+ "clubsuit" => "&#x02663;",
3002
+ # alias ISOAMSR colone
3003
+ "coloneq" => "&#x02254;",
3004
+ # alias ISOAMSO comp
3005
+ "complement" => "&#x02201;",
3006
+ # the field of complex numbers
3007
+ "complexes" => "&#x02102;",
3008
+ # alias ISOTECH equiv
3009
+ "Congruent" => "&#x02261;",
3010
+ # alias ISOTECH conint
3011
+ "ContourIntegral" => "&#x0222E;",
3012
+ # alias ISOAMSB coprod
3013
+ "Coproduct" => "&#x02210;",
3014
+ # alias ISOTECH awconint
3015
+ "CounterClockwiseContourIntegral" => "&#x02233;",
3016
+ # alias asympeq
3017
+ "CupCap" => "&#x0224D;",
3018
+ # alias ISOAMSR cuepr
3019
+ "curlyeqprec" => "&#x022DE;",
3020
+ # alias ISOAMSR cuesc
3021
+ "curlyeqsucc" => "&#x022DF;",
3022
+ # alias ISOAMSB cuvee
3023
+ "curlyvee" => "&#x022CE;",
3024
+ # alias ISOAMSB cuwed
3025
+ "curlywedge" => "&#x022CF;",
3026
+ # alias ISOAMSA cularr
3027
+ "curvearrowleft" => "&#x021B6;",
3028
+ # alias ISOAMSA curarr
3029
+ "curvearrowright" => "&#x021B7;",
3030
+ # alias ISOAMSA rBarr
3031
+ "dbkarow" => "&#x0290F;",
3032
+ # alias ISOPUB Dagger
3033
+ "ddagger" => "&#x02021;",
3034
+ # alias ISOAMSR eDDot
3035
+ "ddotseq" => "&#x02A77;",
3036
+ # alias ISOTECH nabla
3037
+ "Del" => "&#x02207;",
3038
+ # alias ISODIA acute
3039
+ "DiacriticalAcute" => "&#x000B4;",
3040
+ # alias ISODIA dot
3041
+ "DiacriticalDot" => "&#x002D9;",
3042
+ # alias ISODIA dblac
3043
+ "DiacriticalDoubleAcute" => "&#x002DD;",
3044
+ # alias ISODIA grave
3045
+ "DiacriticalGrave" => "&#x00060;",
3046
+ # alias ISODIA tilde
3047
+ "DiacriticalTilde" => "&#x002DC;",
3048
+ # alias ISOAMSB diam
3049
+ "Diamond" => "&#x022C4;",
3050
+ # alias ISOAMSB diam
3051
+ "diamond" => "&#x022C4;",
3052
+ # ISOPUB diams
3053
+ "diamondsuit" => "&#x02666;",
3054
+ # d for use in differentials, e.g., within integrals
3055
+ "DifferentialD" => "&#x02146;",
3056
+ # alias ISOGRK3 gammad
3057
+ "digamma" => "&#x003DD;",
3058
+ # alias ISONUM divide
3059
+ "div" => "&#x000F7;",
3060
+ # alias ISOAMSB divonx
3061
+ "divideontimes" => "&#x022C7;",
3062
+ # alias ISOAMSR esdot
3063
+ "doteq" => "&#x02250;",
3064
+ # alias ISOAMSR eDot
3065
+ "doteqdot" => "&#x02251;",
3066
+ # alias ISOAMSR esdot
3067
+ "DotEqual" => "&#x02250;",
3068
+ # alias ISOAMSB minusd
3069
+ "dotminus" => "&#x02238;",
3070
+ # alias ISOAMSB plusdo
3071
+ "dotplus" => "&#x02214;",
3072
+ # alias ISOAMSB sdotb
3073
+ "dotsquare" => "&#x022A1;",
3074
+ # alias ISOAMSB Barwed
3075
+ "doublebarwedge" => "&#x02306;",
3076
+ # alias ISOTECH Conint
3077
+ "DoubleContourIntegral" => "&#x0222F;",
3078
+ # alias ISODIA die
3079
+ "DoubleDot" => "&#x000A8;",
3080
+ # alias ISOAMSA dArr
3081
+ "DoubleDownArrow" => "&#x021D3;",
3082
+ # alias ISOTECH lArr
3083
+ "DoubleLeftArrow" => "&#x021D0;",
3084
+ # alias ISOAMSA hArr
3085
+ "DoubleLeftRightArrow" => "&#x021D4;",
3086
+ # alias for &Dashv;
3087
+ "DoubleLeftTee" => "&#x02AE4;",
3088
+ # alias ISOAMSA xlArr
3089
+ "DoubleLongLeftArrow" => "&#x027F8;",
3090
+ # alias ISOAMSA xhArr
3091
+ "DoubleLongLeftRightArrow" => "&#x027FA;",
3092
+ # alias ISOAMSA xrArr
3093
+ "DoubleLongRightArrow" => "&#x027F9;",
3094
+ # alias ISOTECH rArr
3095
+ "DoubleRightArrow" => "&#x021D2;",
3096
+ # alias ISOAMSR vDash
3097
+ "DoubleRightTee" => "&#x022A8;",
3098
+ # alias ISOAMSA uArr
3099
+ "DoubleUpArrow" => "&#x021D1;",
3100
+ # alias ISOAMSA vArr
3101
+ "DoubleUpDownArrow" => "&#x021D5;",
3102
+ # alias ISOTECH par
3103
+ "DoubleVerticalBar" => "&#x02225;",
3104
+ # alias ISONUM darr
3105
+ "DownArrow" => "&#x02193;",
3106
+ # alias ISOAMSA dArr
3107
+ "Downarrow" => "&#x021D3;",
3108
+ # alias ISONUM darr
3109
+ "downarrow" => "&#x02193;",
3110
+ # alias ISOAMSA duarr
3111
+ "DownArrowUpArrow" => "&#x021F5;",
3112
+ # alias ISOAMSA ddarr
3113
+ "downdownarrows" => "&#x021CA;",
3114
+ # alias ISOAMSA dharl
3115
+ "downharpoonleft" => "&#x021C3;",
3116
+ # alias ISOAMSA dharr
3117
+ "downharpoonright" => "&#x021C2;",
3118
+ # alias ISOAMSA lhard
3119
+ "DownLeftVector" => "&#x021BD;",
3120
+ # alias ISOAMSA rhard
3121
+ "DownRightVector" => "&#x021C1;",
3122
+ # alias ISOTECH top
3123
+ "DownTee" => "&#x022A4;",
3124
+ # alias for mapstodown
3125
+ "DownTeeArrow" => "&#x021A7;",
3126
+ # alias ISOAMSA RBarr
3127
+ "drbkarow" => "&#x02910;",
3128
+ # alias ISOTECH isinv
3129
+ "Element" => "&#x02208;",
3130
+ # alias ISOAMSO empty
3131
+ "emptyset" => "&#x02205;",
3132
+ # alias ISOAMSR ecir
3133
+ "eqcirc" => "&#x02256;",
3134
+ # alias ISOAMSR ecolon
3135
+ "eqcolon" => "&#x02255;",
3136
+ # alias ISOAMSR esim
3137
+ "eqsim" => "&#x02242;",
3138
+ # alias ISOAMSR egs
3139
+ "eqslantgtr" => "&#x02A96;",
3140
+ # alias ISOAMSR els
3141
+ "eqslantless" => "&#x02A95;",
3142
+ # alias ISOAMSR esim
3143
+ "EqualTilde" => "&#x02242;",
3144
+ # alias ISOAMSA rlhar
3145
+ "Equilibrium" => "&#x021CC;",
3146
+ # alias ISOTECH exist
3147
+ "Exists" => "&#x02203;",
3148
+ # expectation (operator)
3149
+ "expectation" => "&#x02130;",
3150
+ # e use for the exponential base of the natural logarithms
3151
+ "ExponentialE" => "&#x02147;",
3152
+ # base of the Napierian logarithms
3153
+ "exponentiale" => "&#x02147;",
3154
+ # alias ISOAMSR efDot
3155
+ "fallingdotseq" => "&#x02252;",
3156
+ # alias ISOTECH forall
3157
+ "ForAll" => "&#x02200;",
3158
+ # Fourier transform
3159
+ "Fouriertrf" => "&#x02131;",
3160
+ # alias ISOTECH ge
3161
+ "geq" => "&#x02265;",
3162
+ # alias ISOAMSR gE
3163
+ "geqq" => "&#x02267;",
3164
+ # alias ISOAMSR ges
3165
+ "geqslant" => "&#x02A7E;",
3166
+ # alias ISOAMSR Gt
3167
+ "gg" => "&#x0226B;",
3168
+ # alias ISOAMSR Gg
3169
+ "ggg" => "&#x022D9;",
3170
+ # alias ISOAMSN gnap
3171
+ "gnapprox" => "&#x02A8A;",
3172
+ # alias ISOAMSN gne
3173
+ "gneq" => "&#x02A88;",
3174
+ # alias ISOAMSN gnE
3175
+ "gneqq" => "&#x02269;",
3176
+ # alias ISOTECH ge
3177
+ "GreaterEqual" => "&#x02265;",
3178
+ # alias ISOAMSR gel
3179
+ "GreaterEqualLess" => "&#x022DB;",
3180
+ # alias ISOAMSR gE
3181
+ "GreaterFullEqual" => "&#x02267;",
3182
+ # alias ISOAMSR gl
3183
+ "GreaterLess" => "&#x02277;",
3184
+ # alias ISOAMSR ges
3185
+ "GreaterSlantEqual" => "&#x02A7E;",
3186
+ # alias ISOAMSR gsim
3187
+ "GreaterTilde" => "&#x02273;",
3188
+ # alias ISOAMSR gap
3189
+ "gtrapprox" => "&#x02A86;",
3190
+ # alias ISOAMSR gtdot
3191
+ "gtrdot" => "&#x022D7;",
3192
+ # alias ISOAMSR gel
3193
+ "gtreqless" => "&#x022DB;",
3194
+ # alias ISOAMSR gEl
3195
+ "gtreqqless" => "&#x02A8C;",
3196
+ # alias ISOAMSR gl
3197
+ "gtrless" => "&#x02277;",
3198
+ # alias ISOAMSR gsim
3199
+ "gtrsim" => "&#x02273;",
3200
+ # alias ISOAMSN gvnE
3201
+ "gvertneqq" => "&#x02269;&#x0FE00;",
3202
+ # alias ISODIA caron
3203
+ "Hacek" => "&#x002C7;",
3204
+ # alias ISOAMSO plank
3205
+ "hbar" => "&#x0210F;",
3206
+ # ISOPUB hearts
3207
+ "heartsuit" => "&#x02665;",
3208
+ # Hilbert space
3209
+ "HilbertSpace" => "&#x0210B;",
3210
+ # alias ISOAMSA searhk
3211
+ "hksearow" => "&#x02925;",
3212
+ # alias ISOAMSA swarhk
3213
+ "hkswarow" => "&#x02926;",
3214
+ # alias ISOAMSA larrhk
3215
+ "hookleftarrow" => "&#x021A9;",
3216
+ # alias ISOAMSA rarrhk
3217
+ "hookrightarrow" => "&#x021AA;",
3218
+ # alias ISOAMSO plankv
3219
+ "hslash" => "&#x0210F;",
3220
+ # alias ISOAMSR bump
3221
+ "HumpDownHump" => "&#x0224E;",
3222
+ # alias ISOAMSR bumpe
3223
+ "HumpEqual" => "&#x0224F;",
3224
+ # alias ISOTECH qint
3225
+ "iiiint" => "&#x02A0C;",
3226
+ # alias ISOTECH tint
3227
+ "iiint" => "&#x0222D;",
3228
+ # alias ISOAMSO image
3229
+ "Im" => "&#x02111;",
3230
+ # i for use as a square root of -1
3231
+ "ImaginaryI" => "&#x02148;",
3232
+ # the geometric imaginary line
3233
+ "imagline" => "&#x02110;",
3234
+ # alias ISOAMSO image
3235
+ "imagpart" => "&#x02111;",
3236
+ # alias ISOTECH rArr
3237
+ "Implies" => "&#x021D2;",
3238
+ # ISOTECH isin
3239
+ "in" => "&#x02208;",
3240
+ # the ring of integers
3241
+ "integers" => "&#x02124;",
3242
+ # alias ISOTECH int
3243
+ "Integral" => "&#x0222B;",
3244
+ # alias ISOAMSB intcal
3245
+ "intercal" => "&#x022BA;",
3246
+ # alias ISOAMSB xcap
3247
+ "Intersection" => "&#x022C2;",
3248
+ # alias ISOAMSB iprod
3249
+ "intprod" => "&#x02A3C;",
3250
+ # used as a separator, e.g., in indices
3251
+ "InvisibleComma" => "&#x02063;",
3252
+ # marks multiplication when it is understood without a mark
3253
+ "InvisibleTimes" => "&#x02062;",
3254
+ # alias ISOTECH lang
3255
+ "langle" => "&#x02329;",
3256
+ # Laplace transform
3257
+ "Laplacetrf" => "&#x02112;",
3258
+ # alias ISONUM lcub
3259
+ "lbrace" => "&#x0007B;",
3260
+ # alias ISONUM lsqb
3261
+ "lbrack" => "&#x0005B;",
3262
+ # alias ISOTECH lang
3263
+ "LeftAngleBracket" => "&#x02329;",
3264
+ # alias ISONUM larr
3265
+ "LeftArrow" => "&#x02190;",
3266
+ # alias ISOTECH lArr
3267
+ "Leftarrow" => "&#x021D0;",
3268
+ # alias ISONUM larr
3269
+ "leftarrow" => "&#x02190;",
3270
+ # alias for larrb
3271
+ "LeftArrowBar" => "&#x021E4;",
3272
+ # alias ISOAMSA lrarr
3273
+ "LeftArrowRightArrow" => "&#x021C6;",
3274
+ # alias ISOAMSA larrtl
3275
+ "leftarrowtail" => "&#x021A2;",
3276
+ # alias ISOAMSC lceil
3277
+ "LeftCeiling" => "&#x02308;",
3278
+ # left double bracket delimiter
3279
+ "LeftDoubleBracket" => "&#x0301A;",
3280
+ # alias ISOAMSA dharl
3281
+ "LeftDownVector" => "&#x021C3;",
3282
+ # alias ISOAMSC lfloor
3283
+ "LeftFloor" => "&#x0230A;",
3284
+ # alias ISOAMSA lhard
3285
+ "leftharpoondown" => "&#x021BD;",
3286
+ # alias ISOAMSA lharu
3287
+ "leftharpoonup" => "&#x021BC;",
3288
+ # alias ISOAMSA llarr
3289
+ "leftleftarrows" => "&#x021C7;",
3290
+ # alias ISOAMSA harr
3291
+ "LeftRightArrow" => "&#x02194;",
3292
+ # alias ISOAMSA hArr
3293
+ "Leftrightarrow" => "&#x021D4;",
3294
+ # alias ISOAMSA harr
3295
+ "leftrightarrow" => "&#x02194;",
3296
+ # alias ISOAMSA lrarr
3297
+ "leftrightarrows" => "&#x021C6;",
3298
+ # alias ISOAMSA lrhar
3299
+ "leftrightharpoons" => "&#x021CB;",
3300
+ # alias ISOAMSA harrw
3301
+ "leftrightsquigarrow" => "&#x021AD;",
3302
+ # alias ISOAMSR dashv
3303
+ "LeftTee" => "&#x022A3;",
3304
+ # alias for mapstoleft
3305
+ "LeftTeeArrow" => "&#x021A4;",
3306
+ # alias ISOAMSB lthree
3307
+ "leftthreetimes" => "&#x022CB;",
3308
+ # alias ISOAMSR vltri
3309
+ "LeftTriangle" => "&#x022B2;",
3310
+ # alias ISOAMSR ltrie
3311
+ "LeftTriangleEqual" => "&#x022B4;",
3312
+ # alias ISOAMSA uharl
3313
+ "LeftUpVector" => "&#x021BF;",
3314
+ # alias ISOAMSA lharu
3315
+ "LeftVector" => "&#x021BC;",
3316
+ # alias ISOTECH le
3317
+ "leq" => "&#x02264;",
3318
+ # alias ISOAMSR lE
3319
+ "leqq" => "&#x02266;",
3320
+ # alias ISOAMSR les
3321
+ "leqslant" => "&#x02A7D;",
3322
+ # alias ISOAMSR lap
3323
+ "lessapprox" => "&#x02A85;",
3324
+ # alias ISOAMSR ltdot
3325
+ "lessdot" => "&#x022D6;",
3326
+ # alias ISOAMSR leg
3327
+ "lesseqgtr" => "&#x022DA;",
3328
+ # alias ISOAMSR lEg
3329
+ "lesseqqgtr" => "&#x02A8B;",
3330
+ # alias ISOAMSR leg
3331
+ "LessEqualGreater" => "&#x022DA;",
3332
+ # alias ISOAMSR lE
3333
+ "LessFullEqual" => "&#x02266;",
3334
+ # alias ISOAMSR lg
3335
+ "LessGreater" => "&#x02276;",
3336
+ # alias ISOAMSR lg
3337
+ "lessgtr" => "&#x02276;",
3338
+ # alias ISOAMSR lsim
3339
+ "lesssim" => "&#x02272;",
3340
+ # alias ISOAMSR les
3341
+ "LessSlantEqual" => "&#x02A7D;",
3342
+ # alias ISOAMSR lsim
3343
+ "LessTilde" => "&#x02272;",
3344
+ # alias ISOAMSR Lt
3345
+ "ll" => "&#x0226A;",
3346
+ # alias ISOAMSC dlcorn
3347
+ "llcorner" => "&#x0231E;",
3348
+ # alias ISOAMSA lAarr
3349
+ "Lleftarrow" => "&#x021DA;",
3350
+ # alias ISOAMSC lmoust
3351
+ "lmoustache" => "&#x023B0;",
3352
+ # alias ISOAMSN lnap
3353
+ "lnapprox" => "&#x02A89;",
3354
+ # alias ISOAMSN lne
3355
+ "lneq" => "&#x02A87;",
3356
+ # alias ISOAMSN lnE
3357
+ "lneqq" => "&#x02268;",
3358
+ # alias ISOAMSA xlarr
3359
+ "LongLeftArrow" => "&#x027F5;",
3360
+ # alias ISOAMSA xlArr
3361
+ "Longleftarrow" => "&#x027F8;",
3362
+ # alias ISOAMSA xlarr
3363
+ "longleftarrow" => "&#x027F5;",
3364
+ # alias ISOAMSA xharr
3365
+ "LongLeftRightArrow" => "&#x027F7;",
3366
+ # alias ISOAMSA xhArr
3367
+ "Longleftrightarrow" => "&#x027FA;",
3368
+ # alias ISOAMSA xharr
3369
+ "longleftrightarrow" => "&#x027F7;",
3370
+ # alias ISOAMSA xmap
3371
+ "longmapsto" => "&#x027FC;",
3372
+ # alias ISOAMSA xrarr
3373
+ "LongRightArrow" => "&#x027F6;",
3374
+ # alias ISOAMSA xrArr
3375
+ "Longrightarrow" => "&#x027F9;",
3376
+ # alias ISOAMSA xrarr
3377
+ "longrightarrow" => "&#x027F6;",
3378
+ # alias ISOAMSA larrlp
3379
+ "looparrowleft" => "&#x021AB;",
3380
+ # alias ISOAMSA rarrlp
3381
+ "looparrowright" => "&#x021AC;",
3382
+ # alias ISOAMSA swarr
3383
+ "LowerLeftArrow" => "&#x02199;",
3384
+ # alias ISOAMSA searr
3385
+ "LowerRightArrow" => "&#x02198;",
3386
+ # alias ISOPUB loz
3387
+ "lozenge" => "&#x025CA;",
3388
+ # alias ISOAMSC drcorn
3389
+ "lrcorner" => "&#x0231F;",
3390
+ # alias ISOAMSA lsh
3391
+ "Lsh" => "&#x021B0;",
3392
+ # alias ISOAMSN lvnE
3393
+ "lvertneqq" => "&#x02268;&#x0FE00;",
3394
+ # alias ISOPUB malt
3395
+ "maltese" => "&#x02720;",
3396
+ # alias ISOAMSA map
3397
+ "mapsto" => "&#x021A6;",
3398
+ # alias ISOAMSO angmsd
3399
+ "measuredangle" => "&#x02221;",
3400
+ # Mellin transform
3401
+ "Mellintrf" => "&#x02133;",
3402
+ # alias ISOTECH mnplus
3403
+ "MinusPlus" => "&#x02213;",
3404
+ # alias ISOTECH mnplus
3405
+ "mp" => "&#x02213;",
3406
+ # alias ISOAMSA mumap
3407
+ "multimap" => "&#x022B8;",
3408
+ # alias ISOAMSN nap
3409
+ "napprox" => "&#x02249;",
3410
+ # alias ISOPUB natur
3411
+ "natural" => "&#x0266E;",
3412
+ # the semi-ring of natural numbers
3413
+ "naturals" => "&#x02115;",
3414
+ # alias ISOAMSA nearr
3415
+ "nearrow" => "&#x02197;",
3416
+ # space of width -4/18 em
3417
+ "NegativeMediumSpace" => "&#x0200B;",
3418
+ # space of width -5/18 em
3419
+ "NegativeThickSpace" => "&#x0200B;",
3420
+ # space of width -3/18 em
3421
+ "NegativeThinSpace" => "&#x0200B;",
3422
+ # space of width -1/18 em
3423
+ "NegativeVeryThinSpace" => "&#x0200B;",
3424
+ # alias ISOAMSR Gt
3425
+ "NestedGreaterGreater" => "&#x0226B;",
3426
+ # alias ISOAMSR Lt
3427
+ "NestedLessLess" => "&#x0226A;",
3428
+ # alias ISOAMSO nexist
3429
+ "nexists" => "&#x02204;",
3430
+ # alias ISOAMSN nge
3431
+ "ngeq" => "&#x02271;",
3432
+ # alias ISOAMSN ngE
3433
+ "ngeqq" => "&#x02267;&#x00338;",
3434
+ # alias ISOAMSN nges
3435
+ "ngeqslant" => "&#x02A7E;&#x00338;",
3436
+ # alias ISOAMSN ngt
3437
+ "ngtr" => "&#x0226F;",
3438
+ # alias ISOAMSA nlArr
3439
+ "nLeftarrow" => "&#x021CD;",
3440
+ # alias ISOAMSA nlarr
3441
+ "nleftarrow" => "&#x0219A;",
3442
+ # alias ISOAMSA nhArr
3443
+ "nLeftrightarrow" => "&#x021CE;",
3444
+ # alias ISOAMSA nharr
3445
+ "nleftrightarrow" => "&#x021AE;",
3446
+ # alias ISOAMSN nle
3447
+ "nleq" => "&#x02270;",
3448
+ # alias ISOAMSN nlE
3449
+ "nleqq" => "&#x02266;&#x00338;",
3450
+ # alias ISOAMSN nles
3451
+ "nleqslant" => "&#x02A7D;&#x00338;",
3452
+ # alias ISOAMSN nlt
3453
+ "nless" => "&#x0226E;",
3454
+ # alias ISONUM nbsp
3455
+ "NonBreakingSpace" => "&#x000A0;",
3456
+ # alias ISOAMSN nequiv
3457
+ "NotCongruent" => "&#x02262;",
3458
+ # alias ISOAMSN npar
3459
+ "NotDoubleVerticalBar" => "&#x02226;",
3460
+ # alias ISOTECH notin
3461
+ "NotElement" => "&#x02209;",
3462
+ # alias ISOTECH ne
3463
+ "NotEqual" => "&#x02260;",
3464
+ # alias for &nesim;
3465
+ "NotEqualTilde" => "&#x02242;&#x00338;",
3466
+ # alias ISOAMSO nexist
3467
+ "NotExists" => "&#x02204;",
3468
+ # alias ISOAMSN ngt
3469
+ "NotGreater" => "&#x0226F;",
3470
+ # alias ISOAMSN nge
3471
+ "NotGreaterEqual" => "&#x02271;",
3472
+ # alias ISOAMSN nlE
3473
+ "NotGreaterFullEqual" => "&#x02266;&#x00338;",
3474
+ # alias ISOAMSN nGtv
3475
+ "NotGreaterGreater" => "&#x0226B;&#x00338;",
3476
+ # alias ISOAMSN ntvgl
3477
+ "NotGreaterLess" => "&#x02279;",
3478
+ # alias ISOAMSN nges
3479
+ "NotGreaterSlantEqual" => "&#x02A7E;&#x00338;",
3480
+ # alias ISOAMSN ngsim
3481
+ "NotGreaterTilde" => "&#x02275;",
3482
+ # alias for &nbump;
3483
+ "NotHumpDownHump" => "&#x0224E;&#x00338;",
3484
+ # alias ISOAMSN nltri
3485
+ "NotLeftTriangle" => "&#x022EA;",
3486
+ # alias ISOAMSN nltrie
3487
+ "NotLeftTriangleEqual" => "&#x022EC;",
3488
+ # alias ISOAMSN nlt
3489
+ "NotLess" => "&#x0226E;",
3490
+ # alias ISOAMSN nle
3491
+ "NotLessEqual" => "&#x02270;",
3492
+ # alias ISOAMSN ntvlg
3493
+ "NotLessGreater" => "&#x02278;",
3494
+ # alias ISOAMSN nLtv
3495
+ "NotLessLess" => "&#x0226A;&#x00338;",
3496
+ # alias ISOAMSN nles
3497
+ "NotLessSlantEqual" => "&#x02A7D;&#x00338;",
3498
+ # alias ISOAMSN nlsim
3499
+ "NotLessTilde" => "&#x02274;",
3500
+ # alias ISOAMSN npr
3501
+ "NotPrecedes" => "&#x02280;",
3502
+ # alias ISOAMSN npre
3503
+ "NotPrecedesEqual" => "&#x02AAF;&#x00338;",
3504
+ # alias ISOAMSN nprcue
3505
+ "NotPrecedesSlantEqual" => "&#x022E0;",
3506
+ # alias ISOTECH notniva
3507
+ "NotReverseElement" => "&#x0220C;",
3508
+ # alias ISOAMSN nrtri
3509
+ "NotRightTriangle" => "&#x022EB;",
3510
+ # alias ISOAMSN nrtrie
3511
+ "NotRightTriangleEqual" => "&#x022ED;",
3512
+ # alias ISOAMSN nsqsube
3513
+ "NotSquareSubsetEqual" => "&#x022E2;",
3514
+ # alias ISOAMSN nsqsupe
3515
+ "NotSquareSupersetEqual" => "&#x022E3;",
3516
+ # alias ISOAMSN vnsub
3517
+ "NotSubset" => "&#x02282;&#x020D2;",
3518
+ # alias ISOAMSN nsube
3519
+ "NotSubsetEqual" => "&#x02288;",
3520
+ # alias ISOAMSN nsc
3521
+ "NotSucceeds" => "&#x02281;",
3522
+ # alias ISOAMSN nsce
3523
+ "NotSucceedsEqual" => "&#x02AB0;&#x00338;",
3524
+ # alias ISOAMSN nsccue
3525
+ "NotSucceedsSlantEqual" => "&#x022E1;",
3526
+ # alias ISOAMSN vnsup
3527
+ "NotSuperset" => "&#x02283;&#x020D2;",
3528
+ # alias ISOAMSN nsupe
3529
+ "NotSupersetEqual" => "&#x02289;",
3530
+ # alias ISOAMSN nsim
3531
+ "NotTilde" => "&#x02241;",
3532
+ # alias ISOAMSN nsime
3533
+ "NotTildeEqual" => "&#x02244;",
3534
+ # alias ISOAMSN ncong
3535
+ "NotTildeFullEqual" => "&#x02247;",
3536
+ # alias ISOAMSN nap
3537
+ "NotTildeTilde" => "&#x02249;",
3538
+ # alias ISOAMSN nmid
3539
+ "NotVerticalBar" => "&#x02224;",
3540
+ # alias ISOAMSN npar
3541
+ "nparallel" => "&#x02226;",
3542
+ # alias ISOAMSN npr
3543
+ "nprec" => "&#x02280;",
3544
+ # alias ISOAMSN npre
3545
+ "npreceq" => "&#x02AAF;&#x00338;",
3546
+ # alias ISOAMSA nrArr
3547
+ "nRightarrow" => "&#x021CF;",
3548
+ # alias ISOAMSA nrarr
3549
+ "nrightarrow" => "&#x0219B;",
3550
+ # alias ISOAMSN nsmid
3551
+ "nshortmid" => "&#x02224;",
3552
+ # alias ISOAMSN nspar
3553
+ "nshortparallel" => "&#x02226;",
3554
+ # alias ISOAMSN nsime
3555
+ "nsimeq" => "&#x02244;",
3556
+ # alias ISOAMSN vnsub
3557
+ "nsubset" => "&#x02282;&#x020D2;",
3558
+ # alias ISOAMSN nsube
3559
+ "nsubseteq" => "&#x02288;",
3560
+ # alias ISOAMSN nsubE
3561
+ "nsubseteqq" => "&#x02AC5;&#x00338;",
3562
+ # alias ISOAMSN nsc
3563
+ "nsucc" => "&#x02281;",
3564
+ # alias ISOAMSN nsce
3565
+ "nsucceq" => "&#x02AB0;&#x00338;",
3566
+ # alias ISOAMSN vnsup
3567
+ "nsupset" => "&#x02283;&#x020D2;",
3568
+ # alias ISOAMSN nsupe
3569
+ "nsupseteq" => "&#x02289;",
3570
+ # alias ISOAMSN nsupE
3571
+ "nsupseteqq" => "&#x02AC6;&#x00338;",
3572
+ # alias ISOAMSN nltri
3573
+ "ntriangleleft" => "&#x022EA;",
3574
+ # alias ISOAMSN nltrie
3575
+ "ntrianglelefteq" => "&#x022EC;",
3576
+ # alias ISOAMSN nrtri
3577
+ "ntriangleright" => "&#x022EB;",
3578
+ # alias ISOAMSN nrtrie
3579
+ "ntrianglerighteq" => "&#x022ED;",
3580
+ # alias ISOAMSA nwarr
3581
+ "nwarrow" => "&#x02196;",
3582
+ # alias ISOTECH conint
3583
+ "oint" => "&#x0222E;",
3584
+ # alias ISONUM ldquo
3585
+ "OpenCurlyDoubleQuote" => "&#x0201C;",
3586
+ # alias ISONUM lsquo
3587
+ "OpenCurlyQuote" => "&#x02018;",
3588
+ # alias ISOTECH order
3589
+ "orderof" => "&#x02134;",
3590
+ # alias ISOTECH par
3591
+ "parallel" => "&#x02225;",
3592
+ # alias ISOTECH part
3593
+ "PartialD" => "&#x02202;",
3594
+ # alias ISOAMSR fork
3595
+ "pitchfork" => "&#x022D4;",
3596
+ # alias ISONUM plusmn
3597
+ "PlusMinus" => "&#x000B1;",
3598
+ # alias ISONUM plusmn
3599
+ "pm" => "&#x000B1;",
3600
+ # the Poincare upper half-plane
3601
+ "Poincareplane" => "&#x0210C;",
3602
+ # alias ISOAMSR pr
3603
+ "prec" => "&#x0227A;",
3604
+ # alias ISOAMSR prap
3605
+ "precapprox" => "&#x02AB7;",
3606
+ # alias ISOAMSR prcue
3607
+ "preccurlyeq" => "&#x0227C;",
3608
+ # alias ISOAMSR pr
3609
+ "Precedes" => "&#x0227A;",
3610
+ # alias ISOAMSR pre
3611
+ "PrecedesEqual" => "&#x02AAF;",
3612
+ # alias ISOAMSR prcue
3613
+ "PrecedesSlantEqual" => "&#x0227C;",
3614
+ # alias ISOAMSR prsim
3615
+ "PrecedesTilde" => "&#x0227E;",
3616
+ # alias ISOAMSR pre
3617
+ "preceq" => "&#x02AAF;",
3618
+ # alias ISOAMSN prnap
3619
+ "precnapprox" => "&#x02AB9;",
3620
+ # alias ISOAMSN prnE
3621
+ "precneqq" => "&#x02AB5;",
3622
+ # alias ISOAMSN prnsim
3623
+ "precnsim" => "&#x022E8;",
3624
+ # alias ISOAMSR prsim
3625
+ "precsim" => "&#x0227E;",
3626
+ # the prime natural numbers
3627
+ "primes" => "&#x02119;",
3628
+ # alias ISOAMSR Colon
3629
+ "Proportion" => "&#x02237;",
3630
+ # alias ISOTECH prop
3631
+ "Proportional" => "&#x0221D;",
3632
+ # alias ISOTECH prop
3633
+ "propto" => "&#x0221D;",
3634
+ # the ring (skew field) of quaternions
3635
+ "quaternions" => "&#x0210D;",
3636
+ # alias ISOAMSR equest
3637
+ "questeq" => "&#x0225F;",
3638
+ # alias ISOTECH rang
3639
+ "rangle" => "&#x0232A;",
3640
+ # the field of rational numbers
3641
+ "rationals" => "&#x0211A;",
3642
+ # alias ISONUM rcub
3643
+ "rbrace" => "&#x0007D;",
3644
+ # alias ISONUM rsqb
3645
+ "rbrack" => "&#x0005D;",
3646
+ # alias ISOAMSO real
3647
+ "Re" => "&#x0211C;",
3648
+ # the geometric real line
3649
+ "realine" => "&#x0211B;",
3650
+ # alias ISOAMSO real
3651
+ "realpart" => "&#x0211C;",
3652
+ # the field of real numbers
3653
+ "reals" => "&#x0211D;",
3654
+ # alias ISOTECH niv
3655
+ "ReverseElement" => "&#x0220B;",
3656
+ # alias ISOAMSA lrhar
3657
+ "ReverseEquilibrium" => "&#x021CB;",
3658
+ # alias ISOAMSA duhar
3659
+ "ReverseUpEquilibrium" => "&#x0296F;",
3660
+ # alias ISOTECH rang
3661
+ "RightAngleBracket" => "&#x0232A;",
3662
+ # alias ISONUM rarr
3663
+ "RightArrow" => "&#x02192;",
3664
+ # alias ISOTECH rArr
3665
+ "Rightarrow" => "&#x021D2;",
3666
+ # alias ISONUM rarr
3667
+ "rightarrow" => "&#x02192;",
3668
+ # alias for rarrb
3669
+ "RightArrowBar" => "&#x021E5;",
3670
+ # alias ISOAMSA rlarr
3671
+ "RightArrowLeftArrow" => "&#x021C4;",
3672
+ # alias ISOAMSA rarrtl
3673
+ "rightarrowtail" => "&#x021A3;",
3674
+ # alias ISOAMSC rceil
3675
+ "RightCeiling" => "&#x02309;",
3676
+ # right double bracket delimiter
3677
+ "RightDoubleBracket" => "&#x0301B;",
3678
+ # alias ISOAMSA dharr
3679
+ "RightDownVector" => "&#x021C2;",
3680
+ # alias ISOAMSC rfloor
3681
+ "RightFloor" => "&#x0230B;",
3682
+ # alias ISOAMSA rhard
3683
+ "rightharpoondown" => "&#x021C1;",
3684
+ # alias ISOAMSA rharu
3685
+ "rightharpoonup" => "&#x021C0;",
3686
+ # alias ISOAMSA rlarr
3687
+ "rightleftarrows" => "&#x021C4;",
3688
+ # alias ISOAMSA rlhar
3689
+ "rightleftharpoons" => "&#x021CC;",
3690
+ # alias ISOAMSA rrarr
3691
+ "rightrightarrows" => "&#x021C9;",
3692
+ # alias ISOAMSA rarrw
3693
+ "rightsquigarrow" => "&#x0219D;",
3694
+ # alias ISOAMSR vdash
3695
+ "RightTee" => "&#x022A2;",
3696
+ # alias ISOAMSA map
3697
+ "RightTeeArrow" => "&#x021A6;",
3698
+ # alias ISOAMSB rthree
3699
+ "rightthreetimes" => "&#x022CC;",
3700
+ # alias ISOAMSR vrtri
3701
+ "RightTriangle" => "&#x022B3;",
3702
+ # alias ISOAMSR rtrie
3703
+ "RightTriangleEqual" => "&#x022B5;",
3704
+ # alias ISOAMSA uharr
3705
+ "RightUpVector" => "&#x021BE;",
3706
+ # alias ISOAMSA rharu
3707
+ "RightVector" => "&#x021C0;",
3708
+ # alias ISOAMSR erDot
3709
+ "risingdotseq" => "&#x02253;",
3710
+ # alias ISOAMSC rmoust
3711
+ "rmoustache" => "&#x023B1;",
3712
+ # alias ISOAMSA rAarr
3713
+ "Rrightarrow" => "&#x021DB;",
3714
+ # alias ISOAMSA rsh
3715
+ "Rsh" => "&#x021B1;",
3716
+ # alias ISOAMSA searr
3717
+ "searrow" => "&#x02198;",
3718
+ # alias ISOAMSB setmn
3719
+ "setminus" => "&#x02216;",
3720
+ # short down arrow
3721
+ "ShortDownArrow" => "&#x02193;",
3722
+ # alias ISOAMSA slarr
3723
+ "ShortLeftArrow" => "&#x02190;",
3724
+ # alias ISOAMSR smid
3725
+ "shortmid" => "&#x02223;",
3726
+ # alias ISOAMSR spar
3727
+ "shortparallel" => "&#x02225;",
3728
+ # alias ISOAMSA srarr
3729
+ "ShortRightArrow" => "&#x02192;",
3730
+ # short up arrow
3731
+ "ShortUpArrow" => "&#x02191;",
3732
+ # alias ISOTECH sime
3733
+ "simeq" => "&#x02243;",
3734
+ # alias ISOTECH compfn
3735
+ "SmallCircle" => "&#x02218;",
3736
+ # alias ISOAMSB ssetmn
3737
+ "smallsetminus" => "&#x02216;",
3738
+ # ISOPUB spades
3739
+ "spadesuit" => "&#x02660;",
3740
+ # alias ISOTECH radic
3741
+ "Sqrt" => "&#x0221A;",
3742
+ # alias ISOAMSR sqsub
3743
+ "sqsubset" => "&#x0228F;",
3744
+ # alias ISOAMSR sqsube
3745
+ "sqsubseteq" => "&#x02291;",
3746
+ # alias ISOAMSR sqsup
3747
+ "sqsupset" => "&#x02290;",
3748
+ # alias ISOAMSR sqsupe
3749
+ "sqsupseteq" => "&#x02292;",
3750
+ # alias for square
3751
+ "Square" => "&#x025A1;",
3752
+ # alias ISOAMSB sqcap
3753
+ "SquareIntersection" => "&#x02293;",
3754
+ # alias ISOAMSR sqsub
3755
+ "SquareSubset" => "&#x0228F;",
3756
+ # alias ISOAMSR sqsube
3757
+ "SquareSubsetEqual" => "&#x02291;",
3758
+ # alias ISOAMSR sqsup
3759
+ "SquareSuperset" => "&#x02290;",
3760
+ # alias ISOAMSR sqsupe
3761
+ "SquareSupersetEqual" => "&#x02292;",
3762
+ # alias ISOAMSB sqcup
3763
+ "SquareUnion" => "&#x02294;",
3764
+ # alias ISOAMSB sstarf
3765
+ "Star" => "&#x022C6;",
3766
+ # alias ISOGRK3 epsi
3767
+ "straightepsilon" => "&#x003F5;",
3768
+ # alias ISOGRK3 phi
3769
+ "straightphi" => "&#x003D5;",
3770
+ # alias ISOAMSR Sub
3771
+ "Subset" => "&#x022D0;",
3772
+ # alias ISOTECH sub
3773
+ "subset" => "&#x02282;",
3774
+ # alias ISOTECH sube
3775
+ "subseteq" => "&#x02286;",
3776
+ # alias ISOAMSR subE
3777
+ "subseteqq" => "&#x02AC5;",
3778
+ # alias ISOTECH sube
3779
+ "SubsetEqual" => "&#x02286;",
3780
+ # alias ISOAMSN subne
3781
+ "subsetneq" => "&#x0228A;",
3782
+ # alias ISOAMSN subnE
3783
+ "subsetneqq" => "&#x02ACB;",
3784
+ # alias ISOAMSR sc
3785
+ "succ" => "&#x0227B;",
3786
+ # alias ISOAMSR scap
3787
+ "succapprox" => "&#x02AB8;",
3788
+ # alias ISOAMSR sccue
3789
+ "succcurlyeq" => "&#x0227D;",
3790
+ # alias ISOAMSR sc
3791
+ "Succeeds" => "&#x0227B;",
3792
+ # alias ISOAMSR sce
3793
+ "SucceedsEqual" => "&#x02AB0;",
3794
+ # alias ISOAMSR sccue
3795
+ "SucceedsSlantEqual" => "&#x0227D;",
3796
+ # alias ISOAMSR scsim
3797
+ "SucceedsTilde" => "&#x0227F;",
3798
+ # alias ISOAMSR sce
3799
+ "succeq" => "&#x02AB0;",
3800
+ # alias ISOAMSN scnap
3801
+ "succnapprox" => "&#x02ABA;",
3802
+ # alias ISOAMSN scnE
3803
+ "succneqq" => "&#x02AB6;",
3804
+ # alias ISOAMSN scnsim
3805
+ "succnsim" => "&#x022E9;",
3806
+ # alias ISOAMSR scsim
3807
+ "succsim" => "&#x0227F;",
3808
+ # ISOTECH ni
3809
+ "SuchThat" => "&#x0220B;",
3810
+ # alias ISOAMSB sum
3811
+ "Sum" => "&#x02211;",
3812
+ # alias ISOTECH sup
3813
+ "Superset" => "&#x02283;",
3814
+ # alias ISOTECH supe
3815
+ "SupersetEqual" => "&#x02287;",
3816
+ # alias ISOAMSR Sup
3817
+ "Supset" => "&#x022D1;",
3818
+ # alias ISOTECH sup
3819
+ "supset" => "&#x02283;",
3820
+ # alias ISOTECH supe
3821
+ "supseteq" => "&#x02287;",
3822
+ # alias ISOAMSR supE
3823
+ "supseteqq" => "&#x02AC6;",
3824
+ # alias ISOAMSN supne
3825
+ "supsetneq" => "&#x0228B;",
3826
+ # alias ISOAMSN supnE
3827
+ "supsetneqq" => "&#x02ACC;",
3828
+ # alias ISOAMSA swarr
3829
+ "swarrow" => "&#x02199;",
3830
+ # alias ISOTECH there4
3831
+ "Therefore" => "&#x02234;",
3832
+ # alias ISOTECH there4
3833
+ "therefore" => "&#x02234;",
3834
+ # ISOAMSR thkap
3835
+ "thickapprox" => "&#x02248;",
3836
+ # ISOAMSR thksim
3837
+ "thicksim" => "&#x0223C;",
3838
+ # space of width 3/18 em alias ISOPUB thinsp
3839
+ "ThinSpace" => "&#x02009;",
3840
+ # alias ISOTECH sim
3841
+ "Tilde" => "&#x0223C;",
3842
+ # alias ISOTECH sime
3843
+ "TildeEqual" => "&#x02243;",
3844
+ # alias ISOTECH cong
3845
+ "TildeFullEqual" => "&#x02245;",
3846
+ # alias ISOTECH ap
3847
+ "TildeTilde" => "&#x02248;",
3848
+ # alias ISOAMSA nesear
3849
+ "toea" => "&#x02928;",
3850
+ # alias ISOAMSA seswar
3851
+ "tosa" => "&#x02929;",
3852
+ # alias ISOPUB utri
3853
+ "triangle" => "&#x025B5;",
3854
+ # alias ISOPUB dtri
3855
+ "triangledown" => "&#x025BF;",
3856
+ # alias ISOPUB ltri
3857
+ "triangleleft" => "&#x025C3;",
3858
+ # alias ISOAMSR ltrie
3859
+ "trianglelefteq" => "&#x022B4;",
3860
+ # alias ISOAMSR trie
3861
+ "triangleq" => "&#x0225C;",
3862
+ # alias ISOPUB rtri
3863
+ "triangleright" => "&#x025B9;",
3864
+ # alias ISOAMSR rtrie
3865
+ "trianglerighteq" => "&#x022B5;",
3866
+ # alias ISOAMSA Larr
3867
+ "twoheadleftarrow" => "&#x0219E;",
3868
+ # alias ISOAMSA Rarr
3869
+ "twoheadrightarrow" => "&#x021A0;",
3870
+ # alias ISOAMSC ulcorn
3871
+ "ulcorner" => "&#x0231C;",
3872
+ # alias ISOAMSB xcup
3873
+ "Union" => "&#x022C3;",
3874
+ # alias ISOAMSB uplus
3875
+ "UnionPlus" => "&#x0228E;",
3876
+ # alias ISONUM uarr
3877
+ "UpArrow" => "&#x02191;",
3878
+ # alias ISOAMSA uArr
3879
+ "Uparrow" => "&#x021D1;",
3880
+ # alias ISONUM uarr
3881
+ "uparrow" => "&#x02191;",
3882
+ # alias ISOAMSA udarr
3883
+ "UpArrowDownArrow" => "&#x021C5;",
3884
+ # alias ISOAMSA varr
3885
+ "UpDownArrow" => "&#x02195;",
3886
+ # alias ISOAMSA vArr
3887
+ "Updownarrow" => "&#x021D5;",
3888
+ # alias ISOAMSA varr
3889
+ "updownarrow" => "&#x02195;",
3890
+ # alias ISOAMSA udhar
3891
+ "UpEquilibrium" => "&#x0296E;",
3892
+ # alias ISOAMSA uharl
3893
+ "upharpoonleft" => "&#x021BF;",
3894
+ # alias ISOAMSA uharr
3895
+ "upharpoonright" => "&#x021BE;",
3896
+ # alias ISOAMSA nwarr
3897
+ "UpperLeftArrow" => "&#x02196;",
3898
+ # alias ISOAMSA nearr
3899
+ "UpperRightArrow" => "&#x02197;",
3900
+ # alias ISOGRK3 upsi
3901
+ "upsilon" => "&#x003C5;",
3902
+ # alias ISOTECH perp
3903
+ "UpTee" => "&#x022A5;",
3904
+ # Alias mapstoup
3905
+ "UpTeeArrow" => "&#x021A5;",
3906
+ # alias ISOAMSA uuarr
3907
+ "upuparrows" => "&#x021C8;",
3908
+ # alias ISOAMSC urcorn
3909
+ "urcorner" => "&#x0231D;",
3910
+ # alias ISOGRK3 epsiv
3911
+ "varepsilon" => "&#x003B5;",
3912
+ # alias ISOGRK3 kappav
3913
+ "varkappa" => "&#x003F0;",
3914
+ # alias ISOAMSO emptyv
3915
+ "varnothing" => "&#x02205;",
3916
+ # alias ISOGRK3 phiv
3917
+ "varphi" => "&#x003C6;",
3918
+ # alias ISOGRK3 piv
3919
+ "varpi" => "&#x003D6;",
3920
+ # alias ISOAMSR vprop
3921
+ "varpropto" => "&#x0221D;",
3922
+ # alias ISOGRK3 rhov
3923
+ "varrho" => "&#x003F1;",
3924
+ # alias ISOGRK3 sigmav
3925
+ "varsigma" => "&#x003C2;",
3926
+ # alias ISOAMSN vsubne
3927
+ "varsubsetneq" => "&#x0228A;&#x0FE00;",
3928
+ # alias ISOAMSN vsubnE
3929
+ "varsubsetneqq" => "&#x02ACB;&#x0FE00;",
3930
+ # alias ISOAMSN vsupne
3931
+ "varsupsetneq" => "&#x0228B;&#x0FE00;",
3932
+ # alias ISOAMSN vsupnE
3933
+ "varsupsetneqq" => "&#x02ACC;&#x0FE00;",
3934
+ # alias ISOGRK3 thetav
3935
+ "vartheta" => "&#x003D1;",
3936
+ # alias ISOAMSR vltri
3937
+ "vartriangleleft" => "&#x022B2;",
3938
+ # alias ISOAMSR vrtri
3939
+ "vartriangleright" => "&#x022B3;",
3940
+ # alias ISOAMSB xvee
3941
+ "Vee" => "&#x022C1;",
3942
+ # alias ISOTECH or
3943
+ "vee" => "&#x02228;",
3944
+ # alias ISOTECH Verbar
3945
+ "Vert" => "&#x02016;",
3946
+ # alias ISONUM verbar
3947
+ "vert" => "&#x0007C;",
3948
+ # alias ISOAMSR mid
3949
+ "VerticalBar" => "&#x02223;",
3950
+ # alias ISOAMSB wreath
3951
+ "VerticalTilde" => "&#x02240;",
3952
+ # space of width 1/18 em alias ISOPUB hairsp
3953
+ "VeryThinSpace" => "&#x0200A;",
3954
+ # alias ISOAMSB xwedge
3955
+ "Wedge" => "&#x022C0;",
3956
+ # alias ISOTECH and
3957
+ "wedge" => "&#x02227;",
3958
+ # alias ISOAMSO weierp
3959
+ "wp" => "&#x02118;",
3960
+ # alias ISOAMSB wreath
3961
+ "wr" => "&#x02240;",
3962
+ # zee transform
3963
+ "zeetrf" => "&#x02128;",
3964
+ # character showing function application in presentation tagging
3965
+ "af" => "&#x02061;",
3966
+ #
3967
+ "aopf" => "&#x1D552;",
3968
+ # Old ISOAMSR asymp (for HTML compatibility)
3969
+ "asympeq" => "&#x0224D;",
3970
+ #
3971
+ "bopf" => "&#x1D553;",
3972
+ #
3973
+ "copf" => "&#x1D554;",
3974
+ # cross or vector product
3975
+ "Cross" => "&#x02A2F;",
3976
+ # D for use in differentials, e.g., within integrals
3977
+ "DD" => "&#x02145;",
3978
+ # d for use in differentials, e.g., within integrals
3979
+ "dd" => "&#x02146;",
3980
+ #
3981
+ "dopf" => "&#x1D555;",
3982
+ # down arrow to bar
3983
+ "DownArrowBar" => "&#x02913;",
3984
+ # left-down-right-down harpoon
3985
+ "DownLeftRightVector" => "&#x02950;",
3986
+ # left-down harpoon from bar
3987
+ "DownLeftTeeVector" => "&#x0295E;",
3988
+ # left-down harpoon to bar
3989
+ "DownLeftVectorBar" => "&#x02956;",
3990
+ # right-down harpoon from bar
3991
+ "DownRightTeeVector" => "&#x0295F;",
3992
+ # right-down harpoon to bar
3993
+ "DownRightVectorBar" => "&#x02957;",
3994
+ # e use for the exponential base of the natural logarithms
3995
+ "ee" => "&#x02147;",
3996
+ # empty small square
3997
+ "EmptySmallSquare" => "&#x025FB;",
3998
+ # empty small square
3999
+ "EmptyVerySmallSquare" => "&#x025AB;",
4000
+ #
4001
+ "eopf" => "&#x1D556;",
4002
+ # two consecutive equal signs
4003
+ "Equal" => "&#x02A75;",
4004
+ # filled small square
4005
+ "FilledSmallSquare" => "&#x025FC;",
4006
+ # filled very small square
4007
+ "FilledVerySmallSquare" => "&#x025AA;",
4008
+ #
4009
+ "fopf" => "&#x1D557;",
4010
+ #
4011
+ "gopf" => "&#x1D558;",
4012
+ # alias for GT
4013
+ "GreaterGreater" => "&#x02AA2;",
4014
+ # circumflex accent
4015
+ "Hat" => "&#x0005E;",
4016
+ #
4017
+ "hopf" => "&#x1D559;",
4018
+ # short horizontal line
4019
+ "HorizontalLine" => "&#x02500;",
4020
+ # short form of &InvisibleComma;
4021
+ "ic" => "&#x02063;",
4022
+ # i for use as a square root of -1
4023
+ "ii" => "&#x02148;",
4024
+ #
4025
+ "iopf" => "&#x1D55A;",
4026
+ # marks multiplication when it is understood without a mark
4027
+ "it" => "&#x02062;",
4028
+ #
4029
+ "jopf" => "&#x1D55B;",
4030
+ #
4031
+ "kopf" => "&#x1D55C;",
4032
+ # leftwards arrow to bar
4033
+ "larrb" => "&#x021E4;",
4034
+ # down-left harpoon from bar
4035
+ "LeftDownTeeVector" => "&#x02961;",
4036
+ # down-left harpoon to bar
4037
+ "LeftDownVectorBar" => "&#x02959;",
4038
+ # left-up-right-up harpoon
4039
+ "LeftRightVector" => "&#x0294E;",
4040
+ # left-up harpoon from bar
4041
+ "LeftTeeVector" => "&#x0295A;",
4042
+ # left triangle, vertical bar
4043
+ "LeftTriangleBar" => "&#x029CF;",
4044
+ # up-left-down-left harpoon
4045
+ "LeftUpDownVector" => "&#x02951;",
4046
+ # up-left harpoon from bar
4047
+ "LeftUpTeeVector" => "&#x02960;",
4048
+ # up-left harpoon to bar
4049
+ "LeftUpVectorBar" => "&#x02958;",
4050
+ # left-up harpoon to bar
4051
+ "LeftVectorBar" => "&#x02952;",
4052
+ # alias for Lt
4053
+ "LessLess" => "&#x02AA1;",
4054
+ #
4055
+ "lopf" => "&#x1D55D;",
4056
+ # downwards arrow from bar
4057
+ "mapstodown" => "&#x021A7;",
4058
+ # leftwards arrow from bar
4059
+ "mapstoleft" => "&#x021A4;",
4060
+ # upwards arrow from bar
4061
+ "mapstoup" => "&#x021A5;",
4062
+ # space of width 4/18 em
4063
+ "MediumSpace" => "&#x0205F;",
4064
+ #
4065
+ "mopf" => "&#x1D55E;",
4066
+ # not bumpy equals
4067
+ "nbump" => "&#x0224E;&#x00338;",
4068
+ # not bumpy single equals
4069
+ "nbumpe" => "&#x0224F;&#x00338;",
4070
+ # not equal or similar
4071
+ "nesim" => "&#x02242;&#x00338;",
4072
+ # force a line break; line feed
4073
+ "NewLine" => "&#x0000A;",
4074
+ # never break line here
4075
+ "NoBreak" => "&#x02060;",
4076
+ #
4077
+ "nopf" => "&#x1D55F;",
4078
+ # alias for &nasymp;
4079
+ "NotCupCap" => "&#x0226D;",
4080
+ # alias for &nbumpe;
4081
+ "NotHumpEqual" => "&#x0224F;&#x00338;",
4082
+ # not left triangle, vertical bar
4083
+ "NotLeftTriangleBar" => "&#x029CF;&#x00338;",
4084
+ # not double greater-than sign
4085
+ "NotNestedGreaterGreater" => "&#x02AA2;&#x00338;",
4086
+ # not double less-than sign
4087
+ "NotNestedLessLess" => "&#x02AA1;&#x00338;",
4088
+ # not vertical bar, right triangle
4089
+ "NotRightTriangleBar" => "&#x029D0;&#x00338;",
4090
+ # square not subset
4091
+ "NotSquareSubset" => "&#x0228F;&#x00338;",
4092
+ # negated set-like partial order operator
4093
+ "NotSquareSuperset" => "&#x02290;&#x00338;",
4094
+ # not succeeds or similar
4095
+ "NotSucceedsTilde" => "&#x0227F;&#x00338;",
4096
+ #
4097
+ "oopf" => "&#x1D560;",
4098
+ # over bar
4099
+ "OverBar" => "&#x000AF;",
4100
+ # over brace
4101
+ "OverBrace" => "&#x0FE37;",
4102
+ # over bracket
4103
+ "OverBracket" => "&#x023B4;",
4104
+ # over parenthesis
4105
+ "OverParenthesis" => "&#x0FE35;",
4106
+ # the ring (skew field) of quaternions
4107
+ "planckh" => "&#x0210E;",
4108
+ #
4109
+ "popf" => "&#x1D561;",
4110
+ # alias for &prod;
4111
+ "Product" => "&#x0220F;",
4112
+ #
4113
+ "qopf" => "&#x1D562;",
4114
+ # leftwards arrow to bar
4115
+ "rarrb" => "&#x021E5;",
4116
+ # down-right harpoon from bar
4117
+ "RightDownTeeVector" => "&#x0295D;",
4118
+ # down-right harpoon to bar
4119
+ "RightDownVectorBar" => "&#x02955;",
4120
+ # right-up harpoon from bar
4121
+ "RightTeeVector" => "&#x0295B;",
4122
+ # vertical bar, right triangle
4123
+ "RightTriangleBar" => "&#x029D0;",
4124
+ # up-right-down-right harpoon
4125
+ "RightUpDownVector" => "&#x0294F;",
4126
+ # up-right harpoon from bar
4127
+ "RightUpTeeVector" => "&#x0295C;",
4128
+ # up-right harpoon to bar
4129
+ "RightUpVectorBar" => "&#x02954;",
4130
+ # up-right harpoon to bar
4131
+ "RightVectorBar" => "&#x02953;",
4132
+ #
4133
+ "ropf" => "&#x1D563;",
4134
+ # round implies
4135
+ "RoundImplies" => "&#x02970;",
4136
+ # rule-delayed (colon right arrow)
4137
+ "RuleDelayed" => "&#x029F4;",
4138
+ #
4139
+ "sopf" => "&#x1D564;",
4140
+ # tabulator stop; horizontal tabulation
4141
+ "Tab" => "&#x00009;",
4142
+ # space of width 5/18 em
4143
+ "ThickSpace" => "&#x02009;&#x0200A;&#x0200A;",
4144
+ #
4145
+ "topf" => "&#x1D565;",
4146
+ # under brace
4147
+ "UnderBrace" => "&#x0FE38;",
4148
+ # under bracket
4149
+ "UnderBracket" => "&#x023B5;",
4150
+ # under parenthesis
4151
+ "UnderParenthesis" => "&#x0FE36;",
4152
+ #
4153
+ "uopf" => "&#x1D566;",
4154
+ # up arrow to bar
4155
+ "UpArrowBar" => "&#x02912;",
4156
+ # ISOGRK1 Ugr, HTML4 Upsilon
4157
+ "Upsilon" => "&#x003A5;",
4158
+ # alias ISONUM verbar
4159
+ "VerticalLine" => "&#x0007C;",
4160
+ # vertical separating operator
4161
+ "VerticalSeparator" => "&#x02758;",
4162
+ #
4163
+ "vopf" => "&#x1D567;",
4164
+ #
4165
+ "wopf" => "&#x1D568;",
4166
+ #
4167
+ "xopf" => "&#x1D569;",
4168
+ #
4169
+ "yopf" => "&#x1D56A;",
4170
+ # zero width space
4171
+ "ZeroWidthSpace" => "&#x0200B;",
4172
+ #
4173
+ "zopf" => "&#x1D56B;",
4174
+ }
4175
+ end
4176
+ end
4177
+ end
4178
+ end