_mathtext_data.py 55 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397
  1. """
  2. font data tables for truetype and afm computer modern fonts
  3. """
  4. latex_to_bakoma = {
  5. '\\__sqrt__' : ('cmex10', 0x70),
  6. '\\bigcap' : ('cmex10', 0x5c),
  7. '\\bigcup' : ('cmex10', 0x5b),
  8. '\\bigodot' : ('cmex10', 0x4b),
  9. '\\bigoplus' : ('cmex10', 0x4d),
  10. '\\bigotimes' : ('cmex10', 0x4f),
  11. '\\biguplus' : ('cmex10', 0x5d),
  12. '\\bigvee' : ('cmex10', 0x5f),
  13. '\\bigwedge' : ('cmex10', 0x5e),
  14. '\\coprod' : ('cmex10', 0x61),
  15. '\\int' : ('cmex10', 0x5a),
  16. '\\langle' : ('cmex10', 0xad),
  17. '\\leftangle' : ('cmex10', 0xad),
  18. '\\leftbrace' : ('cmex10', 0xa9),
  19. '\\oint' : ('cmex10', 0x49),
  20. '\\prod' : ('cmex10', 0x59),
  21. '\\rangle' : ('cmex10', 0xae),
  22. '\\rightangle' : ('cmex10', 0xae),
  23. '\\rightbrace' : ('cmex10', 0xaa),
  24. '\\sum' : ('cmex10', 0x58),
  25. '\\widehat' : ('cmex10', 0x62),
  26. '\\widetilde' : ('cmex10', 0x65),
  27. '\\{' : ('cmex10', 0xa9),
  28. '\\}' : ('cmex10', 0xaa),
  29. '{' : ('cmex10', 0xa9),
  30. '}' : ('cmex10', 0xaa),
  31. ',' : ('cmmi10', 0x3b),
  32. '.' : ('cmmi10', 0x3a),
  33. '/' : ('cmmi10', 0x3d),
  34. '<' : ('cmmi10', 0x3c),
  35. '>' : ('cmmi10', 0x3e),
  36. '\\alpha' : ('cmmi10', 0xae),
  37. '\\beta' : ('cmmi10', 0xaf),
  38. '\\chi' : ('cmmi10', 0xc2),
  39. '\\combiningrightarrowabove' : ('cmmi10', 0x7e),
  40. '\\delta' : ('cmmi10', 0xb1),
  41. '\\ell' : ('cmmi10', 0x60),
  42. '\\epsilon' : ('cmmi10', 0xb2),
  43. '\\eta' : ('cmmi10', 0xb4),
  44. '\\flat' : ('cmmi10', 0x5b),
  45. '\\frown' : ('cmmi10', 0x5f),
  46. '\\gamma' : ('cmmi10', 0xb0),
  47. '\\imath' : ('cmmi10', 0x7b),
  48. '\\iota' : ('cmmi10', 0xb6),
  49. '\\jmath' : ('cmmi10', 0x7c),
  50. '\\kappa' : ('cmmi10', 0x2219),
  51. '\\lambda' : ('cmmi10', 0xb8),
  52. '\\leftharpoondown' : ('cmmi10', 0x29),
  53. '\\leftharpoonup' : ('cmmi10', 0x28),
  54. '\\mu' : ('cmmi10', 0xb9),
  55. '\\natural' : ('cmmi10', 0x5c),
  56. '\\nu' : ('cmmi10', 0xba),
  57. '\\omega' : ('cmmi10', 0x21),
  58. '\\phi' : ('cmmi10', 0xc1),
  59. '\\pi' : ('cmmi10', 0xbc),
  60. '\\psi' : ('cmmi10', 0xc3),
  61. '\\rho' : ('cmmi10', 0xbd),
  62. '\\rightharpoondown' : ('cmmi10', 0x2b),
  63. '\\rightharpoonup' : ('cmmi10', 0x2a),
  64. '\\sharp' : ('cmmi10', 0x5d),
  65. '\\sigma' : ('cmmi10', 0xbe),
  66. '\\smile' : ('cmmi10', 0x5e),
  67. '\\tau' : ('cmmi10', 0xbf),
  68. '\\theta' : ('cmmi10', 0xb5),
  69. '\\triangleleft' : ('cmmi10', 0x2f),
  70. '\\triangleright' : ('cmmi10', 0x2e),
  71. '\\upsilon' : ('cmmi10', 0xc0),
  72. '\\varepsilon' : ('cmmi10', 0x22),
  73. '\\varphi' : ('cmmi10', 0x27),
  74. '\\varrho' : ('cmmi10', 0x25),
  75. '\\varsigma' : ('cmmi10', 0x26),
  76. '\\vartheta' : ('cmmi10', 0x23),
  77. '\\wp' : ('cmmi10', 0x7d),
  78. '\\xi' : ('cmmi10', 0xbb),
  79. '\\zeta' : ('cmmi10', 0xb3),
  80. '!' : ('cmr10', 0x21),
  81. '%' : ('cmr10', 0x25),
  82. '&' : ('cmr10', 0x26),
  83. '(' : ('cmr10', 0x28),
  84. ')' : ('cmr10', 0x29),
  85. '+' : ('cmr10', 0x2b),
  86. '0' : ('cmr10', 0x30),
  87. '1' : ('cmr10', 0x31),
  88. '2' : ('cmr10', 0x32),
  89. '3' : ('cmr10', 0x33),
  90. '4' : ('cmr10', 0x34),
  91. '5' : ('cmr10', 0x35),
  92. '6' : ('cmr10', 0x36),
  93. '7' : ('cmr10', 0x37),
  94. '8' : ('cmr10', 0x38),
  95. '9' : ('cmr10', 0x39),
  96. ':' : ('cmr10', 0x3a),
  97. ';' : ('cmr10', 0x3b),
  98. '=' : ('cmr10', 0x3d),
  99. '?' : ('cmr10', 0x3f),
  100. '@' : ('cmr10', 0x40),
  101. '[' : ('cmr10', 0x5b),
  102. '\\#' : ('cmr10', 0x23),
  103. '\\$' : ('cmr10', 0x24),
  104. '\\%' : ('cmr10', 0x25),
  105. '\\Delta' : ('cmr10', 0xa2),
  106. '\\Gamma' : ('cmr10', 0xa1),
  107. '\\Lambda' : ('cmr10', 0xa4),
  108. '\\Omega' : ('cmr10', 0xad),
  109. '\\Phi' : ('cmr10', 0xa9),
  110. '\\Pi' : ('cmr10', 0xa6),
  111. '\\Psi' : ('cmr10', 0xaa),
  112. '\\Sigma' : ('cmr10', 0xa7),
  113. '\\Theta' : ('cmr10', 0xa3),
  114. '\\Upsilon' : ('cmr10', 0xa8),
  115. '\\Xi' : ('cmr10', 0xa5),
  116. '\\circumflexaccent' : ('cmr10', 0x5e),
  117. '\\combiningacuteaccent' : ('cmr10', 0xb6),
  118. '\\combiningbreve' : ('cmr10', 0xb8),
  119. '\\combiningdiaeresis' : ('cmr10', 0xc4),
  120. '\\combiningdotabove' : ('cmr10', 0x5f),
  121. '\\combininggraveaccent' : ('cmr10', 0xb5),
  122. '\\combiningoverline' : ('cmr10', 0xb9),
  123. '\\combiningtilde' : ('cmr10', 0x7e),
  124. '\\leftbracket' : ('cmr10', 0x5b),
  125. '\\leftparen' : ('cmr10', 0x28),
  126. '\\rightbracket' : ('cmr10', 0x5d),
  127. '\\rightparen' : ('cmr10', 0x29),
  128. '\\widebar' : ('cmr10', 0xb9),
  129. ']' : ('cmr10', 0x5d),
  130. '*' : ('cmsy10', 0xa4),
  131. '-' : ('cmsy10', 0xa1),
  132. '\\Downarrow' : ('cmsy10', 0x2b),
  133. '\\Im' : ('cmsy10', 0x3d),
  134. '\\Leftarrow' : ('cmsy10', 0x28),
  135. '\\Leftrightarrow' : ('cmsy10', 0x2c),
  136. '\\P' : ('cmsy10', 0x7b),
  137. '\\Re' : ('cmsy10', 0x3c),
  138. '\\Rightarrow' : ('cmsy10', 0x29),
  139. '\\S' : ('cmsy10', 0x78),
  140. '\\Uparrow' : ('cmsy10', 0x2a),
  141. '\\Updownarrow' : ('cmsy10', 0x6d),
  142. '\\Vert' : ('cmsy10', 0x6b),
  143. '\\aleph' : ('cmsy10', 0x40),
  144. '\\approx' : ('cmsy10', 0xbc),
  145. '\\ast' : ('cmsy10', 0xa4),
  146. '\\asymp' : ('cmsy10', 0xb3),
  147. '\\backslash' : ('cmsy10', 0x6e),
  148. '\\bigcirc' : ('cmsy10', 0xb0),
  149. '\\bigtriangledown' : ('cmsy10', 0x35),
  150. '\\bigtriangleup' : ('cmsy10', 0x34),
  151. '\\bot' : ('cmsy10', 0x3f),
  152. '\\bullet' : ('cmsy10', 0xb2),
  153. '\\cap' : ('cmsy10', 0x5c),
  154. '\\cdot' : ('cmsy10', 0xa2),
  155. '\\circ' : ('cmsy10', 0xb1),
  156. '\\clubsuit' : ('cmsy10', 0x7c),
  157. '\\cup' : ('cmsy10', 0x5b),
  158. '\\dag' : ('cmsy10', 0x79),
  159. '\\dashv' : ('cmsy10', 0x61),
  160. '\\ddag' : ('cmsy10', 0x7a),
  161. '\\diamond' : ('cmsy10', 0xa6),
  162. '\\diamondsuit' : ('cmsy10', 0x7d),
  163. '\\div' : ('cmsy10', 0xa5),
  164. '\\downarrow' : ('cmsy10', 0x23),
  165. '\\emptyset' : ('cmsy10', 0x3b),
  166. '\\equiv' : ('cmsy10', 0xb4),
  167. '\\exists' : ('cmsy10', 0x39),
  168. '\\forall' : ('cmsy10', 0x38),
  169. '\\geq' : ('cmsy10', 0xb8),
  170. '\\gg' : ('cmsy10', 0xc0),
  171. '\\heartsuit' : ('cmsy10', 0x7e),
  172. '\\in' : ('cmsy10', 0x32),
  173. '\\infty' : ('cmsy10', 0x31),
  174. '\\lbrace' : ('cmsy10', 0x66),
  175. '\\lceil' : ('cmsy10', 0x64),
  176. '\\leftarrow' : ('cmsy10', 0xc3),
  177. '\\leftrightarrow' : ('cmsy10', 0x24),
  178. '\\leq' : ('cmsy10', 0x2219),
  179. '\\lfloor' : ('cmsy10', 0x62),
  180. '\\ll' : ('cmsy10', 0xbf),
  181. '\\mid' : ('cmsy10', 0x6a),
  182. '\\mp' : ('cmsy10', 0xa8),
  183. '\\nabla' : ('cmsy10', 0x72),
  184. '\\nearrow' : ('cmsy10', 0x25),
  185. '\\neg' : ('cmsy10', 0x3a),
  186. '\\ni' : ('cmsy10', 0x33),
  187. '\\nwarrow' : ('cmsy10', 0x2d),
  188. '\\odot' : ('cmsy10', 0xaf),
  189. '\\ominus' : ('cmsy10', 0xaa),
  190. '\\oplus' : ('cmsy10', 0xa9),
  191. '\\oslash' : ('cmsy10', 0xae),
  192. '\\otimes' : ('cmsy10', 0xad),
  193. '\\pm' : ('cmsy10', 0xa7),
  194. '\\prec' : ('cmsy10', 0xc1),
  195. '\\preceq' : ('cmsy10', 0xb9),
  196. '\\prime' : ('cmsy10', 0x30),
  197. '\\propto' : ('cmsy10', 0x2f),
  198. '\\rbrace' : ('cmsy10', 0x67),
  199. '\\rceil' : ('cmsy10', 0x65),
  200. '\\rfloor' : ('cmsy10', 0x63),
  201. '\\rightarrow' : ('cmsy10', 0x21),
  202. '\\searrow' : ('cmsy10', 0x26),
  203. '\\sim' : ('cmsy10', 0xbb),
  204. '\\simeq' : ('cmsy10', 0x27),
  205. '\\slash' : ('cmsy10', 0x36),
  206. '\\spadesuit' : ('cmsy10', 0xc4),
  207. '\\sqcap' : ('cmsy10', 0x75),
  208. '\\sqcup' : ('cmsy10', 0x74),
  209. '\\sqsubseteq' : ('cmsy10', 0x76),
  210. '\\sqsupseteq' : ('cmsy10', 0x77),
  211. '\\subset' : ('cmsy10', 0xbd),
  212. '\\subseteq' : ('cmsy10', 0xb5),
  213. '\\succ' : ('cmsy10', 0xc2),
  214. '\\succeq' : ('cmsy10', 0xba),
  215. '\\supset' : ('cmsy10', 0xbe),
  216. '\\supseteq' : ('cmsy10', 0xb6),
  217. '\\swarrow' : ('cmsy10', 0x2e),
  218. '\\times' : ('cmsy10', 0xa3),
  219. '\\to' : ('cmsy10', 0x21),
  220. '\\top' : ('cmsy10', 0x3e),
  221. '\\uparrow' : ('cmsy10', 0x22),
  222. '\\updownarrow' : ('cmsy10', 0x6c),
  223. '\\uplus' : ('cmsy10', 0x5d),
  224. '\\vdash' : ('cmsy10', 0x60),
  225. '\\vee' : ('cmsy10', 0x5f),
  226. '\\vert' : ('cmsy10', 0x6a),
  227. '\\wedge' : ('cmsy10', 0x5e),
  228. '\\wr' : ('cmsy10', 0x6f),
  229. '\\|' : ('cmsy10', 0x6b),
  230. '|' : ('cmsy10', 0x6a),
  231. '\\_' : ('cmtt10', 0x5f)
  232. }
  233. latex_to_cmex = {
  234. r'\__sqrt__' : 112,
  235. r'\bigcap' : 92,
  236. r'\bigcup' : 91,
  237. r'\bigodot' : 75,
  238. r'\bigoplus' : 77,
  239. r'\bigotimes' : 79,
  240. r'\biguplus' : 93,
  241. r'\bigvee' : 95,
  242. r'\bigwedge' : 94,
  243. r'\coprod' : 97,
  244. r'\int' : 90,
  245. r'\leftangle' : 173,
  246. r'\leftbrace' : 169,
  247. r'\oint' : 73,
  248. r'\prod' : 89,
  249. r'\rightangle' : 174,
  250. r'\rightbrace' : 170,
  251. r'\sum' : 88,
  252. r'\widehat' : 98,
  253. r'\widetilde' : 101,
  254. }
  255. latex_to_standard = {
  256. r'\cong' : ('psyr', 64),
  257. r'\Delta' : ('psyr', 68),
  258. r'\Phi' : ('psyr', 70),
  259. r'\Gamma' : ('psyr', 89),
  260. r'\alpha' : ('psyr', 97),
  261. r'\beta' : ('psyr', 98),
  262. r'\chi' : ('psyr', 99),
  263. r'\delta' : ('psyr', 100),
  264. r'\varepsilon' : ('psyr', 101),
  265. r'\phi' : ('psyr', 102),
  266. r'\gamma' : ('psyr', 103),
  267. r'\eta' : ('psyr', 104),
  268. r'\iota' : ('psyr', 105),
  269. r'\varpsi' : ('psyr', 106),
  270. r'\kappa' : ('psyr', 108),
  271. r'\nu' : ('psyr', 110),
  272. r'\pi' : ('psyr', 112),
  273. r'\theta' : ('psyr', 113),
  274. r'\rho' : ('psyr', 114),
  275. r'\sigma' : ('psyr', 115),
  276. r'\tau' : ('psyr', 116),
  277. r'\upsilon' : ('psyr', 117),
  278. r'\varpi' : ('psyr', 118),
  279. r'\omega' : ('psyr', 119),
  280. r'\xi' : ('psyr', 120),
  281. r'\psi' : ('psyr', 121),
  282. r'\zeta' : ('psyr', 122),
  283. r'\sim' : ('psyr', 126),
  284. r'\leq' : ('psyr', 163),
  285. r'\infty' : ('psyr', 165),
  286. r'\clubsuit' : ('psyr', 167),
  287. r'\diamondsuit' : ('psyr', 168),
  288. r'\heartsuit' : ('psyr', 169),
  289. r'\spadesuit' : ('psyr', 170),
  290. r'\leftrightarrow' : ('psyr', 171),
  291. r'\leftarrow' : ('psyr', 172),
  292. r'\uparrow' : ('psyr', 173),
  293. r'\rightarrow' : ('psyr', 174),
  294. r'\downarrow' : ('psyr', 175),
  295. r'\pm' : ('psyr', 176),
  296. r'\geq' : ('psyr', 179),
  297. r'\times' : ('psyr', 180),
  298. r'\propto' : ('psyr', 181),
  299. r'\partial' : ('psyr', 182),
  300. r'\bullet' : ('psyr', 183),
  301. r'\div' : ('psyr', 184),
  302. r'\neq' : ('psyr', 185),
  303. r'\equiv' : ('psyr', 186),
  304. r'\approx' : ('psyr', 187),
  305. r'\ldots' : ('psyr', 188),
  306. r'\aleph' : ('psyr', 192),
  307. r'\Im' : ('psyr', 193),
  308. r'\Re' : ('psyr', 194),
  309. r'\wp' : ('psyr', 195),
  310. r'\otimes' : ('psyr', 196),
  311. r'\oplus' : ('psyr', 197),
  312. r'\oslash' : ('psyr', 198),
  313. r'\cap' : ('psyr', 199),
  314. r'\cup' : ('psyr', 200),
  315. r'\supset' : ('psyr', 201),
  316. r'\supseteq' : ('psyr', 202),
  317. r'\subset' : ('psyr', 204),
  318. r'\subseteq' : ('psyr', 205),
  319. r'\in' : ('psyr', 206),
  320. r'\notin' : ('psyr', 207),
  321. r'\angle' : ('psyr', 208),
  322. r'\nabla' : ('psyr', 209),
  323. r'\textregistered' : ('psyr', 210),
  324. r'\copyright' : ('psyr', 211),
  325. r'\texttrademark' : ('psyr', 212),
  326. r'\Pi' : ('psyr', 213),
  327. r'\prod' : ('psyr', 213),
  328. r'\surd' : ('psyr', 214),
  329. r'\__sqrt__' : ('psyr', 214),
  330. r'\cdot' : ('psyr', 215),
  331. r'\urcorner' : ('psyr', 216),
  332. r'\vee' : ('psyr', 217),
  333. r'\wedge' : ('psyr', 218),
  334. r'\Leftrightarrow' : ('psyr', 219),
  335. r'\Leftarrow' : ('psyr', 220),
  336. r'\Uparrow' : ('psyr', 221),
  337. r'\Rightarrow' : ('psyr', 222),
  338. r'\Downarrow' : ('psyr', 223),
  339. r'\Diamond' : ('psyr', 224),
  340. r'\Sigma' : ('psyr', 229),
  341. r'\sum' : ('psyr', 229),
  342. r'\forall' : ('psyr', 34),
  343. r'\exists' : ('psyr', 36),
  344. r'\lceil' : ('psyr', 233),
  345. r'\lbrace' : ('psyr', 123),
  346. r'\Psi' : ('psyr', 89),
  347. r'\bot' : ('psyr', 0o136),
  348. r'\Omega' : ('psyr', 0o127),
  349. r'\leftbracket' : ('psyr', 0o133),
  350. r'\rightbracket' : ('psyr', 0o135),
  351. r'\leftbrace' : ('psyr', 123),
  352. r'\leftparen' : ('psyr', 0o50),
  353. r'\prime' : ('psyr', 0o242),
  354. r'\sharp' : ('psyr', 0o43),
  355. r'\slash' : ('psyr', 0o57),
  356. r'\Lamda' : ('psyr', 0o114),
  357. r'\neg' : ('psyr', 0o330),
  358. r'\Upsilon' : ('psyr', 0o241),
  359. r'\rightbrace' : ('psyr', 0o175),
  360. r'\rfloor' : ('psyr', 0o373),
  361. r'\lambda' : ('psyr', 0o154),
  362. r'\to' : ('psyr', 0o256),
  363. r'\Xi' : ('psyr', 0o130),
  364. r'\emptyset' : ('psyr', 0o306),
  365. r'\lfloor' : ('psyr', 0o353),
  366. r'\rightparen' : ('psyr', 0o51),
  367. r'\rceil' : ('psyr', 0o371),
  368. r'\ni' : ('psyr', 0o47),
  369. r'\epsilon' : ('psyr', 0o145),
  370. r'\Theta' : ('psyr', 0o121),
  371. r'\langle' : ('psyr', 0o341),
  372. r'\leftangle' : ('psyr', 0o341),
  373. r'\rangle' : ('psyr', 0o361),
  374. r'\rightangle' : ('psyr', 0o361),
  375. r'\rbrace' : ('psyr', 0o175),
  376. r'\circ' : ('psyr', 0o260),
  377. r'\diamond' : ('psyr', 0o340),
  378. r'\mu' : ('psyr', 0o155),
  379. r'\mid' : ('psyr', 0o352),
  380. r'\imath' : ('pncri8a', 105),
  381. r'\%' : ('pncr8a', 37),
  382. r'\$' : ('pncr8a', 36),
  383. r'\{' : ('pncr8a', 123),
  384. r'\}' : ('pncr8a', 125),
  385. r'\backslash' : ('pncr8a', 92),
  386. r'\ast' : ('pncr8a', 42),
  387. r'\#' : ('pncr8a', 35),
  388. r'\circumflexaccent' : ('pncri8a', 124), # for \hat
  389. r'\combiningbreve' : ('pncri8a', 81), # for \breve
  390. r'\combininggraveaccent' : ('pncri8a', 114), # for \grave
  391. r'\combiningacuteaccent' : ('pncri8a', 63), # for \accute
  392. r'\combiningdiaeresis' : ('pncri8a', 91), # for \ddot
  393. r'\combiningtilde' : ('pncri8a', 75), # for \tilde
  394. r'\combiningrightarrowabove' : ('pncri8a', 110), # for \vec
  395. r'\combiningdotabove' : ('pncri8a', 26), # for \dot
  396. }
  397. # Automatically generated.
  398. type12uni = {
  399. 'aring' : 229,
  400. 'quotedblright' : 8221,
  401. 'V' : 86,
  402. 'dollar' : 36,
  403. 'four' : 52,
  404. 'Yacute' : 221,
  405. 'P' : 80,
  406. 'underscore' : 95,
  407. 'p' : 112,
  408. 'Otilde' : 213,
  409. 'perthousand' : 8240,
  410. 'zero' : 48,
  411. 'dotlessi' : 305,
  412. 'Scaron' : 352,
  413. 'zcaron' : 382,
  414. 'egrave' : 232,
  415. 'section' : 167,
  416. 'Icircumflex' : 206,
  417. 'ntilde' : 241,
  418. 'ampersand' : 38,
  419. 'dotaccent' : 729,
  420. 'degree' : 176,
  421. 'K' : 75,
  422. 'acircumflex' : 226,
  423. 'Aring' : 197,
  424. 'k' : 107,
  425. 'smalltilde' : 732,
  426. 'Agrave' : 192,
  427. 'divide' : 247,
  428. 'ocircumflex' : 244,
  429. 'asciitilde' : 126,
  430. 'two' : 50,
  431. 'E' : 69,
  432. 'scaron' : 353,
  433. 'F' : 70,
  434. 'bracketleft' : 91,
  435. 'asciicircum' : 94,
  436. 'f' : 102,
  437. 'ordmasculine' : 186,
  438. 'mu' : 181,
  439. 'paragraph' : 182,
  440. 'nine' : 57,
  441. 'v' : 118,
  442. 'guilsinglleft' : 8249,
  443. 'backslash' : 92,
  444. 'six' : 54,
  445. 'A' : 65,
  446. 'icircumflex' : 238,
  447. 'a' : 97,
  448. 'ogonek' : 731,
  449. 'q' : 113,
  450. 'oacute' : 243,
  451. 'ograve' : 242,
  452. 'edieresis' : 235,
  453. 'comma' : 44,
  454. 'otilde' : 245,
  455. 'guillemotright' : 187,
  456. 'ecircumflex' : 234,
  457. 'greater' : 62,
  458. 'uacute' : 250,
  459. 'L' : 76,
  460. 'bullet' : 8226,
  461. 'cedilla' : 184,
  462. 'ydieresis' : 255,
  463. 'l' : 108,
  464. 'logicalnot' : 172,
  465. 'exclamdown' : 161,
  466. 'endash' : 8211,
  467. 'agrave' : 224,
  468. 'Adieresis' : 196,
  469. 'germandbls' : 223,
  470. 'Odieresis' : 214,
  471. 'space' : 32,
  472. 'quoteright' : 8217,
  473. 'ucircumflex' : 251,
  474. 'G' : 71,
  475. 'quoteleft' : 8216,
  476. 'W' : 87,
  477. 'Q' : 81,
  478. 'g' : 103,
  479. 'w' : 119,
  480. 'question' : 63,
  481. 'one' : 49,
  482. 'ring' : 730,
  483. 'figuredash' : 8210,
  484. 'B' : 66,
  485. 'iacute' : 237,
  486. 'Ydieresis' : 376,
  487. 'R' : 82,
  488. 'b' : 98,
  489. 'r' : 114,
  490. 'Ccedilla' : 199,
  491. 'minus' : 8722,
  492. 'Lslash' : 321,
  493. 'Uacute' : 218,
  494. 'yacute' : 253,
  495. 'Ucircumflex' : 219,
  496. 'quotedbl' : 34,
  497. 'onehalf' : 189,
  498. 'Thorn' : 222,
  499. 'M' : 77,
  500. 'eight' : 56,
  501. 'multiply' : 215,
  502. 'grave' : 96,
  503. 'Ocircumflex' : 212,
  504. 'm' : 109,
  505. 'Ugrave' : 217,
  506. 'guilsinglright' : 8250,
  507. 'Ntilde' : 209,
  508. 'questiondown' : 191,
  509. 'Atilde' : 195,
  510. 'ccedilla' : 231,
  511. 'Z' : 90,
  512. 'copyright' : 169,
  513. 'yen' : 165,
  514. 'Eacute' : 201,
  515. 'H' : 72,
  516. 'X' : 88,
  517. 'Idieresis' : 207,
  518. 'bar' : 124,
  519. 'h' : 104,
  520. 'x' : 120,
  521. 'udieresis' : 252,
  522. 'ordfeminine' : 170,
  523. 'braceleft' : 123,
  524. 'macron' : 175,
  525. 'atilde' : 227,
  526. 'Acircumflex' : 194,
  527. 'Oslash' : 216,
  528. 'C' : 67,
  529. 'quotedblleft' : 8220,
  530. 'S' : 83,
  531. 'exclam' : 33,
  532. 'Zcaron' : 381,
  533. 'equal' : 61,
  534. 's' : 115,
  535. 'eth' : 240,
  536. 'Egrave' : 200,
  537. 'hyphen' : 45,
  538. 'period' : 46,
  539. 'igrave' : 236,
  540. 'colon' : 58,
  541. 'Ecircumflex' : 202,
  542. 'trademark' : 8482,
  543. 'Aacute' : 193,
  544. 'cent' : 162,
  545. 'lslash' : 322,
  546. 'c' : 99,
  547. 'N' : 78,
  548. 'breve' : 728,
  549. 'Oacute' : 211,
  550. 'guillemotleft' : 171,
  551. 'n' : 110,
  552. 'idieresis' : 239,
  553. 'braceright' : 125,
  554. 'seven' : 55,
  555. 'brokenbar' : 166,
  556. 'ugrave' : 249,
  557. 'periodcentered' : 183,
  558. 'sterling' : 163,
  559. 'I' : 73,
  560. 'Y' : 89,
  561. 'Eth' : 208,
  562. 'emdash' : 8212,
  563. 'i' : 105,
  564. 'daggerdbl' : 8225,
  565. 'y' : 121,
  566. 'plusminus' : 177,
  567. 'less' : 60,
  568. 'Udieresis' : 220,
  569. 'D' : 68,
  570. 'five' : 53,
  571. 'T' : 84,
  572. 'oslash' : 248,
  573. 'acute' : 180,
  574. 'd' : 100,
  575. 'OE' : 338,
  576. 'Igrave' : 204,
  577. 't' : 116,
  578. 'parenright' : 41,
  579. 'adieresis' : 228,
  580. 'quotesingle' : 39,
  581. 'twodotenleader' : 8229,
  582. 'slash' : 47,
  583. 'ellipsis' : 8230,
  584. 'numbersign' : 35,
  585. 'odieresis' : 246,
  586. 'O' : 79,
  587. 'oe' : 339,
  588. 'o' : 111,
  589. 'Edieresis' : 203,
  590. 'plus' : 43,
  591. 'dagger' : 8224,
  592. 'three' : 51,
  593. 'hungarumlaut' : 733,
  594. 'parenleft' : 40,
  595. 'fraction' : 8260,
  596. 'registered' : 174,
  597. 'J' : 74,
  598. 'dieresis' : 168,
  599. 'Ograve' : 210,
  600. 'j' : 106,
  601. 'z' : 122,
  602. 'ae' : 230,
  603. 'semicolon' : 59,
  604. 'at' : 64,
  605. 'Iacute' : 205,
  606. 'percent' : 37,
  607. 'bracketright' : 93,
  608. 'AE' : 198,
  609. 'asterisk' : 42,
  610. 'aacute' : 225,
  611. 'U' : 85,
  612. 'eacute' : 233,
  613. 'e' : 101,
  614. 'thorn' : 254,
  615. 'u' : 117,
  616. }
  617. uni2type1 = {v: k for k, v in type12uni.items()}
  618. tex2uni = {
  619. 'widehat' : 0x0302,
  620. 'widetilde' : 0x0303,
  621. 'widebar' : 0x0305,
  622. 'langle' : 0x27e8,
  623. 'rangle' : 0x27e9,
  624. 'perp' : 0x27c2,
  625. 'neq' : 0x2260,
  626. 'Join' : 0x2a1d,
  627. 'leqslant' : 0x2a7d,
  628. 'geqslant' : 0x2a7e,
  629. 'lessapprox' : 0x2a85,
  630. 'gtrapprox' : 0x2a86,
  631. 'lesseqqgtr' : 0x2a8b,
  632. 'gtreqqless' : 0x2a8c,
  633. 'triangleeq' : 0x225c,
  634. 'eqslantless' : 0x2a95,
  635. 'eqslantgtr' : 0x2a96,
  636. 'backepsilon' : 0x03f6,
  637. 'precapprox' : 0x2ab7,
  638. 'succapprox' : 0x2ab8,
  639. 'fallingdotseq' : 0x2252,
  640. 'subseteqq' : 0x2ac5,
  641. 'supseteqq' : 0x2ac6,
  642. 'varpropto' : 0x221d,
  643. 'precnapprox' : 0x2ab9,
  644. 'succnapprox' : 0x2aba,
  645. 'subsetneqq' : 0x2acb,
  646. 'supsetneqq' : 0x2acc,
  647. 'lnapprox' : 0x2ab9,
  648. 'gnapprox' : 0x2aba,
  649. 'longleftarrow' : 0x27f5,
  650. 'longrightarrow' : 0x27f6,
  651. 'longleftrightarrow' : 0x27f7,
  652. 'Longleftarrow' : 0x27f8,
  653. 'Longrightarrow' : 0x27f9,
  654. 'Longleftrightarrow' : 0x27fa,
  655. 'longmapsto' : 0x27fc,
  656. 'leadsto' : 0x21dd,
  657. 'dashleftarrow' : 0x290e,
  658. 'dashrightarrow' : 0x290f,
  659. 'circlearrowleft' : 0x21ba,
  660. 'circlearrowright' : 0x21bb,
  661. 'leftrightsquigarrow' : 0x21ad,
  662. 'leftsquigarrow' : 0x219c,
  663. 'rightsquigarrow' : 0x219d,
  664. 'Game' : 0x2141,
  665. 'hbar' : 0x0127,
  666. 'hslash' : 0x210f,
  667. 'ldots' : 0x2026,
  668. 'vdots' : 0x22ee,
  669. 'doteqdot' : 0x2251,
  670. 'doteq' : 8784,
  671. 'partial' : 8706,
  672. 'gg' : 8811,
  673. 'asymp' : 8781,
  674. 'blacktriangledown' : 9662,
  675. 'otimes' : 8855,
  676. 'nearrow' : 8599,
  677. 'varpi' : 982,
  678. 'vee' : 8744,
  679. 'vec' : 8407,
  680. 'smile' : 8995,
  681. 'succnsim' : 8937,
  682. 'gimel' : 8503,
  683. 'vert' : 124,
  684. '|' : 124,
  685. 'varrho' : 1009,
  686. 'P' : 182,
  687. 'approxident' : 8779,
  688. 'Swarrow' : 8665,
  689. 'textasciicircum' : 94,
  690. 'imageof' : 8887,
  691. 'ntriangleleft' : 8938,
  692. 'nleq' : 8816,
  693. 'div' : 247,
  694. 'nparallel' : 8742,
  695. 'Leftarrow' : 8656,
  696. 'lll' : 8920,
  697. 'oiint' : 8751,
  698. 'ngeq' : 8817,
  699. 'Theta' : 920,
  700. 'origof' : 8886,
  701. 'blacksquare' : 9632,
  702. 'solbar' : 9023,
  703. 'neg' : 172,
  704. 'sum' : 8721,
  705. 'Vdash' : 8873,
  706. 'coloneq' : 8788,
  707. 'degree' : 176,
  708. 'bowtie' : 8904,
  709. 'blacktriangleright' : 9654,
  710. 'varsigma' : 962,
  711. 'leq' : 8804,
  712. 'ggg' : 8921,
  713. 'lneqq' : 8808,
  714. 'scurel' : 8881,
  715. 'stareq' : 8795,
  716. 'BbbN' : 8469,
  717. 'nLeftarrow' : 8653,
  718. 'nLeftrightarrow' : 8654,
  719. 'k' : 808,
  720. 'bot' : 8869,
  721. 'BbbC' : 8450,
  722. 'Lsh' : 8624,
  723. 'leftleftarrows' : 8647,
  724. 'BbbZ' : 8484,
  725. 'digamma' : 989,
  726. 'BbbR' : 8477,
  727. 'BbbP' : 8473,
  728. 'BbbQ' : 8474,
  729. 'vartriangleright' : 8883,
  730. 'succsim' : 8831,
  731. 'wedge' : 8743,
  732. 'lessgtr' : 8822,
  733. 'veebar' : 8891,
  734. 'mapsdown' : 8615,
  735. 'Rsh' : 8625,
  736. 'chi' : 967,
  737. 'prec' : 8826,
  738. 'nsubseteq' : 8840,
  739. 'therefore' : 8756,
  740. 'eqcirc' : 8790,
  741. 'textexclamdown' : 161,
  742. 'nRightarrow' : 8655,
  743. 'flat' : 9837,
  744. 'notin' : 8713,
  745. 'llcorner' : 8990,
  746. 'varepsilon' : 949,
  747. 'bigtriangleup' : 9651,
  748. 'aleph' : 8501,
  749. 'dotminus' : 8760,
  750. 'upsilon' : 965,
  751. 'Lambda' : 923,
  752. 'cap' : 8745,
  753. 'barleftarrow' : 8676,
  754. 'mu' : 956,
  755. 'boxplus' : 8862,
  756. 'mp' : 8723,
  757. 'circledast' : 8859,
  758. 'tau' : 964,
  759. 'in' : 8712,
  760. 'backslash' : 92,
  761. 'varnothing' : 8709,
  762. 'sharp' : 9839,
  763. 'eqsim' : 8770,
  764. 'gnsim' : 8935,
  765. 'Searrow' : 8664,
  766. 'updownarrows' : 8645,
  767. 'heartsuit' : 9825,
  768. 'trianglelefteq' : 8884,
  769. 'ddag' : 8225,
  770. 'sqsubseteq' : 8849,
  771. 'mapsfrom' : 8612,
  772. 'boxbar' : 9707,
  773. 'sim' : 8764,
  774. 'Nwarrow' : 8662,
  775. 'nequiv' : 8802,
  776. 'succ' : 8827,
  777. 'vdash' : 8866,
  778. 'Leftrightarrow' : 8660,
  779. 'parallel' : 8741,
  780. 'invnot' : 8976,
  781. 'natural' : 9838,
  782. 'ss' : 223,
  783. 'uparrow' : 8593,
  784. 'nsim' : 8769,
  785. 'hookrightarrow' : 8618,
  786. 'Equiv' : 8803,
  787. 'approx' : 8776,
  788. 'Vvdash' : 8874,
  789. 'nsucc' : 8833,
  790. 'leftrightharpoons' : 8651,
  791. 'Re' : 8476,
  792. 'boxminus' : 8863,
  793. 'equiv' : 8801,
  794. 'Lleftarrow' : 8666,
  795. 'll' : 8810,
  796. 'Cup' : 8915,
  797. 'measeq' : 8798,
  798. 'upharpoonleft' : 8639,
  799. 'lq' : 8216,
  800. 'Upsilon' : 933,
  801. 'subsetneq' : 8842,
  802. 'greater' : 62,
  803. 'supsetneq' : 8843,
  804. 'Cap' : 8914,
  805. 'L' : 321,
  806. 'spadesuit' : 9824,
  807. 'lrcorner' : 8991,
  808. 'not' : 824,
  809. 'bar' : 772,
  810. 'rightharpoonaccent' : 8401,
  811. 'boxdot' : 8865,
  812. 'l' : 322,
  813. 'leftharpoondown' : 8637,
  814. 'bigcup' : 8899,
  815. 'iint' : 8748,
  816. 'bigwedge' : 8896,
  817. 'downharpoonleft' : 8643,
  818. 'textasciitilde' : 126,
  819. 'subset' : 8834,
  820. 'leqq' : 8806,
  821. 'mapsup' : 8613,
  822. 'nvDash' : 8877,
  823. 'looparrowleft' : 8619,
  824. 'nless' : 8814,
  825. 'rightarrowbar' : 8677,
  826. 'Vert' : 8214,
  827. 'downdownarrows' : 8650,
  828. 'uplus' : 8846,
  829. 'simeq' : 8771,
  830. 'napprox' : 8777,
  831. 'ast' : 8727,
  832. 'twoheaduparrow' : 8607,
  833. 'doublebarwedge' : 8966,
  834. 'Sigma' : 931,
  835. 'leftharpoonaccent' : 8400,
  836. 'ntrianglelefteq' : 8940,
  837. 'nexists' : 8708,
  838. 'times' : 215,
  839. 'measuredangle' : 8737,
  840. 'bumpeq' : 8783,
  841. 'carriagereturn' : 8629,
  842. 'adots' : 8944,
  843. 'checkmark' : 10003,
  844. 'lambda' : 955,
  845. 'xi' : 958,
  846. 'rbrace' : 125,
  847. 'rbrack' : 93,
  848. 'Nearrow' : 8663,
  849. 'maltese' : 10016,
  850. 'clubsuit' : 9827,
  851. 'top' : 8868,
  852. 'overarc' : 785,
  853. 'varphi' : 966,
  854. 'Delta' : 916,
  855. 'iota' : 953,
  856. 'nleftarrow' : 8602,
  857. 'candra' : 784,
  858. 'supset' : 8835,
  859. 'triangleleft' : 9665,
  860. 'gtreqless' : 8923,
  861. 'ntrianglerighteq' : 8941,
  862. 'quad' : 8195,
  863. 'Xi' : 926,
  864. 'gtrdot' : 8919,
  865. 'leftthreetimes' : 8907,
  866. 'minus' : 8722,
  867. 'preccurlyeq' : 8828,
  868. 'nleftrightarrow' : 8622,
  869. 'lambdabar' : 411,
  870. 'blacktriangle' : 9652,
  871. 'kernelcontraction' : 8763,
  872. 'Phi' : 934,
  873. 'angle' : 8736,
  874. 'spadesuitopen' : 9828,
  875. 'eqless' : 8924,
  876. 'mid' : 8739,
  877. 'varkappa' : 1008,
  878. 'Ldsh' : 8626,
  879. 'updownarrow' : 8597,
  880. 'beta' : 946,
  881. 'textquotedblleft' : 8220,
  882. 'rho' : 961,
  883. 'alpha' : 945,
  884. 'intercal' : 8890,
  885. 'beth' : 8502,
  886. 'grave' : 768,
  887. 'acwopencirclearrow' : 8634,
  888. 'nmid' : 8740,
  889. 'nsupset' : 8837,
  890. 'sigma' : 963,
  891. 'dot' : 775,
  892. 'Rightarrow' : 8658,
  893. 'turnednot' : 8985,
  894. 'backsimeq' : 8909,
  895. 'leftarrowtail' : 8610,
  896. 'approxeq' : 8778,
  897. 'curlyeqsucc' : 8927,
  898. 'rightarrowtail' : 8611,
  899. 'Psi' : 936,
  900. 'copyright' : 169,
  901. 'yen' : 165,
  902. 'vartriangleleft' : 8882,
  903. 'rasp' : 700,
  904. 'triangleright' : 9655,
  905. 'precsim' : 8830,
  906. 'infty' : 8734,
  907. 'geq' : 8805,
  908. 'updownarrowbar' : 8616,
  909. 'precnsim' : 8936,
  910. 'H' : 779,
  911. 'ulcorner' : 8988,
  912. 'looparrowright' : 8620,
  913. 'ncong' : 8775,
  914. 'downarrow' : 8595,
  915. 'circeq' : 8791,
  916. 'subseteq' : 8838,
  917. 'bigstar' : 9733,
  918. 'prime' : 8242,
  919. 'lceil' : 8968,
  920. 'Rrightarrow' : 8667,
  921. 'oiiint' : 8752,
  922. 'curlywedge' : 8911,
  923. 'vDash' : 8872,
  924. 'lfloor' : 8970,
  925. 'ddots' : 8945,
  926. 'exists' : 8707,
  927. 'underbar' : 817,
  928. 'Pi' : 928,
  929. 'leftrightarrows' : 8646,
  930. 'sphericalangle' : 8738,
  931. 'coprod' : 8720,
  932. 'circledcirc' : 8858,
  933. 'gtrsim' : 8819,
  934. 'gneqq' : 8809,
  935. 'between' : 8812,
  936. 'theta' : 952,
  937. 'complement' : 8705,
  938. 'arceq' : 8792,
  939. 'nVdash' : 8878,
  940. 'S' : 167,
  941. 'wr' : 8768,
  942. 'wp' : 8472,
  943. 'backcong' : 8780,
  944. 'lasp' : 701,
  945. 'c' : 807,
  946. 'nabla' : 8711,
  947. 'dotplus' : 8724,
  948. 'eta' : 951,
  949. 'forall' : 8704,
  950. 'eth' : 240,
  951. 'colon' : 58,
  952. 'sqcup' : 8852,
  953. 'rightrightarrows' : 8649,
  954. 'sqsupset' : 8848,
  955. 'mapsto' : 8614,
  956. 'bigtriangledown' : 9661,
  957. 'sqsupseteq' : 8850,
  958. 'propto' : 8733,
  959. 'pi' : 960,
  960. 'pm' : 177,
  961. 'dots' : 0x2026,
  962. 'nrightarrow' : 8603,
  963. 'textasciiacute' : 180,
  964. 'Doteq' : 8785,
  965. 'breve' : 774,
  966. 'sqcap' : 8851,
  967. 'twoheadrightarrow' : 8608,
  968. 'kappa' : 954,
  969. 'vartriangle' : 9653,
  970. 'diamondsuit' : 9826,
  971. 'pitchfork' : 8916,
  972. 'blacktriangleleft' : 9664,
  973. 'nprec' : 8832,
  974. 'curvearrowright' : 8631,
  975. 'barwedge' : 8892,
  976. 'multimap' : 8888,
  977. 'textquestiondown' : 191,
  978. 'cong' : 8773,
  979. 'rtimes' : 8906,
  980. 'rightzigzagarrow' : 8669,
  981. 'rightarrow' : 8594,
  982. 'leftarrow' : 8592,
  983. '__sqrt__' : 8730,
  984. 'twoheaddownarrow' : 8609,
  985. 'oint' : 8750,
  986. 'bigvee' : 8897,
  987. 'eqdef' : 8797,
  988. 'sterling' : 163,
  989. 'phi' : 981,
  990. 'Updownarrow' : 8661,
  991. 'backprime' : 8245,
  992. 'emdash' : 8212,
  993. 'Gamma' : 915,
  994. 'i' : 305,
  995. 'rceil' : 8969,
  996. 'leftharpoonup' : 8636,
  997. 'Im' : 8465,
  998. 'curvearrowleft' : 8630,
  999. 'wedgeq' : 8793,
  1000. 'curlyeqprec' : 8926,
  1001. 'questeq' : 8799,
  1002. 'less' : 60,
  1003. 'upuparrows' : 8648,
  1004. 'tilde' : 771,
  1005. 'textasciigrave' : 96,
  1006. 'smallsetminus' : 8726,
  1007. 'ell' : 8467,
  1008. 'cup' : 8746,
  1009. 'danger' : 9761,
  1010. 'nVDash' : 8879,
  1011. 'cdotp' : 183,
  1012. 'cdots' : 8943,
  1013. 'hat' : 770,
  1014. 'eqgtr' : 8925,
  1015. 'psi' : 968,
  1016. 'frown' : 8994,
  1017. 'acute' : 769,
  1018. 'downzigzagarrow' : 8623,
  1019. 'ntriangleright' : 8939,
  1020. 'cupdot' : 8845,
  1021. 'circleddash' : 8861,
  1022. 'oslash' : 8856,
  1023. 'mho' : 8487,
  1024. 'd' : 803,
  1025. 'sqsubset' : 8847,
  1026. 'cdot' : 8901,
  1027. 'Omega' : 937,
  1028. 'OE' : 338,
  1029. 'veeeq' : 8794,
  1030. 'Finv' : 8498,
  1031. 't' : 865,
  1032. 'leftrightarrow' : 8596,
  1033. 'swarrow' : 8601,
  1034. 'rightthreetimes' : 8908,
  1035. 'rightleftharpoons' : 8652,
  1036. 'lesssim' : 8818,
  1037. 'searrow' : 8600,
  1038. 'because' : 8757,
  1039. 'gtrless' : 8823,
  1040. 'star' : 8902,
  1041. 'nsubset' : 8836,
  1042. 'zeta' : 950,
  1043. 'dddot' : 8411,
  1044. 'bigcirc' : 9675,
  1045. 'Supset' : 8913,
  1046. 'circ' : 8728,
  1047. 'slash' : 8725,
  1048. 'ocirc' : 778,
  1049. 'prod' : 8719,
  1050. 'twoheadleftarrow' : 8606,
  1051. 'daleth' : 8504,
  1052. 'upharpoonright' : 8638,
  1053. 'odot' : 8857,
  1054. 'Uparrow' : 8657,
  1055. 'O' : 216,
  1056. 'hookleftarrow' : 8617,
  1057. 'trianglerighteq' : 8885,
  1058. 'nsime' : 8772,
  1059. 'oe' : 339,
  1060. 'nwarrow' : 8598,
  1061. 'o' : 248,
  1062. 'ddddot' : 8412,
  1063. 'downharpoonright' : 8642,
  1064. 'succcurlyeq' : 8829,
  1065. 'gamma' : 947,
  1066. 'scrR' : 8475,
  1067. 'dag' : 8224,
  1068. 'thickspace' : 8197,
  1069. 'frakZ' : 8488,
  1070. 'lessdot' : 8918,
  1071. 'triangledown' : 9663,
  1072. 'ltimes' : 8905,
  1073. 'scrB' : 8492,
  1074. 'endash' : 8211,
  1075. 'scrE' : 8496,
  1076. 'scrF' : 8497,
  1077. 'scrH' : 8459,
  1078. 'scrI' : 8464,
  1079. 'rightharpoondown' : 8641,
  1080. 'scrL' : 8466,
  1081. 'scrM' : 8499,
  1082. 'frakC' : 8493,
  1083. 'nsupseteq' : 8841,
  1084. 'circledR' : 174,
  1085. 'circledS' : 9416,
  1086. 'ngtr' : 8815,
  1087. 'bigcap' : 8898,
  1088. 'scre' : 8495,
  1089. 'Downarrow' : 8659,
  1090. 'scrg' : 8458,
  1091. 'overleftrightarrow' : 8417,
  1092. 'scro' : 8500,
  1093. 'lnsim' : 8934,
  1094. 'eqcolon' : 8789,
  1095. 'curlyvee' : 8910,
  1096. 'urcorner' : 8989,
  1097. 'lbrace' : 123,
  1098. 'Bumpeq' : 8782,
  1099. 'delta' : 948,
  1100. 'boxtimes' : 8864,
  1101. 'overleftarrow' : 8406,
  1102. 'prurel' : 8880,
  1103. 'clubsuitopen' : 9831,
  1104. 'cwopencirclearrow' : 8635,
  1105. 'geqq' : 8807,
  1106. 'rightleftarrows' : 8644,
  1107. 'ac' : 8766,
  1108. 'ae' : 230,
  1109. 'int' : 8747,
  1110. 'rfloor' : 8971,
  1111. 'risingdotseq' : 8787,
  1112. 'nvdash' : 8876,
  1113. 'diamond' : 8900,
  1114. 'ddot' : 776,
  1115. 'backsim' : 8765,
  1116. 'oplus' : 8853,
  1117. 'triangleq' : 8796,
  1118. 'check' : 780,
  1119. 'ni' : 8715,
  1120. 'iiint' : 8749,
  1121. 'ne' : 8800,
  1122. 'lesseqgtr' : 8922,
  1123. 'obar' : 9021,
  1124. 'supseteq' : 8839,
  1125. 'nu' : 957,
  1126. 'AA' : 197,
  1127. 'AE' : 198,
  1128. 'models' : 8871,
  1129. 'ominus' : 8854,
  1130. 'dashv' : 8867,
  1131. 'omega' : 969,
  1132. 'rq' : 8217,
  1133. 'Subset' : 8912,
  1134. 'rightharpoonup' : 8640,
  1135. 'Rdsh' : 8627,
  1136. 'bullet' : 8729,
  1137. 'divideontimes' : 8903,
  1138. 'lbrack' : 91,
  1139. 'textquotedblright' : 8221,
  1140. 'Colon' : 8759,
  1141. '%' : 37,
  1142. '$' : 36,
  1143. '{' : 123,
  1144. '}' : 125,
  1145. '_' : 95,
  1146. '#' : 35,
  1147. 'imath' : 0x131,
  1148. 'circumflexaccent' : 770,
  1149. 'combiningbreve' : 774,
  1150. 'combiningoverline' : 772,
  1151. 'combininggraveaccent' : 768,
  1152. 'combiningacuteaccent' : 769,
  1153. 'combiningdiaeresis' : 776,
  1154. 'combiningtilde' : 771,
  1155. 'combiningrightarrowabove' : 8407,
  1156. 'combiningdotabove' : 775,
  1157. 'to' : 8594,
  1158. 'succeq' : 8829,
  1159. 'emptyset' : 8709,
  1160. 'leftparen' : 40,
  1161. 'rightparen' : 41,
  1162. 'bigoplus' : 10753,
  1163. 'leftangle' : 10216,
  1164. 'rightangle' : 10217,
  1165. 'leftbrace' : 124,
  1166. 'rightbrace' : 125,
  1167. 'jmath' : 567,
  1168. 'bigodot' : 10752,
  1169. 'preceq' : 8828,
  1170. 'biguplus' : 10756,
  1171. 'epsilon' : 949,
  1172. 'vartheta' : 977,
  1173. 'bigotimes' : 10754,
  1174. 'guillemotleft' : 171,
  1175. 'ring' : 730,
  1176. 'Thorn' : 222,
  1177. 'guilsinglright' : 8250,
  1178. 'perthousand' : 8240,
  1179. 'macron' : 175,
  1180. 'cent' : 162,
  1181. 'guillemotright' : 187,
  1182. 'equal' : 61,
  1183. 'asterisk' : 42,
  1184. 'guilsinglleft' : 8249,
  1185. 'plus' : 43,
  1186. 'thorn' : 254,
  1187. 'dagger' : 8224
  1188. }
  1189. # Each element is a 4-tuple of the form:
  1190. # src_start, src_end, dst_font, dst_start
  1191. #
  1192. stix_virtual_fonts = {
  1193. 'bb':
  1194. {
  1195. 'rm':
  1196. [
  1197. (0x0030, 0x0039, 'rm', 0x1d7d8), # 0-9
  1198. (0x0041, 0x0042, 'rm', 0x1d538), # A-B
  1199. (0x0043, 0x0043, 'rm', 0x2102), # C
  1200. (0x0044, 0x0047, 'rm', 0x1d53b), # D-G
  1201. (0x0048, 0x0048, 'rm', 0x210d), # H
  1202. (0x0049, 0x004d, 'rm', 0x1d540), # I-M
  1203. (0x004e, 0x004e, 'rm', 0x2115), # N
  1204. (0x004f, 0x004f, 'rm', 0x1d546), # O
  1205. (0x0050, 0x0051, 'rm', 0x2119), # P-Q
  1206. (0x0052, 0x0052, 'rm', 0x211d), # R
  1207. (0x0053, 0x0059, 'rm', 0x1d54a), # S-Y
  1208. (0x005a, 0x005a, 'rm', 0x2124), # Z
  1209. (0x0061, 0x007a, 'rm', 0x1d552), # a-z
  1210. (0x0393, 0x0393, 'rm', 0x213e), # \Gamma
  1211. (0x03a0, 0x03a0, 'rm', 0x213f), # \Pi
  1212. (0x03a3, 0x03a3, 'rm', 0x2140), # \Sigma
  1213. (0x03b3, 0x03b3, 'rm', 0x213d), # \gamma
  1214. (0x03c0, 0x03c0, 'rm', 0x213c), # \pi
  1215. ],
  1216. 'it':
  1217. [
  1218. (0x0030, 0x0039, 'rm', 0x1d7d8), # 0-9
  1219. (0x0041, 0x0042, 'it', 0xe154), # A-B
  1220. (0x0043, 0x0043, 'it', 0x2102), # C
  1221. (0x0044, 0x0044, 'it', 0x2145), # D
  1222. (0x0045, 0x0047, 'it', 0xe156), # E-G
  1223. (0x0048, 0x0048, 'it', 0x210d), # H
  1224. (0x0049, 0x004d, 'it', 0xe159), # I-M
  1225. (0x004e, 0x004e, 'it', 0x2115), # N
  1226. (0x004f, 0x004f, 'it', 0xe15e), # O
  1227. (0x0050, 0x0051, 'it', 0x2119), # P-Q
  1228. (0x0052, 0x0052, 'it', 0x211d), # R
  1229. (0x0053, 0x0059, 'it', 0xe15f), # S-Y
  1230. (0x005a, 0x005a, 'it', 0x2124), # Z
  1231. (0x0061, 0x0063, 'it', 0xe166), # a-c
  1232. (0x0064, 0x0065, 'it', 0x2146), # d-e
  1233. (0x0066, 0x0068, 'it', 0xe169), # f-h
  1234. (0x0069, 0x006a, 'it', 0x2148), # i-j
  1235. (0x006b, 0x007a, 'it', 0xe16c), # k-z
  1236. (0x0393, 0x0393, 'it', 0x213e), # \Gamma (not in beta STIX fonts)
  1237. (0x03a0, 0x03a0, 'it', 0x213f), # \Pi
  1238. (0x03a3, 0x03a3, 'it', 0x2140), # \Sigma (not in beta STIX fonts)
  1239. (0x03b3, 0x03b3, 'it', 0x213d), # \gamma (not in beta STIX fonts)
  1240. (0x03c0, 0x03c0, 'it', 0x213c), # \pi
  1241. ],
  1242. 'bf':
  1243. [
  1244. (0x0030, 0x0039, 'rm', 0x1d7d8), # 0-9
  1245. (0x0041, 0x0042, 'bf', 0xe38a), # A-B
  1246. (0x0043, 0x0043, 'bf', 0x2102), # C
  1247. (0x0044, 0x0044, 'bf', 0x2145), # D
  1248. (0x0045, 0x0047, 'bf', 0xe38d), # E-G
  1249. (0x0048, 0x0048, 'bf', 0x210d), # H
  1250. (0x0049, 0x004d, 'bf', 0xe390), # I-M
  1251. (0x004e, 0x004e, 'bf', 0x2115), # N
  1252. (0x004f, 0x004f, 'bf', 0xe395), # O
  1253. (0x0050, 0x0051, 'bf', 0x2119), # P-Q
  1254. (0x0052, 0x0052, 'bf', 0x211d), # R
  1255. (0x0053, 0x0059, 'bf', 0xe396), # S-Y
  1256. (0x005a, 0x005a, 'bf', 0x2124), # Z
  1257. (0x0061, 0x0063, 'bf', 0xe39d), # a-c
  1258. (0x0064, 0x0065, 'bf', 0x2146), # d-e
  1259. (0x0066, 0x0068, 'bf', 0xe3a2), # f-h
  1260. (0x0069, 0x006a, 'bf', 0x2148), # i-j
  1261. (0x006b, 0x007a, 'bf', 0xe3a7), # k-z
  1262. (0x0393, 0x0393, 'bf', 0x213e), # \Gamma
  1263. (0x03a0, 0x03a0, 'bf', 0x213f), # \Pi
  1264. (0x03a3, 0x03a3, 'bf', 0x2140), # \Sigma
  1265. (0x03b3, 0x03b3, 'bf', 0x213d), # \gamma
  1266. (0x03c0, 0x03c0, 'bf', 0x213c), # \pi
  1267. ],
  1268. },
  1269. 'cal':
  1270. [
  1271. (0x0041, 0x005a, 'it', 0xe22d), # A-Z
  1272. ],
  1273. 'frak':
  1274. {
  1275. 'rm':
  1276. [
  1277. (0x0041, 0x0042, 'rm', 0x1d504), # A-B
  1278. (0x0043, 0x0043, 'rm', 0x212d), # C
  1279. (0x0044, 0x0047, 'rm', 0x1d507), # D-G
  1280. (0x0048, 0x0048, 'rm', 0x210c), # H
  1281. (0x0049, 0x0049, 'rm', 0x2111), # I
  1282. (0x004a, 0x0051, 'rm', 0x1d50d), # J-Q
  1283. (0x0052, 0x0052, 'rm', 0x211c), # R
  1284. (0x0053, 0x0059, 'rm', 0x1d516), # S-Y
  1285. (0x005a, 0x005a, 'rm', 0x2128), # Z
  1286. (0x0061, 0x007a, 'rm', 0x1d51e), # a-z
  1287. ],
  1288. 'it':
  1289. [
  1290. (0x0041, 0x0042, 'rm', 0x1d504), # A-B
  1291. (0x0043, 0x0043, 'rm', 0x212d), # C
  1292. (0x0044, 0x0047, 'rm', 0x1d507), # D-G
  1293. (0x0048, 0x0048, 'rm', 0x210c), # H
  1294. (0x0049, 0x0049, 'rm', 0x2111), # I
  1295. (0x004a, 0x0051, 'rm', 0x1d50d), # J-Q
  1296. (0x0052, 0x0052, 'rm', 0x211c), # R
  1297. (0x0053, 0x0059, 'rm', 0x1d516), # S-Y
  1298. (0x005a, 0x005a, 'rm', 0x2128), # Z
  1299. (0x0061, 0x007a, 'rm', 0x1d51e), # a-z
  1300. ],
  1301. 'bf':
  1302. [
  1303. (0x0041, 0x005a, 'bf', 0x1d56c), # A-Z
  1304. (0x0061, 0x007a, 'bf', 0x1d586), # a-z
  1305. ],
  1306. },
  1307. 'scr':
  1308. [
  1309. (0x0041, 0x0041, 'it', 0x1d49c), # A
  1310. (0x0042, 0x0042, 'it', 0x212c), # B
  1311. (0x0043, 0x0044, 'it', 0x1d49e), # C-D
  1312. (0x0045, 0x0046, 'it', 0x2130), # E-F
  1313. (0x0047, 0x0047, 'it', 0x1d4a2), # G
  1314. (0x0048, 0x0048, 'it', 0x210b), # H
  1315. (0x0049, 0x0049, 'it', 0x2110), # I
  1316. (0x004a, 0x004b, 'it', 0x1d4a5), # J-K
  1317. (0x004c, 0x004c, 'it', 0x2112), # L
  1318. (0x004d, 0x004d, 'it', 0x2133), # M
  1319. (0x004e, 0x0051, 'it', 0x1d4a9), # N-Q
  1320. (0x0052, 0x0052, 'it', 0x211b), # R
  1321. (0x0053, 0x005a, 'it', 0x1d4ae), # S-Z
  1322. (0x0061, 0x0064, 'it', 0x1d4b6), # a-d
  1323. (0x0065, 0x0065, 'it', 0x212f), # e
  1324. (0x0066, 0x0066, 'it', 0x1d4bb), # f
  1325. (0x0067, 0x0067, 'it', 0x210a), # g
  1326. (0x0068, 0x006e, 'it', 0x1d4bd), # h-n
  1327. (0x006f, 0x006f, 'it', 0x2134), # o
  1328. (0x0070, 0x007a, 'it', 0x1d4c5), # p-z
  1329. ],
  1330. 'sf':
  1331. {
  1332. 'rm':
  1333. [
  1334. (0x0030, 0x0039, 'rm', 0x1d7e2), # 0-9
  1335. (0x0041, 0x005a, 'rm', 0x1d5a0), # A-Z
  1336. (0x0061, 0x007a, 'rm', 0x1d5ba), # a-z
  1337. (0x0391, 0x03a9, 'rm', 0xe17d), # \Alpha-\Omega
  1338. (0x03b1, 0x03c9, 'rm', 0xe196), # \alpha-\omega
  1339. (0x03d1, 0x03d1, 'rm', 0xe1b0), # theta variant
  1340. (0x03d5, 0x03d5, 'rm', 0xe1b1), # phi variant
  1341. (0x03d6, 0x03d6, 'rm', 0xe1b3), # pi variant
  1342. (0x03f1, 0x03f1, 'rm', 0xe1b2), # rho variant
  1343. (0x03f5, 0x03f5, 'rm', 0xe1af), # lunate epsilon
  1344. (0x2202, 0x2202, 'rm', 0xe17c), # partial differential
  1345. ],
  1346. 'it':
  1347. [
  1348. # These numerals are actually upright. We don't actually
  1349. # want italic numerals ever.
  1350. (0x0030, 0x0039, 'rm', 0x1d7e2), # 0-9
  1351. (0x0041, 0x005a, 'it', 0x1d608), # A-Z
  1352. (0x0061, 0x007a, 'it', 0x1d622), # a-z
  1353. (0x0391, 0x03a9, 'rm', 0xe17d), # \Alpha-\Omega
  1354. (0x03b1, 0x03c9, 'it', 0xe1d8), # \alpha-\omega
  1355. (0x03d1, 0x03d1, 'it', 0xe1f2), # theta variant
  1356. (0x03d5, 0x03d5, 'it', 0xe1f3), # phi variant
  1357. (0x03d6, 0x03d6, 'it', 0xe1f5), # pi variant
  1358. (0x03f1, 0x03f1, 'it', 0xe1f4), # rho variant
  1359. (0x03f5, 0x03f5, 'it', 0xe1f1), # lunate epsilon
  1360. ],
  1361. 'bf':
  1362. [
  1363. (0x0030, 0x0039, 'bf', 0x1d7ec), # 0-9
  1364. (0x0041, 0x005a, 'bf', 0x1d5d4), # A-Z
  1365. (0x0061, 0x007a, 'bf', 0x1d5ee), # a-z
  1366. (0x0391, 0x03a9, 'bf', 0x1d756), # \Alpha-\Omega
  1367. (0x03b1, 0x03c9, 'bf', 0x1d770), # \alpha-\omega
  1368. (0x03d1, 0x03d1, 'bf', 0x1d78b), # theta variant
  1369. (0x03d5, 0x03d5, 'bf', 0x1d78d), # phi variant
  1370. (0x03d6, 0x03d6, 'bf', 0x1d78f), # pi variant
  1371. (0x03f0, 0x03f0, 'bf', 0x1d78c), # kappa variant
  1372. (0x03f1, 0x03f1, 'bf', 0x1d78e), # rho variant
  1373. (0x03f5, 0x03f5, 'bf', 0x1d78a), # lunate epsilon
  1374. (0x2202, 0x2202, 'bf', 0x1d789), # partial differential
  1375. (0x2207, 0x2207, 'bf', 0x1d76f), # \Nabla
  1376. ],
  1377. },
  1378. 'tt':
  1379. [
  1380. (0x0030, 0x0039, 'rm', 0x1d7f6), # 0-9
  1381. (0x0041, 0x005a, 'rm', 0x1d670), # A-Z
  1382. (0x0061, 0x007a, 'rm', 0x1d68a) # a-z
  1383. ],
  1384. }