You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Glyphs.java 44KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313
  1. /*
  2. * Copyright 1999-2004 The Apache Software Foundation.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. /* $Id$ */
  17. package org.apache.fop.fonts;
  18. /**
  19. * This class provides a number of constants for glyph management.
  20. */
  21. public class Glyphs {
  22. /**
  23. * Glyph name for the "notdef" glyph
  24. */
  25. public static final String NOTDEF = ".notdef";
  26. /**
  27. * Glyph names for Mac encoding
  28. */
  29. public static final String MAC_GLYPH_NAMES[] = {
  30. /* 0x00 */
  31. NOTDEF, ".null", "CR", "space", "exclam", "quotedbl", "numbersign",
  32. "dollar", "percent", "ampersand", "quotesingle", "parenleft",
  33. "parenright", "asterisk", "plus", "comma", /* 0x10 */
  34. "hyphen", "period", "slash", "zero", "one", "two", "three", "four",
  35. "five", "six", "seven", "eight", "nine", "colon",
  36. "semicolon", "less", /* 0x20 */
  37. "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F",
  38. "G", "H", "I", "J", "K", "L", /* 0x30 */
  39. "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
  40. "bracketleft", "backslash", /* 0x40 */
  41. "bracketright", "asciicircum", "underscore", "grave", "a", "b", "c",
  42. "d", "e", "f", "g", "h", "i", "j", "k", "l",
  43. /* 0x50 */
  44. "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
  45. "braceleft", "bar", /* 0x60 */
  46. "braceright", "asciitilde", "Adieresis", "Aring", "Ccedilla",
  47. "Eacute", "Ntilde", "Odieresis", "Udieresis", "aacute",
  48. "agrave", "acircumflex", "adieresis", "atilde",
  49. "aring", "ccedilla", /* 0x70 */
  50. "eacute", "egrave", "ecircumflex", "edieresis", "iacute", "igrave",
  51. "icircumflex", "idieresis", "ntilde", "oacute", "ograve",
  52. "ocircumflex", "odieresis", "otilde", "uacute", "ugrave",
  53. /* 0x80 */
  54. "ucircumflex", "udieresis", "dagger", "degree", "cent", "sterling",
  55. "section", "bullet", "paragraph", "germandbls",
  56. "registered", "copyright", "trademark", "acute",
  57. "dieresis", "notequal", /* 0x90 */
  58. "AE", "Oslash", "infinity", "plusminus", "lessequal", "greaterequal",
  59. "yen", "mu", "partialdiff", "Sigma", "Pi", "pi", "integral",
  60. "ordfeminine", "ordmasculine", "Omega", /* 0xa0 */
  61. "ae", "oslash", "questiondown", "exclamdown", "logicalnot",
  62. "radical", "florin", "approxequal", "Delta", "guillemotleft",
  63. "guillemotright", "ellipsis", "nbspace", "Agrave", "Atilde",
  64. "Otilde", /* 0xb0 */
  65. "OE", "oe", "endash", "emdash", "quotedblleft", "quotedblright",
  66. "quoteleft", "quoteright", "divide", "lozenge", "ydieresis",
  67. "Ydieresis", "fraction", "currency", "guilsinglleft",
  68. "guilsinglright", /* 0xc0 */
  69. "fi", "fl", "daggerdbl", "periodcentered", "quotesinglbase",
  70. "quotedblbase", "perthousand", "Acircumflex", "Ecircumflex",
  71. "Aacute", "Edieresis", "Egrave", "Iacute", "Icircumflex",
  72. "Idieresis", "Igrave", /* 0xd0 */
  73. "Oacute", "Ocircumflex", "applelogo", "Ograve", "Uacute",
  74. "Ucircumflex", "Ugrave", "dotlessi", "circumflex", "tilde",
  75. "macron", "breve", "dotaccent", "ring", "cedilla",
  76. "hungarumlaut", /* 0xe0 */
  77. "ogonek", "caron", "Lslash", "lslash", "Scaron", "scaron", "Zcaron",
  78. "zcaron", "brokenbar", "Eth", "eth", "Yacute", "yacute",
  79. "Thorn", "thorn", "minus", /* 0xf0 */
  80. "multiply", "onesuperior", "twosuperior", "threesuperior", "onehalf",
  81. "onequarter", "threequarters", "franc", "Gbreve",
  82. "gbreve", "Idot", "Scedilla", "scedilla", "Cacute",
  83. "cacute", "Ccaron", /* 0x100 */
  84. "ccaron", "dmacron"
  85. };
  86. /**
  87. * Glyph names for tex8r encoding
  88. */
  89. public static final String[] TEX8R_GLYPH_NAMES = {
  90. // 0x00
  91. NOTDEF, "dotaccent", "fi", "fl", "fraction", "hungarumlaut",
  92. "Lslash", "lslash", "ogonek", "ring", ".notdef", "breve",
  93. "minus", ".notdef", "Zcaron", "zcaron", // 0x10
  94. "caron", "dotlessi", "dotlessj", "ff", "ffi", "ffl", ".notdef",
  95. ".notdef", ".notdef", ".notdef", ".notdef", ".notdef",
  96. ".notdef", ".notdef", "grave", "quotesingle", // 0x20
  97. "space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
  98. "ampersand", "quoteright", "parenleft", "parenright",
  99. "asterisk", "plus", "comma", "hyphen", "period", "slash",
  100. // 0x30
  101. "zero", "one", "two", "three", "four", "five", "six", "seven",
  102. "eight", "nine", "colon", "semicolon", "less", "equal",
  103. "greater", "question", // 0x40
  104. "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L",
  105. "M", "N", "O", // 0x50
  106. "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft",
  107. "backslash", "bracketright", "asciicircum", "underscore", // 0x60
  108. "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
  109. "l", "m", "n", "o", // 0x70
  110. "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft",
  111. "bar", "braceright", "asciitilde", ".notdef", // 0x80
  112. "Euro", ".notdef", "quotesinglbase", "florin", "quotedblbase",
  113. "ellipsis", "dagger", "daggerdbl", "circumflex",
  114. "perthousand", "Scaron", "guilsinglleft", "OE", ".notdef",
  115. ".notdef", ".notdef", // 0x90
  116. ".notdef", ".notdef", ".notdef", "quotedblleft", "quotedblright",
  117. "bullet", "endash", "emdash", "tilde", "trademark",
  118. "scaron", "guilsinglright", "oe", ".notdef", ".notdef",
  119. "Ydieresis", // 0xA0
  120. ".notdef", "exclamdown", "cent", "sterling", "currency", "yen",
  121. "brokenbar", "section", "dieresis", "copyright",
  122. "ordfeminine", "guillemotleft", "logicalnot", "hyphen",
  123. "registered", "macron", // 0xB0
  124. "degree", "plusminus", "twosuperior", "threesuperior", "acute", "mu",
  125. "paragraph", "periodcentered", "cedilla", "onesuperior",
  126. "ordmasculine", "guillemotright", "onequarter", "onehalf",
  127. "threequarters", "questiondown", // 0xC0
  128. "Agrave", "Aacute", "Acircumflex", "Atilde", "Adieresis", "Aring",
  129. "AE", "Ccedilla", "Egrave", "Eacute", "Ecircumflex",
  130. "Edieresis", "Igrave", "Iacute", "Icircumflex",
  131. "Idieresis", // 0xD0
  132. "Eth", "Ntilde", "Ograve", "Oacute", "Ocircumflex", "Otilde",
  133. "Odieresis", "multiply", "Oslash", "Ugrave", "Uacute",
  134. "Ucircumflex", "Udieresis", "Yacute", "Thorn", "germandbls",
  135. // 0xE0
  136. "agrave", "aacute", "acircumflex", "atilde", "adieresis", "aring",
  137. "ae", "ccedilla", "egrave", "eacute", "ecircumflex",
  138. "edieresis", "igrave", "iacute", "icircumflex",
  139. "idieresis", // 0xF0
  140. "eth", "ntilde", "ograve", "oacute", "ocircumflex", "otilde",
  141. "odieresis", "divide", "oslash", "ugrave", "uacute",
  142. "ucircumflex", "udieresis", "yacute", "thorn", "ydieresis"
  143. };
  144. /**
  145. * The characters in WinAnsiEncoding
  146. */
  147. public static final char[] WINANSI_ENCODING = {
  148. // not used until char 32
  149. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  150. 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x20
  151. ' ', '\u0021', '\"', '\u0023', '$', '%', '&', '\'', '(', ')', '*', '+', ',',
  152. '\u002d', '\u002e', '/', // 0x30
  153. '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=',
  154. '>', '?', '@', // 0x40
  155. 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
  156. 'O', // 0x50
  157. 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '\u005b', '\\',
  158. '\u005d', '^', '_', // 0x60
  159. '\u2018', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
  160. 'n', 'o', // 0x70
  161. 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '\u007b', '\u007c', '\u007d',
  162. '\u007e', '\u2022', // 0x80
  163. '\u20ac', '\u2022', '\u201a', '\u0192', '\u201e', '\u2026', '\u2020',
  164. '\u2021', '\u02c6', '\u2030', '\u0160', '\u2039', '\u0152', '\u2022',
  165. '\u017d', '\u2022', // 0x90
  166. '\u2022', '\u2018', // quoteleft
  167. '\u2019', // quoteright
  168. '\u201c', // quotedblleft
  169. '\u201d', // quotedblright
  170. '\u2022', // bullet
  171. '\u2013', // endash
  172. '\u2014', // emdash
  173. '~',
  174. '\u2122', // trademark
  175. '\u0161', '\u203a', '\u0153', '\u2022', '\u017e', '\u0178', // 0xA0
  176. ' ', '\u00a1', '\u00a2', '\u00a3', '\u00a4', '\u00a5',
  177. '\u00a6', '\u00a7', '\u00a8', '\u00a9', '\u00aa', '\u00ab',
  178. '\u00ac', '\u00ad', '\u00ae', '\u00af', // 0xb0
  179. '\u00b0', '\u00b1', '\u00b2', '\u00b3', '\u00b4',
  180. '\u00b5', // This is hand-coded, the rest is assumption
  181. '\u00b6', // and *might* not be correct...
  182. '\u00b7', '\u00b8', '\u00b9', '\u00ba', '\u00bb', '\u00bc', '\u00bd',
  183. '\u00be', '\u00bf', // 0xc0
  184. '\u00c0', '\u00c1', '\u00c2', '\u00c3', '\u00c4', '\u00c5', // Aring
  185. '\u00c6', // AE
  186. '\u00c7', '\u00c8', '\u00c9', '\u00ca', '\u00cb', '\u00cc',
  187. '\u00cd', '\u00ce', '\u00cf', // 0xd0
  188. '\u00d0', '\u00d1', '\u00d2', '\u00d3', '\u00d4', '\u00d5',
  189. '\u00d6', '\u00d7', '\u00d8', // Oslash
  190. '\u00d9', '\u00da', '\u00db', '\u00dc', '\u00dd', '\u00de',
  191. '\u00df', // 0xe0
  192. '\u00e0', '\u00e1', '\u00e2', '\u00e3', '\u00e4', '\u00e5', // aring
  193. '\u00e6', // ae
  194. '\u00e7', '\u00e8', '\u00e9', '\u00ea', '\u00eb', '\u00ec',
  195. '\u00ed', '\u00ee', '\u00ef', // 0xf0
  196. '\u00f0', '\u00f1', '\u00f2', '\u00f3', '\u00f4', '\u00f5',
  197. '\u00f6', '\u00f7', '\u00f8', '\u00f9', '\u00fa', '\u00fb',
  198. '\u00fc', '\u00fd', '\u00fe', '\u00ff'
  199. };
  200. /**
  201. * List of unicode glyphs
  202. */
  203. public static final String[] UNICODE_GLYPHS = {
  204. "\u0041", "A",
  205. "\u00C6", "AE",
  206. "\u01FC", "AEacute",
  207. "\uF7E6", "AEsmall",
  208. "\u00C1", "Aacute",
  209. "\uF7E1", "Aacutesmall",
  210. "\u0102", "Abreve",
  211. "\u00C2", "Acircumflex",
  212. "\uF7E2", "Acircumflexsmall",
  213. "\uF6C9", "Acute",
  214. "\uF7B4", "Acutesmall",
  215. "\u00C4", "Adieresis",
  216. "\uF7E4", "Adieresissmall",
  217. "\u00C0", "Agrave",
  218. "\uF7E0", "Agravesmall",
  219. "\u0391", "Alpha",
  220. "\u0386", "Alphatonos",
  221. "\u0100", "Amacron",
  222. "\u0104", "Aogonek",
  223. "\u00C5", "Aring",
  224. "\u01FA", "Aringacute",
  225. "\uF7E5", "Aringsmall",
  226. "\uF761", "Asmall",
  227. "\u00C3", "Atilde",
  228. "\uF7E3", "Atildesmall",
  229. "\u0042", "B",
  230. "\u0392", "Beta",
  231. "\uF6F4", "Brevesmall",
  232. "\uF762", "Bsmall",
  233. "\u0043", "C",
  234. "\u0106", "Cacute",
  235. "\uF6CA", "Caron",
  236. "\uF6F5", "Caronsmall",
  237. "\u010C", "Ccaron",
  238. "\u00C7", "Ccedilla",
  239. "\uF7E7", "Ccedillasmall",
  240. "\u0108", "Ccircumflex",
  241. "\u010A", "Cdotaccent",
  242. "\uF7B8", "Cedillasmall",
  243. "\u03A7", "Chi",
  244. "\uF6F6", "Circumflexsmall",
  245. "\uF763", "Csmall",
  246. "\u0044", "D",
  247. "\u010E", "Dcaron",
  248. "\u0110", "Dcroat",
  249. "\u2206", "Delta",
  250. "\u0394", "Delta",
  251. "\uF6CB", "Dieresis",
  252. "\uF6CC", "DieresisAcute",
  253. "\uF6CD", "DieresisGrave",
  254. "\uF7A8", "Dieresissmall",
  255. "\uF6F7", "Dotaccentsmall",
  256. "\uF764", "Dsmall",
  257. "\u0045", "E",
  258. "\u00C9", "Eacute",
  259. "\uF7E9", "Eacutesmall",
  260. "\u0114", "Ebreve",
  261. "\u011A", "Ecaron",
  262. "\u00CA", "Ecircumflex",
  263. "\uF7EA", "Ecircumflexsmall",
  264. "\u00CB", "Edieresis",
  265. "\uF7EB", "Edieresissmall",
  266. "\u0116", "Edotaccent",
  267. "\u00C8", "Egrave",
  268. "\uF7E8", "Egravesmall",
  269. "\u0112", "Emacron",
  270. "\u014A", "Eng",
  271. "\u0118", "Eogonek",
  272. "\u0395", "Epsilon",
  273. "\u0388", "Epsilontonos",
  274. "\uF765", "Esmall",
  275. "\u0397", "Eta",
  276. "\u0389", "Etatonos",
  277. "\u00D0", "Eth",
  278. "\uF7F0", "Ethsmall",
  279. "\u20AC", "Euro",
  280. "\u0046", "F",
  281. "\uF766", "Fsmall",
  282. "\u0047", "G",
  283. "\u0393", "Gamma",
  284. "\u011E", "Gbreve",
  285. "\u01E6", "Gcaron",
  286. "\u011C", "Gcircumflex",
  287. "\u0122", "Gcommaaccent",
  288. "\u0120", "Gdotaccent",
  289. "\uF6CE", "Grave",
  290. "\uF760", "Gravesmall",
  291. "\uF767", "Gsmall",
  292. "\u0048", "H",
  293. "\u25CF", "H18533",
  294. "\u25AA", "H18543",
  295. "\u25AB", "H18551",
  296. "\u25A1", "H22073",
  297. "\u0126", "Hbar",
  298. "\u0124", "Hcircumflex",
  299. "\uF768", "Hsmall",
  300. "\uF6CF", "Hungarumlaut",
  301. "\uF6F8", "Hungarumlautsmall",
  302. "\u0049", "I",
  303. "\u0132", "IJ",
  304. "\u00CD", "Iacute",
  305. "\uF7ED", "Iacutesmall",
  306. "\u012C", "Ibreve",
  307. "\u00CE", "Icircumflex",
  308. "\uF7EE", "Icircumflexsmall",
  309. "\u00CF", "Idieresis",
  310. "\uF7EF", "Idieresissmall",
  311. "\u0130", "Idotaccent",
  312. "\u2111", "Ifraktur",
  313. "\u00CC", "Igrave",
  314. "\uF7EC", "Igravesmall",
  315. "\u012A", "Imacron",
  316. "\u012E", "Iogonek",
  317. "\u0399", "Iota",
  318. "\u03AA", "Iotadieresis",
  319. "\u038A", "Iotatonos",
  320. "\uF769", "Ismall",
  321. "\u0128", "Itilde",
  322. "\u004A", "J",
  323. "\u0134", "Jcircumflex",
  324. "\uF76A", "Jsmall",
  325. "\u004B", "K",
  326. "\u039A", "Kappa",
  327. "\u0136", "Kcommaaccent",
  328. "\uF76B", "Ksmall",
  329. "\u004C", "L",
  330. "\uF6BF", "LL",
  331. "\u0139", "Lacute",
  332. "\u039B", "Lambda",
  333. "\u013D", "Lcaron",
  334. "\u013B", "Lcommaaccent",
  335. "\u013F", "Ldot",
  336. "\u0141", "Lslash",
  337. "\uF6F9", "Lslashsmall",
  338. "\uF76C", "Lsmall",
  339. "\u004D", "M",
  340. "\uF6D0", "Macron",
  341. "\uF7AF", "Macronsmall",
  342. "\uF76D", "Msmall",
  343. "\u039C", "Mu",
  344. "\u004E", "N",
  345. "\u0143", "Nacute",
  346. "\u0147", "Ncaron",
  347. "\u0145", "Ncommaaccent",
  348. "\uF76E", "Nsmall",
  349. "\u00D1", "Ntilde",
  350. "\uF7F1", "Ntildesmall",
  351. "\u039D", "Nu",
  352. "\u004F", "O",
  353. "\u0152", "OE",
  354. "\uF6FA", "OEsmall",
  355. "\u00D3", "Oacute",
  356. "\uF7F3", "Oacutesmall",
  357. "\u014E", "Obreve",
  358. "\u00D4", "Ocircumflex",
  359. "\uF7F4", "Ocircumflexsmall",
  360. "\u00D6", "Odieresis",
  361. "\uF7F6", "Odieresissmall",
  362. "\uF6FB", "Ogoneksmall",
  363. "\u00D2", "Ograve",
  364. "\uF7F2", "Ogravesmall",
  365. "\u01A0", "Ohorn",
  366. "\u0150", "Ohungarumlaut",
  367. "\u014C", "Omacron",
  368. "\u2126", "Omega",
  369. "\u03A9", "Omega",
  370. "\u038F", "Omegatonos",
  371. "\u039F", "Omicron",
  372. "\u038C", "Omicrontonos",
  373. "\u00D8", "Oslash",
  374. "\u01FE", "Oslashacute",
  375. "\uF7F8", "Oslashsmall",
  376. "\uF76F", "Osmall",
  377. "\u00D5", "Otilde",
  378. "\uF7F5", "Otildesmall",
  379. "\u0050", "P",
  380. "\u03A6", "Phi",
  381. "\u03A0", "Pi",
  382. "\u03A8", "Psi",
  383. "\uF770", "Psmall",
  384. "\u0051", "Q",
  385. "\uF771", "Qsmall",
  386. "\u0052", "R",
  387. "\u0154", "Racute",
  388. "\u0158", "Rcaron",
  389. "\u0156", "Rcommaaccent",
  390. "\u211C", "Rfraktur",
  391. "\u03A1", "Rho",
  392. "\uF6FC", "Ringsmall",
  393. "\uF772", "Rsmall",
  394. "\u0053", "S",
  395. "\u250C", "SF010000",
  396. "\u2514", "SF020000",
  397. "\u2510", "SF030000",
  398. "\u2518", "SF040000",
  399. "\u253C", "SF050000",
  400. "\u252C", "SF060000",
  401. "\u2534", "SF070000",
  402. "\u251C", "SF080000",
  403. "\u2524", "SF090000",
  404. "\u2500", "SF100000",
  405. "\u2502", "SF110000",
  406. "\u2561", "SF190000",
  407. "\u2562", "SF200000",
  408. "\u2556", "SF210000",
  409. "\u2555", "SF220000",
  410. "\u2563", "SF230000",
  411. "\u2551", "SF240000",
  412. "\u2557", "SF250000",
  413. "\u255D", "SF260000",
  414. "\u255C", "SF270000",
  415. "\u255B", "SF280000",
  416. "\u255E", "SF360000",
  417. "\u255F", "SF370000",
  418. "\u255A", "SF380000",
  419. "\u2554", "SF390000",
  420. "\u2569", "SF400000",
  421. "\u2566", "SF410000",
  422. "\u2560", "SF420000",
  423. "\u2550", "SF430000",
  424. "\u256C", "SF440000",
  425. "\u2567", "SF450000",
  426. "\u2568", "SF460000",
  427. "\u2564", "SF470000",
  428. "\u2565", "SF480000",
  429. "\u2559", "SF490000",
  430. "\u2558", "SF500000",
  431. "\u2552", "SF510000",
  432. "\u2553", "SF520000",
  433. "\u256B", "SF530000",
  434. "\u256A", "SF540000",
  435. "\u015A", "Sacute",
  436. "\u0160", "Scaron",
  437. "\uF6FD", "Scaronsmall",
  438. "\u015E", "Scedilla",
  439. "\uF6C1", "Scedilla",
  440. "\u015C", "Scircumflex",
  441. "\u0218", "Scommaaccent",
  442. "\u03A3", "Sigma",
  443. "\uF773", "Ssmall",
  444. "\u0054", "T",
  445. "\u03A4", "Tau",
  446. "\u0166", "Tbar",
  447. "\u0164", "Tcaron",
  448. "\u0162", "Tcommaaccent",
  449. "\u021A", "Tcommaaccent",
  450. "\u0398", "Theta",
  451. "\u00DE", "Thorn",
  452. "\uF7FE", "Thornsmall",
  453. "\uF6FE", "Tildesmall",
  454. "\uF774", "Tsmall",
  455. "\u0055", "U",
  456. "\u00DA", "Uacute",
  457. "\uF7FA", "Uacutesmall",
  458. "\u016C", "Ubreve",
  459. "\u00DB", "Ucircumflex",
  460. "\uF7FB", "Ucircumflexsmall",
  461. "\u00DC", "Udieresis",
  462. "\uF7FC", "Udieresissmall",
  463. "\u00D9", "Ugrave",
  464. "\uF7F9", "Ugravesmall",
  465. "\u01AF", "Uhorn",
  466. "\u0170", "Uhungarumlaut",
  467. "\u016A", "Umacron",
  468. "\u0172", "Uogonek",
  469. "\u03A5", "Upsilon",
  470. "\u03D2", "Upsilon1",
  471. "\u03AB", "Upsilondieresis",
  472. "\u038E", "Upsilontonos",
  473. "\u016E", "Uring",
  474. "\uF775", "Usmall",
  475. "\u0168", "Utilde",
  476. "\u0056", "V",
  477. "\uF776", "Vsmall",
  478. "\u0057", "W",
  479. "\u1E82", "Wacute",
  480. "\u0174", "Wcircumflex",
  481. "\u1E84", "Wdieresis",
  482. "\u1E80", "Wgrave",
  483. "\uF777", "Wsmall",
  484. "\u0058", "X",
  485. "\u039E", "Xi",
  486. "\uF778", "Xsmall",
  487. "\u0059", "Y",
  488. "\u00DD", "Yacute",
  489. "\uF7FD", "Yacutesmall",
  490. "\u0176", "Ycircumflex",
  491. "\u0178", "Ydieresis",
  492. "\uF7FF", "Ydieresissmall",
  493. "\u1EF2", "Ygrave",
  494. "\uF779", "Ysmall",
  495. "\u005A", "Z",
  496. "\u0179", "Zacute",
  497. "\u017D", "Zcaron",
  498. "\uF6FF", "Zcaronsmall",
  499. "\u017B", "Zdotaccent",
  500. "\u0396", "Zeta",
  501. "\uF77A", "Zsmall",
  502. "\u0061", "a",
  503. "\u00E1", "aacute",
  504. "\u0103", "abreve",
  505. "\u00E2", "acircumflex",
  506. "\u00B4", "acute",
  507. "\u0301", "acutecomb",
  508. "\u00E4", "adieresis",
  509. "\u00E6", "ae",
  510. "\u01FD", "aeacute",
  511. "\u2015", "afii00208",
  512. "\u0410", "afii10017",
  513. "\u0411", "afii10018",
  514. "\u0412", "afii10019",
  515. "\u0413", "afii10020",
  516. "\u0414", "afii10021",
  517. "\u0415", "afii10022",
  518. "\u0401", "afii10023",
  519. "\u0416", "afii10024",
  520. "\u0417", "afii10025",
  521. "\u0418", "afii10026",
  522. "\u0419", "afii10027",
  523. "\u041A", "afii10028",
  524. "\u041B", "afii10029",
  525. "\u041C", "afii10030",
  526. "\u041D", "afii10031",
  527. "\u041E", "afii10032",
  528. "\u041F", "afii10033",
  529. "\u0420", "afii10034",
  530. "\u0421", "afii10035",
  531. "\u0422", "afii10036",
  532. "\u0423", "afii10037",
  533. "\u0424", "afii10038",
  534. "\u0425", "afii10039",
  535. "\u0426", "afii10040",
  536. "\u0427", "afii10041",
  537. "\u0428", "afii10042",
  538. "\u0429", "afii10043",
  539. "\u042A", "afii10044",
  540. "\u042B", "afii10045",
  541. "\u042C", "afii10046",
  542. "\u042D", "afii10047",
  543. "\u042E", "afii10048",
  544. "\u042F", "afii10049",
  545. "\u0490", "afii10050",
  546. "\u0402", "afii10051",
  547. "\u0403", "afii10052",
  548. "\u0404", "afii10053",
  549. "\u0405", "afii10054",
  550. "\u0406", "afii10055",
  551. "\u0407", "afii10056",
  552. "\u0408", "afii10057",
  553. "\u0409", "afii10058",
  554. "\u040A", "afii10059",
  555. "\u040B", "afii10060",
  556. "\u040C", "afii10061",
  557. "\u040E", "afii10062",
  558. "\uF6C4", "afii10063",
  559. "\uF6C5", "afii10064",
  560. "\u0430", "afii10065",
  561. "\u0431", "afii10066",
  562. "\u0432", "afii10067",
  563. "\u0433", "afii10068",
  564. "\u0434", "afii10069",
  565. "\u0435", "afii10070",
  566. "\u0451", "afii10071",
  567. "\u0436", "afii10072",
  568. "\u0437", "afii10073",
  569. "\u0438", "afii10074",
  570. "\u0439", "afii10075",
  571. "\u043A", "afii10076",
  572. "\u043B", "afii10077",
  573. "\u043C", "afii10078",
  574. "\u043D", "afii10079",
  575. "\u043E", "afii10080",
  576. "\u043F", "afii10081",
  577. "\u0440", "afii10082",
  578. "\u0441", "afii10083",
  579. "\u0442", "afii10084",
  580. "\u0443", "afii10085",
  581. "\u0444", "afii10086",
  582. "\u0445", "afii10087",
  583. "\u0446", "afii10088",
  584. "\u0447", "afii10089",
  585. "\u0448", "afii10090",
  586. "\u0449", "afii10091",
  587. "\u044A", "afii10092",
  588. "\u044B", "afii10093",
  589. "\u044C", "afii10094",
  590. "\u044D", "afii10095",
  591. "\u044E", "afii10096",
  592. "\u044F", "afii10097",
  593. "\u0491", "afii10098",
  594. "\u0452", "afii10099",
  595. "\u0453", "afii10100",
  596. "\u0454", "afii10101",
  597. "\u0455", "afii10102",
  598. "\u0456", "afii10103",
  599. "\u0457", "afii10104",
  600. "\u0458", "afii10105",
  601. "\u0459", "afii10106",
  602. "\u045A", "afii10107",
  603. "\u045B", "afii10108",
  604. "\u045C", "afii10109",
  605. "\u045E", "afii10110",
  606. "\u040F", "afii10145",
  607. "\u0462", "afii10146",
  608. "\u0472", "afii10147",
  609. "\u0474", "afii10148",
  610. "\uF6C6", "afii10192",
  611. "\u045F", "afii10193",
  612. "\u0463", "afii10194",
  613. "\u0473", "afii10195",
  614. "\u0475", "afii10196",
  615. "\uF6C7", "afii10831",
  616. "\uF6C8", "afii10832",
  617. "\u04D9", "afii10846",
  618. "\u200E", "afii299",
  619. "\u200F", "afii300",
  620. "\u200D", "afii301",
  621. "\u066A", "afii57381",
  622. "\u060C", "afii57388",
  623. "\u0660", "afii57392",
  624. "\u0661", "afii57393",
  625. "\u0662", "afii57394",
  626. "\u0663", "afii57395",
  627. "\u0664", "afii57396",
  628. "\u0665", "afii57397",
  629. "\u0666", "afii57398",
  630. "\u0667", "afii57399",
  631. "\u0668", "afii57400",
  632. "\u0669", "afii57401",
  633. "\u061B", "afii57403",
  634. "\u061F", "afii57407",
  635. "\u0621", "afii57409",
  636. "\u0622", "afii57410",
  637. "\u0623", "afii57411",
  638. "\u0624", "afii57412",
  639. "\u0625", "afii57413",
  640. "\u0626", "afii57414",
  641. "\u0627", "afii57415",
  642. "\u0628", "afii57416",
  643. "\u0629", "afii57417",
  644. "\u062A", "afii57418",
  645. "\u062B", "afii57419",
  646. "\u062C", "afii57420",
  647. "\u062D", "afii57421",
  648. "\u062E", "afii57422",
  649. "\u062F", "afii57423",
  650. "\u0630", "afii57424",
  651. "\u0631", "afii57425",
  652. "\u0632", "afii57426",
  653. "\u0633", "afii57427",
  654. "\u0634", "afii57428",
  655. "\u0635", "afii57429",
  656. "\u0636", "afii57430",
  657. "\u0637", "afii57431",
  658. "\u0638", "afii57432",
  659. "\u0639", "afii57433",
  660. "\u063A", "afii57434",
  661. "\u0640", "afii57440",
  662. "\u0641", "afii57441",
  663. "\u0642", "afii57442",
  664. "\u0643", "afii57443",
  665. "\u0644", "afii57444",
  666. "\u0645", "afii57445",
  667. "\u0646", "afii57446",
  668. "\u0648", "afii57448",
  669. "\u0649", "afii57449",
  670. "\u064A", "afii57450",
  671. "\u064B", "afii57451",
  672. "\u064C", "afii57452",
  673. "\u064D", "afii57453",
  674. "\u064E", "afii57454",
  675. "\u064F", "afii57455",
  676. "\u0650", "afii57456",
  677. "\u0651", "afii57457",
  678. "\u0652", "afii57458",
  679. "\u0647", "afii57470",
  680. "\u06A4", "afii57505",
  681. "\u067E", "afii57506",
  682. "\u0686", "afii57507",
  683. "\u0698", "afii57508",
  684. "\u06AF", "afii57509",
  685. "\u0679", "afii57511",
  686. "\u0688", "afii57512",
  687. "\u0691", "afii57513",
  688. "\u06BA", "afii57514",
  689. "\u06D2", "afii57519",
  690. "\u06D5", "afii57534",
  691. "\u20AA", "afii57636",
  692. "\u05BE", "afii57645",
  693. "\u05C3", "afii57658",
  694. "\u05D0", "afii57664",
  695. "\u05D1", "afii57665",
  696. "\u05D2", "afii57666",
  697. "\u05D3", "afii57667",
  698. "\u05D4", "afii57668",
  699. "\u05D5", "afii57669",
  700. "\u05D6", "afii57670",
  701. "\u05D7", "afii57671",
  702. "\u05D8", "afii57672",
  703. "\u05D9", "afii57673",
  704. "\u05DA", "afii57674",
  705. "\u05DB", "afii57675",
  706. "\u05DC", "afii57676",
  707. "\u05DD", "afii57677",
  708. "\u05DE", "afii57678",
  709. "\u05DF", "afii57679",
  710. "\u05E0", "afii57680",
  711. "\u05E1", "afii57681",
  712. "\u05E2", "afii57682",
  713. "\u05E3", "afii57683",
  714. "\u05E4", "afii57684",
  715. "\u05E5", "afii57685",
  716. "\u05E6", "afii57686",
  717. "\u05E7", "afii57687",
  718. "\u05E8", "afii57688",
  719. "\u05E9", "afii57689",
  720. "\u05EA", "afii57690",
  721. "\uFB2A", "afii57694",
  722. "\uFB2B", "afii57695",
  723. "\uFB4B", "afii57700",
  724. "\uFB1F", "afii57705",
  725. "\u05F0", "afii57716",
  726. "\u05F1", "afii57717",
  727. "\u05F2", "afii57718",
  728. "\uFB35", "afii57723",
  729. "\u05B4", "afii57793",
  730. "\u05B5", "afii57794",
  731. "\u05B6", "afii57795",
  732. "\u05BB", "afii57796",
  733. "\u05B8", "afii57797",
  734. "\u05B7", "afii57798",
  735. "\u05B0", "afii57799",
  736. "\u05B2", "afii57800",
  737. "\u05B1", "afii57801",
  738. "\u05B3", "afii57802",
  739. "\u05C2", "afii57803",
  740. "\u05C1", "afii57804",
  741. "\u05B9", "afii57806",
  742. "\u05BC", "afii57807",
  743. "\u05BD", "afii57839",
  744. "\u05BF", "afii57841",
  745. "\u05C0", "afii57842",
  746. "\u02BC", "afii57929",
  747. "\u2105", "afii61248",
  748. "\u2113", "afii61289",
  749. "\u2116", "afii61352",
  750. "\u202C", "afii61573",
  751. "\u202D", "afii61574",
  752. "\u202E", "afii61575",
  753. "\u200C", "afii61664",
  754. "\u066D", "afii63167",
  755. "\u02BD", "afii64937",
  756. "\u00E0", "agrave",
  757. "\u2135", "aleph",
  758. "\u03B1", "alpha",
  759. "\u03AC", "alphatonos",
  760. "\u0101", "amacron",
  761. "\u0026", "ampersand",
  762. "\uF726", "ampersandsmall",
  763. "\u2220", "angle",
  764. "\u2329", "angleleft",
  765. "\u232A", "angleright",
  766. "\u0387", "anoteleia",
  767. "\u0105", "aogonek",
  768. "\u2248", "approxequal",
  769. "\u00E5", "aring",
  770. "\u01FB", "aringacute",
  771. "\u2194", "arrowboth",
  772. "\u21D4", "arrowdblboth",
  773. "\u21D3", "arrowdbldown",
  774. "\u21D0", "arrowdblleft",
  775. "\u21D2", "arrowdblright",
  776. "\u21D1", "arrowdblup",
  777. "\u2193", "arrowdown",
  778. "\uF8E7", "arrowhorizex",
  779. "\u2190", "arrowleft",
  780. "\u2192", "arrowright",
  781. "\u2191", "arrowup",
  782. "\u2195", "arrowupdn",
  783. "\u21A8", "arrowupdnbse",
  784. "\uF8E6", "arrowvertex",
  785. "\u005E", "asciicircum",
  786. "\u007E", "asciitilde",
  787. "\u002A", "asterisk",
  788. "\u2217", "asteriskmath",
  789. "\uF6E9", "asuperior",
  790. "\u0040", "at",
  791. "\u00E3", "atilde",
  792. "\u0062", "b",
  793. //"\u005C", "backslash",
  794. "\\", "backslash",
  795. "\u007C", "bar",
  796. "\u03B2", "beta",
  797. "\u2588", "block",
  798. "\uF8F4", "braceex",
  799. "\u007B", "braceleft",
  800. "\uF8F3", "braceleftbt",
  801. "\uF8F2", "braceleftmid",
  802. "\uF8F1", "bracelefttp",
  803. "\u007D", "braceright",
  804. "\uF8FE", "bracerightbt",
  805. "\uF8FD", "bracerightmid",
  806. "\uF8FC", "bracerighttp",
  807. "\u005B", "bracketleft",
  808. "\uF8F0", "bracketleftbt",
  809. "\uF8EF", "bracketleftex",
  810. "\uF8EE", "bracketlefttp",
  811. "\u005D", "bracketright",
  812. "\uF8FB", "bracketrightbt",
  813. "\uF8FA", "bracketrightex",
  814. "\uF8F9", "bracketrighttp",
  815. "\u02D8", "breve",
  816. "\u00A6", "brokenbar",
  817. "\uF6EA", "bsuperior",
  818. "\u2022", "bullet",
  819. "\u0063", "c",
  820. "\u0107", "cacute",
  821. "\u02C7", "caron",
  822. "\u21B5", "carriagereturn",
  823. "\u010D", "ccaron",
  824. "\u00E7", "ccedilla",
  825. "\u0109", "ccircumflex",
  826. "\u010B", "cdotaccent",
  827. "\u00B8", "cedilla",
  828. "\u00A2", "cent",
  829. "\uF6DF", "centinferior",
  830. "\uF7A2", "centoldstyle",
  831. "\uF6E0", "centsuperior",
  832. "\u03C7", "chi",
  833. "\u25CB", "circle",
  834. "\u2297", "circlemultiply",
  835. "\u2295", "circleplus",
  836. "\u02C6", "circumflex",
  837. "\u2663", "club",
  838. "\u003A", "colon",
  839. "\u20A1", "colonmonetary",
  840. "\u002C", "comma",
  841. "\uF6C3", "commaaccent",
  842. "\uF6E1", "commainferior",
  843. "\uF6E2", "commasuperior",
  844. "\u2245", "congruent",
  845. "\u00A9", "copyright",
  846. "\uF8E9", "copyrightsans",
  847. "\uF6D9", "copyrightserif",
  848. "\u00A4", "currency",
  849. "\uF6D1", "cyrBreve",
  850. "\uF6D2", "cyrFlex",
  851. "\uF6D4", "cyrbreve",
  852. "\uF6D5", "cyrflex",
  853. "\u0064", "d",
  854. "\u2020", "dagger",
  855. "\u2021", "daggerdbl",
  856. "\uF6D3", "dblGrave",
  857. "\uF6D6", "dblgrave",
  858. "\u010F", "dcaron",
  859. "\u0111", "dcroat",
  860. "\u00B0", "degree",
  861. "\u03B4", "delta",
  862. "\u2666", "diamond",
  863. "\u00A8", "dieresis",
  864. "\uF6D7", "dieresisacute",
  865. "\uF6D8", "dieresisgrave",
  866. "\u0385", "dieresistonos",
  867. "\u00F7", "divide",
  868. "\u2593", "dkshade",
  869. "\u2584", "dnblock",
  870. "\u0024", "dollar",
  871. "\uF6E3", "dollarinferior",
  872. "\uF724", "dollaroldstyle",
  873. "\uF6E4", "dollarsuperior",
  874. "\u20AB", "dong",
  875. "\u02D9", "dotaccent",
  876. "\u0323", "dotbelowcomb",
  877. "\u0131", "dotlessi",
  878. "\uF6BE", "dotlessj",
  879. "\u22C5", "dotmath",
  880. "\uF6EB", "dsuperior",
  881. "\u0065", "e",
  882. "\u00E9", "eacute",
  883. "\u0115", "ebreve",
  884. "\u011B", "ecaron",
  885. "\u00EA", "ecircumflex",
  886. "\u00EB", "edieresis",
  887. "\u0117", "edotaccent",
  888. "\u00E8", "egrave",
  889. "\u0038", "eight",
  890. "\u2088", "eightinferior",
  891. "\uF738", "eightoldstyle",
  892. "\u2078", "eightsuperior",
  893. "\u2208", "element",
  894. "\u2026", "ellipsis",
  895. "\u0113", "emacron",
  896. "\u2014", "emdash",
  897. "\u2205", "emptyset",
  898. "\u2013", "endash",
  899. "\u014B", "eng",
  900. "\u0119", "eogonek",
  901. "\u03B5", "epsilon",
  902. "\u03AD", "epsilontonos",
  903. "\u003D", "equal",
  904. "\u2261", "equivalence",
  905. "\u212E", "estimated",
  906. "\uF6EC", "esuperior",
  907. "\u03B7", "eta",
  908. "\u03AE", "etatonos",
  909. "\u00F0", "eth",
  910. "\u0021", "exclam",
  911. "\u203C", "exclamdbl",
  912. "\u00A1", "exclamdown",
  913. "\uF7A1", "exclamdownsmall",
  914. "\uF721", "exclamsmall",
  915. "\u2203", "existential",
  916. "\u0066", "f",
  917. "\u2640", "female",
  918. "\uFB00", "ff",
  919. "\uFB03", "ffi",
  920. "\uFB04", "ffl",
  921. "\uFB01", "fi",
  922. "\u2012", "figuredash",
  923. "\u25A0", "filledbox",
  924. "\u25AC", "filledrect",
  925. "\u0035", "five",
  926. "\u215D", "fiveeighths",
  927. "\u2085", "fiveinferior",
  928. "\uF735", "fiveoldstyle",
  929. "\u2075", "fivesuperior",
  930. "\uFB02", "fl",
  931. "\u0192", "florin",
  932. "\u0034", "four",
  933. "\u2084", "fourinferior",
  934. "\uF734", "fouroldstyle",
  935. "\u2074", "foursuperior",
  936. "\u2044", "fraction",
  937. "\u2215", "fraction",
  938. "\u20A3", "franc",
  939. "\u0067", "g",
  940. "\u03B3", "gamma",
  941. "\u011F", "gbreve",
  942. "\u01E7", "gcaron",
  943. "\u011D", "gcircumflex",
  944. "\u0123", "gcommaaccent",
  945. "\u0121", "gdotaccent",
  946. "\u00DF", "germandbls",
  947. "\u2207", "gradient",
  948. "\u0060", "grave",
  949. "\u0300", "gravecomb",
  950. "\u003E", "greater",
  951. "\u2265", "greaterequal",
  952. "\u00AB", "guillemotleft",
  953. "\u00BB", "guillemotright",
  954. "\u2039", "guilsinglleft",
  955. "\u203A", "guilsinglright",
  956. "\u0068", "h",
  957. "\u0127", "hbar",
  958. "\u0125", "hcircumflex",
  959. "\u2665", "heart",
  960. "\u0309", "hookabovecomb",
  961. "\u2302", "house",
  962. "\u02DD", "hungarumlaut",
  963. "\u002D", "hyphen",
  964. "\u00AD", "hyphen",
  965. "\uF6E5", "hypheninferior",
  966. "\uF6E6", "hyphensuperior",
  967. "\u0069", "i",
  968. "\u00ED", "iacute",
  969. "\u012D", "ibreve",
  970. "\u00EE", "icircumflex",
  971. "\u00EF", "idieresis",
  972. "\u00EC", "igrave",
  973. "\u0133", "ij",
  974. "\u012B", "imacron",
  975. "\u221E", "infinity",
  976. "\u222B", "integral",
  977. "\u2321", "integralbt",
  978. "\uF8F5", "integralex",
  979. "\u2320", "integraltp",
  980. "\u2229", "intersection",
  981. "\u25D8", "invbullet",
  982. "\u25D9", "invcircle",
  983. "\u263B", "invsmileface",
  984. "\u012F", "iogonek",
  985. "\u03B9", "iota",
  986. "\u03CA", "iotadieresis",
  987. "\u0390", "iotadieresistonos",
  988. "\u03AF", "iotatonos",
  989. "\uF6ED", "isuperior",
  990. "\u0129", "itilde",
  991. "\u006A", "j",
  992. "\u0135", "jcircumflex",
  993. "\u006B", "k",
  994. "\u03BA", "kappa",
  995. "\u0137", "kcommaaccent",
  996. "\u0138", "kgreenlandic",
  997. "\u006C", "l",
  998. "\u013A", "lacute",
  999. "\u03BB", "lambda",
  1000. "\u013E", "lcaron",
  1001. "\u013C", "lcommaaccent",
  1002. "\u0140", "ldot",
  1003. "\u003C", "less",
  1004. "\u2264", "lessequal",
  1005. "\u258C", "lfblock",
  1006. "\u20A4", "lira",
  1007. "\uF6C0", "ll",
  1008. "\u2227", "logicaland",
  1009. "\u00AC", "logicalnot",
  1010. "\u2228", "logicalor",
  1011. "\u017F", "longs",
  1012. "\u25CA", "lozenge",
  1013. "\u0142", "lslash",
  1014. "\uF6EE", "lsuperior",
  1015. "\u2591", "ltshade",
  1016. "\u006D", "m",
  1017. "\u00AF", "macron",
  1018. "\u02C9", "macron",
  1019. "\u2642", "male",
  1020. "\u2212", "minus",
  1021. "\u2032", "minute",
  1022. "\uF6EF", "msuperior",
  1023. "\u00B5", "mu",
  1024. "\u03BC", "mu",
  1025. "\u00D7", "multiply",
  1026. "\u266A", "musicalnote",
  1027. "\u266B", "musicalnotedbl",
  1028. "\u006E", "n",
  1029. "\u0144", "nacute",
  1030. "\u0149", "napostrophe",
  1031. "\u0148", "ncaron",
  1032. "\u0146", "ncommaaccent",
  1033. "\u0039", "nine",
  1034. "\u2089", "nineinferior",
  1035. "\uF739", "nineoldstyle",
  1036. "\u2079", "ninesuperior",
  1037. "\u2209", "notelement",
  1038. "\u2260", "notequal",
  1039. "\u2284", "notsubset",
  1040. "\u207F", "nsuperior",
  1041. "\u00F1", "ntilde",
  1042. "\u03BD", "nu",
  1043. "\u0023", "numbersign",
  1044. "\u006F", "o",
  1045. "\u00F3", "oacute",
  1046. "\u014F", "obreve",
  1047. "\u00F4", "ocircumflex",
  1048. "\u00F6", "odieresis",
  1049. "\u0153", "oe",
  1050. "\u02DB", "ogonek",
  1051. "\u00F2", "ograve",
  1052. "\u01A1", "ohorn",
  1053. "\u0151", "ohungarumlaut",
  1054. "\u014D", "omacron",
  1055. "\u03C9", "omega",
  1056. "\u03D6", "omega1",
  1057. "\u03CE", "omegatonos",
  1058. "\u03BF", "omicron",
  1059. "\u03CC", "omicrontonos",
  1060. "\u0031", "one",
  1061. "\u2024", "onedotenleader",
  1062. "\u215B", "oneeighth",
  1063. "\uF6DC", "onefitted",
  1064. "\u00BD", "onehalf",
  1065. "\u2081", "oneinferior",
  1066. "\uF731", "oneoldstyle",
  1067. "\u00BC", "onequarter",
  1068. "\u00B9", "onesuperior",
  1069. "\u2153", "onethird",
  1070. "\u25E6", "openbullet",
  1071. "\u00AA", "ordfeminine",
  1072. "\u00BA", "ordmasculine",
  1073. "\u221F", "orthogonal",
  1074. "\u00F8", "oslash",
  1075. "\u01FF", "oslashacute",
  1076. "\uF6F0", "osuperior",
  1077. "\u00F5", "otilde",
  1078. "\u0070", "p",
  1079. "\u00B6", "paragraph",
  1080. "\u0028", "parenleft",
  1081. "\uF8ED", "parenleftbt",
  1082. "\uF8EC", "parenleftex",
  1083. "\u208D", "parenleftinferior",
  1084. "\u207D", "parenleftsuperior",
  1085. "\uF8EB", "parenlefttp",
  1086. "\u0029", "parenright",
  1087. "\uF8F8", "parenrightbt",
  1088. "\uF8F7", "parenrightex",
  1089. "\u208E", "parenrightinferior",
  1090. "\u207E", "parenrightsuperior",
  1091. "\uF8F6", "parenrighttp",
  1092. "\u2202", "partialdiff",
  1093. "\u0025", "percent",
  1094. "\u002E", "period",
  1095. "\u00B7", "periodcentered",
  1096. "\u2219", "periodcentered",
  1097. "\uF6E7", "periodinferior",
  1098. "\uF6E8", "periodsuperior",
  1099. "\u22A5", "perpendicular",
  1100. "\u2030", "perthousand",
  1101. "\u20A7", "peseta",
  1102. "\u03C6", "phi",
  1103. "\u03D5", "phi1",
  1104. "\u03C0", "pi",
  1105. "\u002B", "plus",
  1106. "\u00B1", "plusminus",
  1107. "\u211E", "prescription",
  1108. "\u220F", "product",
  1109. "\u2282", "propersubset",
  1110. "\u2283", "propersuperset",
  1111. "\u221D", "proportional",
  1112. "\u03C8", "psi",
  1113. "\u0071", "q",
  1114. "\u003F", "question",
  1115. "\u00BF", "questiondown",
  1116. "\uF7BF", "questiondownsmall",
  1117. "\uF73F", "questionsmall",
  1118. "\"", "quotedbl",
  1119. // "\u0022", "quotedbl",
  1120. "\u201E", "quotedblbase",
  1121. "\u201C", "quotedblleft",
  1122. "\u201D", "quotedblright",
  1123. "\u2018", "quoteleft",
  1124. "\u201B", "quotereversed",
  1125. "\u2019", "quoteright",
  1126. "\u201A", "quotesinglbase",
  1127. "\u0027", "quotesingle",
  1128. "\u0072", "r",
  1129. "\u0155", "racute",
  1130. "\u221A", "radical",
  1131. "\uF8E5", "radicalex",
  1132. "\u0159", "rcaron",
  1133. "\u0157", "rcommaaccent",
  1134. "\u2286", "reflexsubset",
  1135. "\u2287", "reflexsuperset",
  1136. "\u00AE", "registered",
  1137. "\uF8E8", "registersans",
  1138. "\uF6DA", "registerserif",
  1139. "\u2310", "revlogicalnot",
  1140. "\u03C1", "rho",
  1141. "\u02DA", "ring",
  1142. "\uF6F1", "rsuperior",
  1143. "\u2590", "rtblock",
  1144. "\uF6DD", "rupiah",
  1145. "\u0073", "s",
  1146. "\u015B", "sacute",
  1147. "\u0161", "scaron",
  1148. "\u015F", "scedilla",
  1149. "\uF6C2", "scedilla",
  1150. "\u015D", "scircumflex",
  1151. "\u0219", "scommaaccent",
  1152. "\u2033", "second",
  1153. "\u00A7", "section",
  1154. "\u003B", "semicolon",
  1155. "\u0037", "seven",
  1156. "\u215E", "seveneighths",
  1157. "\u2087", "seveninferior",
  1158. "\uF737", "sevenoldstyle",
  1159. "\u2077", "sevensuperior",
  1160. "\u2592", "shade",
  1161. "\u03C3", "sigma",
  1162. "\u03C2", "sigma1",
  1163. "\u223C", "similar",
  1164. "\u0036", "six",
  1165. "\u2086", "sixinferior",
  1166. "\uF736", "sixoldstyle",
  1167. "\u2076", "sixsuperior",
  1168. "\u002F", "slash",
  1169. "\u263A", "smileface",
  1170. "\u0020", "space",
  1171. "\u00A0", "space",
  1172. "\u2660", "spade",
  1173. "\uF6F2", "ssuperior",
  1174. "\u00A3", "sterling",
  1175. "\u220B", "suchthat",
  1176. "\u2211", "summation",
  1177. "\u263C", "sun",
  1178. "\u0074", "t",
  1179. "\u03C4", "tau",
  1180. "\u0167", "tbar",
  1181. "\u0165", "tcaron",
  1182. "\u0163", "tcommaaccent",
  1183. "\u021B", "tcommaaccent",
  1184. "\u2234", "therefore",
  1185. "\u03B8", "theta",
  1186. "\u03D1", "theta1",
  1187. "\u00FE", "thorn",
  1188. "\u0033", "three",
  1189. "\u215C", "threeeighths",
  1190. "\u2083", "threeinferior",
  1191. "\uF733", "threeoldstyle",
  1192. "\u00BE", "threequarters",
  1193. "\uF6DE", "threequartersemdash",
  1194. "\u00B3", "threesuperior",
  1195. "\u02DC", "tilde",
  1196. "\u0303", "tildecomb",
  1197. "\u0384", "tonos",
  1198. "\u2122", "trademark",
  1199. "\uF8EA", "trademarksans",
  1200. "\uF6DB", "trademarkserif",
  1201. "\u25BC", "triagdn",
  1202. "\u25C4", "triaglf",
  1203. "\u25BA", "triagrt",
  1204. "\u25B2", "triagup",
  1205. "\uF6F3", "tsuperior",
  1206. "\u0032", "two",
  1207. "\u2025", "twodotenleader",
  1208. "\u2082", "twoinferior",
  1209. "\uF732", "twooldstyle",
  1210. "\u00B2", "twosuperior",
  1211. "\u2154", "twothirds",
  1212. "\u0075", "u",
  1213. "\u00FA", "uacute",
  1214. "\u016D", "ubreve",
  1215. "\u00FB", "ucircumflex",
  1216. "\u00FC", "udieresis",
  1217. "\u00F9", "ugrave",
  1218. "\u01B0", "uhorn",
  1219. "\u0171", "uhungarumlaut",
  1220. "\u016B", "umacron",
  1221. "\u005F", "underscore",
  1222. "\u2017", "underscoredbl",
  1223. "\u222A", "union",
  1224. "\u2200", "universal",
  1225. "\u0173", "uogonek",
  1226. "\u2580", "upblock",
  1227. "\u03C5", "upsilon",
  1228. "\u03CB", "upsilondieresis",
  1229. "\u03B0", "upsilondieresistonos",
  1230. "\u03CD", "upsilontonos",
  1231. "\u016F", "uring",
  1232. "\u0169", "utilde",
  1233. "\u0076", "v",
  1234. "\u0077", "w",
  1235. "\u1E83", "wacute",
  1236. "\u0175", "wcircumflex",
  1237. "\u1E85", "wdieresis",
  1238. "\u2118", "weierstrass",
  1239. "\u1E81", "wgrave",
  1240. "\u0078", "x",
  1241. "\u03BE", "xi",
  1242. "\u0079", "y",
  1243. "\u00FD", "yacute",
  1244. "\u0177", "ycircumflex",
  1245. "\u00FF", "ydieresis",
  1246. "\u00A5", "yen",
  1247. "\u1EF3", "ygrave",
  1248. "\u007A", "z",
  1249. "\u017A", "zacute",
  1250. "\u017E", "zcaron",
  1251. "\u017C", "zdotaccent",
  1252. "\u0030", "zero",
  1253. "\u2080", "zeroinferior",
  1254. "\uF730", "zerooldstyle",
  1255. "\u2070", "zerosuperior",
  1256. "\u03B6", "zeta"
  1257. };
  1258. /**
  1259. * Return the glyphname from a character,
  1260. * eg, charToGlyphName('\\') returns "backslash"
  1261. *
  1262. * @param ch glyph to evaluate
  1263. * @return the name of the glyph
  1264. */
  1265. public static final String charToGlyphName(char ch) {
  1266. return stringToGlyph(new Character(ch).toString());
  1267. }
  1268. /**
  1269. * Return the glyphname from a string,
  1270. * eg, glyphToString("\\") returns "backslash"
  1271. *
  1272. * @param name glyph to evaluate
  1273. * @return the name of the glyph
  1274. * TODO: javadocs for glyphToString and stringToGlyph are confused
  1275. * TODO: Improve method names
  1276. */
  1277. public static final String glyphToString(String name) {
  1278. for (int i = 0; i < UNICODE_GLYPHS.length; i += 2) {
  1279. if (UNICODE_GLYPHS[i + 1].equals(name)) {
  1280. return UNICODE_GLYPHS[i];
  1281. }
  1282. }
  1283. return "";
  1284. }
  1285. /**
  1286. * Return the string representation of a glyphname,
  1287. * eg stringToGlyph("backslash") returns "\\"
  1288. *
  1289. * @param name name of the glyph
  1290. * @return the string representation
  1291. */
  1292. public static String stringToGlyph(String name) {
  1293. for (int i = 0; i < UNICODE_GLYPHS.length; i += 2) {
  1294. if (UNICODE_GLYPHS[i].equals(name)) {
  1295. return UNICODE_GLYPHS[i + 1];
  1296. }
  1297. }
  1298. return "";
  1299. }
  1300. }