smallcaps.h 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. // Copyright (C) 2004-2021 Artifex Software, Inc.
  2. //
  3. // This file is part of MuPDF.
  4. //
  5. // MuPDF is free software: you can redistribute it and/or modify it under the
  6. // terms of the GNU Affero General Public License as published by the Free
  7. // Software Foundation, either version 3 of the License, or (at your option)
  8. // any later version.
  9. //
  10. // MuPDF is distributed in the hope that it will be useful, but WITHOUT ANY
  11. // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  12. // FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
  13. // details.
  14. //
  15. // You should have received a copy of the GNU Affero General Public License
  16. // along with MuPDF. If not, see <https://www.gnu.org/licenses/agpl-3.0.en.html>
  17. //
  18. // Alternative licensing terms are available from the licensor.
  19. // For commercial licensing, see <https://www.artifex.com/> or contact
  20. // Artifex Software, Inc., 39 Mesa Street, Suite 108A, San Francisco,
  21. // CA 94129, USA, for further information.
  22. static const struct { unsigned short u; const char *n; } glyph_name_from_unicode_sc[] = {
  23. {0x0061, "a.sc"},
  24. {0x0062, "b.sc"},
  25. {0x0063, "c.sc"},
  26. {0x0064, "d.sc"},
  27. {0x0065, "e.sc"},
  28. {0x0066, "f.sc"},
  29. {0x0067, "g.sc"},
  30. {0x0068, "h.sc"},
  31. {0x0069, "i.sc"},
  32. {0x006A, "j.sc"},
  33. {0x006B, "k.sc"},
  34. {0x006C, "l.sc"},
  35. {0x006D, "m.sc"},
  36. {0x006E, "n.sc"},
  37. {0x006F, "o.sc"},
  38. {0x0070, "p.sc"},
  39. {0x0071, "q.sc"},
  40. {0x0072, "r.sc"},
  41. {0x0073, "s.sc"},
  42. {0x0074, "t.sc"},
  43. {0x0075, "u.sc"},
  44. {0x0076, "v.sc"},
  45. {0x0077, "w.sc"},
  46. {0x0078, "x.sc"},
  47. {0x0079, "y.sc"},
  48. {0x007A, "z.sc"},
  49. {0x00DF, "germandbls.sc"},
  50. {0x00E0, "agrave.sc"},
  51. {0x00E1, "aacute.sc"},
  52. {0x00E2, "acircumflex.sc"},
  53. {0x00E3, "atilde.sc"},
  54. {0x00E4, "adieresis.sc"},
  55. {0x00E5, "aring.sc"},
  56. {0x00E6, "ae.sc"},
  57. {0x00E7, "ccedilla.sc"},
  58. {0x00E8, "egrave.sc"},
  59. {0x00E9, "eacute.sc"},
  60. {0x00EA, "ecircumflex.sc"},
  61. {0x00EB, "edieresis.sc"},
  62. {0x00EC, "igrave.sc"},
  63. {0x00ED, "iacute.sc"},
  64. {0x00EE, "icircumflex.sc"},
  65. {0x00EF, "idieresis.sc"},
  66. {0x00F0, "eth.sc"},
  67. {0x00F1, "ntilde.sc"},
  68. {0x00F2, "ograve.sc"},
  69. {0x00F3, "oacute.sc"},
  70. {0x00F4, "ocircumflex.sc"},
  71. {0x00F5, "otilde.sc"},
  72. {0x00F6, "odieresis.sc"},
  73. {0x00F8, "oslash.sc"},
  74. {0x00F9, "ugrave.sc"},
  75. {0x00FA, "uacute.sc"},
  76. {0x00FB, "ucircumflex.sc"},
  77. {0x00FC, "udieresis.sc"},
  78. {0x00FD, "yacute.sc"},
  79. {0x00FE, "thorn.sc"},
  80. {0x00FF, "ydieresis.sc"},
  81. {0x0101, "amacron.sc"},
  82. {0x0103, "abreve.sc"},
  83. {0x0105, "aogonek.sc"},
  84. {0x0107, "cacute.sc"},
  85. {0x0109, "ccircumflex.sc"},
  86. {0x010B, "cdot.sc"},
  87. {0x010B, "cdotaccent.sc"},
  88. {0x010D, "ccaron.sc"},
  89. {0x010F, "dcaron.sc"},
  90. {0x0111, "dcroat.sc"},
  91. {0x0113, "emacron.sc"},
  92. {0x0115, "ebreve.sc"},
  93. {0x0117, "edotaccent.sc"},
  94. {0x0119, "eogonek.sc"},
  95. {0x011B, "ecaron.sc"},
  96. {0x011D, "gcircumflex.sc"},
  97. {0x011F, "gbreve.sc"},
  98. {0x0121, "gdotaccent.sc"},
  99. {0x0123, "gcedilla.sc"},
  100. {0x0125, "hcircumflex.sc"},
  101. {0x0127, "hbar.sc"},
  102. {0x0129, "itilde.sc"},
  103. {0x012B, "imacron.sc"},
  104. {0x012D, "ibreve.sc"},
  105. {0x012F, "iogonek.sc"},
  106. {0x0131, "dotlessi.sc"},
  107. {0x0133, "ij.sc"},
  108. {0x0135, "jcircumflex.sc"},
  109. {0x0137, "kcedilla.sc"},
  110. {0x0138, "kgreenlandic.sc"},
  111. {0x013A, "lacute.sc"},
  112. {0x013C, "lcedilla.sc"},
  113. {0x013E, "lcaron.sc"},
  114. {0x0140, "ldotaccent.sc"},
  115. {0x0142, "lslash.sc"},
  116. {0x0144, "nacute.sc"},
  117. {0x0146, "ncedilla.sc"},
  118. {0x0148, "ncaron.sc"},
  119. {0x0149, "napostrophe.sc"},
  120. {0x0149, "quoterightn.sc"},
  121. {0x014B, "eng.sc"},
  122. {0x014D, "omacron.sc"},
  123. {0x014F, "obreve.sc"},
  124. {0x0151, "ohungarumlaut.sc"},
  125. {0x0153, "oe.sc"},
  126. {0x0155, "racute.sc"},
  127. {0x0157, "rcedilla.sc"},
  128. {0x0159, "rcaron.sc"},
  129. {0x015B, "sacute.sc"},
  130. {0x015D, "scircumflex.sc"},
  131. {0x015F, "scedilla.sc"},
  132. {0x0161, "scaron.sc"},
  133. {0x0163, "tcedilla.sc"},
  134. {0x0165, "tcaron.sc"},
  135. {0x0167, "tbar.sc"},
  136. {0x0169, "utilde.sc"},
  137. {0x016B, "umacron.sc"},
  138. {0x016D, "ubreve.sc"},
  139. {0x016F, "uring.sc"},
  140. {0x0171, "uhungarumlaut.sc"},
  141. {0x0173, "uogonek.sc"},
  142. {0x0175, "wcircumflex.sc"},
  143. {0x0177, "ycircumflex.sc"},
  144. {0x017A, "zacute.sc"},
  145. {0x017C, "zdotaccent.sc"},
  146. {0x017E, "zcaron.sc"},
  147. {0x017F, "longs.sc"},
  148. {0x017F, "slong.sc"},
  149. {0x0192, "florin.sc"},
  150. {0x01DF, "adieresismacron.sc"},
  151. {0x01E1, "adotmacron.sc"},
  152. {0x01E3, "aemacron.sc"},
  153. {0x01E5, "gstroke.sc"},
  154. {0x01E7, "gcaron.sc"},
  155. {0x01E9, "kcaron.sc"},
  156. {0x01EB, "oogonek.sc"},
  157. {0x01ED, "oogonekmacron.sc"},
  158. {0x01EF, "ezhcaron.sc"},
  159. {0x01FB, "aringacute.sc"},
  160. {0x01FD, "aeacute.sc"},
  161. {0x01FF, "oslashacute.sc"},
  162. {0x0219, "scommaaccent.sc"},
  163. {0x0259, "schwa.sc"},
  164. {0x027C, "rlongleg.sc"},
  165. {0x0292, "ezh.sc"},
  166. {0x0390, "iotadieresistonos.sc"},
  167. {0x03AC, "alphatonos.sc"},
  168. {0x03AD, "epsilontonos.sc"},
  169. {0x03AE, "etatonos.sc"},
  170. {0x03AF, "iotatonos.sc"},
  171. {0x03B0, "upsilondieresistonos.sc"},
  172. {0x03B1, "alpha.sc"},
  173. {0x03B2, "beta.sc"},
  174. {0x03B3, "gamma.sc"},
  175. {0x03B4, "delta.sc"},
  176. {0x03B5, "epsilon.sc"},
  177. {0x03B6, "zeta.sc"},
  178. {0x03B7, "eta.sc"},
  179. {0x03B8, "theta.sc"},
  180. {0x03B9, "iota.sc"},
  181. {0x03BA, "kappa.sc"},
  182. {0x03BB, "lambda.sc"},
  183. {0x03BC, "mugreek.sc"},
  184. {0x03BD, "nu.sc"},
  185. {0x03BE, "xi.sc"},
  186. {0x03BF, "omicron.sc"},
  187. {0x03C0, "pi.sc"},
  188. {0x03C1, "rho.sc"},
  189. {0x03C2, "sigmafinal.sc"},
  190. {0x03C3, "sigma.sc"},
  191. {0x03C4, "tau.sc"},
  192. {0x03C5, "upsilon.sc"},
  193. {0x03C6, "phi.sc"},
  194. {0x03C7, "chi.sc"},
  195. {0x03C8, "psi.sc"},
  196. {0x03C9, "omega.sc"},
  197. {0x03CA, "iotadieresis.sc"},
  198. {0x03CB, "upsilondieresis.sc"},
  199. {0x03CC, "omicrontonos.sc"},
  200. {0x03CD, "upsilontonos.sc"},
  201. {0x03CE, "omegatonos.sc"},
  202. {0x0430, "acyrillic.sc"},
  203. {0x0431, "becyrillic.sc"},
  204. {0x0432, "vecyrillic.sc"},
  205. {0x0433, "gecyrillic.sc"},
  206. {0x0434, "decyrillic.sc"},
  207. {0x0435, "iecyrillic.sc"},
  208. {0x0436, "zhecyrillic.sc"},
  209. {0x0437, "zecyrillic.sc"},
  210. {0x0438, "iicyrillic.sc"},
  211. {0x0439, "iishortcyrillic.sc"},
  212. {0x043A, "kacyrillic.sc"},
  213. {0x043B, "elcyrillic.sc"},
  214. {0x043C, "emcyrillic.sc"},
  215. {0x043D, "encyrillic.sc"},
  216. {0x043E, "ocyrillic.sc"},
  217. {0x043F, "pecyrillic.sc"},
  218. {0x0440, "ercyrillic.sc"},
  219. {0x0441, "escyrillic.sc"},
  220. {0x0442, "tecyrillic.sc"},
  221. {0x0443, "ucyrillic.sc"},
  222. {0x0444, "efcyrillic.sc"},
  223. {0x0445, "khacyrillic.sc"},
  224. {0x0446, "tsecyrillic.sc"},
  225. {0x0447, "checyrillic.sc"},
  226. {0x0448, "shacyrillic.sc"},
  227. {0x0449, "shchacyrillic.sc"},
  228. {0x044A, "hardsigncyrillic.sc"},
  229. {0x044B, "yericyrillic.sc"},
  230. {0x044C, "softsigncyrillic.sc"},
  231. {0x044D, "ereversedcyrillic.sc"},
  232. {0x044E, "iucyrillic.sc"},
  233. {0x044F, "iacyrillic.sc"},
  234. {0x0451, "iocyrillic.sc"},
  235. {0x0452, "djecyrillic.sc"},
  236. {0x0453, "gjecyrillic.sc"},
  237. {0x0454, "ecyrillic.sc"},
  238. {0x0455, "dzecyrillic.sc"},
  239. {0x0456, "icyrillic.sc"},
  240. {0x0457, "yicyrillic.sc"},
  241. {0x0458, "jecyrillic.sc"},
  242. {0x0459, "ljecyrillic.sc"},
  243. {0x045A, "njecyrillic.sc"},
  244. {0x045B, "tshecyrillic.sc"},
  245. {0x045C, "kjecyrillic.sc"},
  246. {0x045E, "ushortcyrillic.sc"},
  247. {0x045F, "dzhecyrillic.sc"},
  248. {0x0491, "gheupturncyrillic.sc"},
  249. {0x0493, "ghestrokecyrillic.sc"},
  250. {0x0495, "ghemiddlehookcyrillic.sc"},
  251. {0x0497, "zhedescendercyrillic.sc"},
  252. {0x0499, "zedescendercyrillic.sc"},
  253. {0x049B, "kadescendercyrillic.sc"},
  254. {0x049D, "kaverticalstrokecyrillic.sc"},
  255. {0x049F, "kastrokecyrillic.sc"},
  256. {0x04A1, "kabashkircyrillic.sc"},
  257. {0x04A3, "endescendercyrillic.sc"},
  258. {0x04A5, "enghecyrillic.sc"},
  259. {0x04A7, "pemiddlehookcyrillic.sc"},
  260. {0x04A9, "haabkhasiancyrillic.sc"},
  261. {0x04AB, "esdescendercyrillic.sc"},
  262. {0x04AD, "tedescendercyrillic.sc"},
  263. {0x04AF, "ustraightcyrillic.sc"},
  264. {0x04B1, "ustraightstrokecyrillic.sc"},
  265. {0x04B3, "hadescendercyrillic.sc"},
  266. {0x04B5, "tetsecyrillic.sc"},
  267. {0x04B7, "chedescendercyrillic.sc"},
  268. {0x04B9, "cheverticalstrokecyrillic.sc"},
  269. {0x04BB, "shhacyrillic.sc"},
  270. {0x04BD, "cheabkhasiancyrillic.sc"},
  271. {0x04BF, "chedescenderabkhasiancyrillic.sc"},
  272. {0x04C2, "zhebrevecyrillic.sc"},
  273. {0x04C4, "kahookcyrillic.sc"},
  274. {0x04C8, "enhookcyrillic.sc"},
  275. {0x04CC, "chekhakassiancyrillic.sc"},
  276. {0x04D1, "abrevecyrillic.sc"},
  277. {0x04D3, "adieresiscyrillic.sc"},
  278. {0x04D5, "aiecyrillic.sc"},
  279. {0x04D7, "iebrevecyrillic.sc"},
  280. {0x04D9, "schwacyrillic.sc"},
  281. {0x04DB, "schwadieresiscyrillic.sc"},
  282. {0x04DD, "zhedieresiscyrillic.sc"},
  283. {0x04DF, "zedieresiscyrillic.sc"},
  284. {0x04E1, "dzeabkhasiancyrillic.sc"},
  285. {0x04E3, "imacroncyrillic.sc"},
  286. {0x04E5, "idieresiscyrillic.sc"},
  287. {0x04E7, "odieresiscyrillic.sc"},
  288. {0x04E9, "obarredcyrillic.sc"},
  289. {0x04EB, "obarreddieresiscyrillic.sc"},
  290. {0x04EF, "umacroncyrillic.sc"},
  291. {0x04F1, "udieresiscyrillic.sc"},
  292. {0x04F3, "uhungarumlautcyrillic.sc"},
  293. {0x04F5, "chedieresiscyrillic.sc"},
  294. {0x04F9, "yerudieresiscyrillic.sc"},
  295. {0x1E03, "bdotaccent.sc"},
  296. {0x1E0B, "ddotaccent.sc"},
  297. {0x1E1F, "fdotaccent.sc"},
  298. {0x1E41, "mdotaccent.sc"},
  299. {0x1E57, "pdotaccent.sc"},
  300. {0x1E61, "sdotaccent.sc"},
  301. {0x1E6B, "tdotaccent.sc"},
  302. {0x1E81, "wgrave.sc"},
  303. {0x1E83, "wacute.sc"},
  304. {0x1E85, "wdieresis.sc"},
  305. {0x1E9B, "slongdotaccent.sc"},
  306. {0x1EF3, "ygrave.sc"},
  307. {0x207F, "nsuperior.sc"},
  308. {0xFB00, "f_f.sc"},
  309. {0xFB01, "f_i.sc"},
  310. {0xFB02, "f_l.sc"},
  311. {0xFB03, "f_f_i.sc"},
  312. {0xFB04, "f_f_l.sc"},
  313. };