fontdata-extra.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415
  1. /* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
  2. /* vim: set ts=2 et sw=2 tw=80: */
  3. /*************************************************************
  4. *
  5. * MathJax/jax/output/HTML-CSS/fonts/STIX/fontdata-extra.js
  6. *
  7. * Adds extra stretchy characters to the STIX data.
  8. *
  9. * ---------------------------------------------------------------------
  10. *
  11. * Copyright (c) 2011-2013 The MathJax Consortium
  12. *
  13. * Licensed under the Apache License, Version 2.0 (the "License");
  14. * you may not use this file except in compliance with the License.
  15. * You may obtain a copy of the License at
  16. *
  17. * http://www.apache.org/licenses/LICENSE-2.0
  18. *
  19. * Unless required by applicable law or agreed to in writing, software
  20. * distributed under the License is distributed on an "AS IS" BASIS,
  21. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  22. * See the License for the specific language governing permissions and
  23. * limitations under the License.
  24. */
  25. (function (HTMLCSS) {
  26. var VERSION = "2.2";
  27. var DELIMITERS = HTMLCSS.FONTDATA.DELIMITERS;
  28. var GENERAL = "STIXGeneral",
  29. BOLD = "STIXGeneral-bold",
  30. VARIANT = "STIXVariants",
  31. NONUNI = "STIXNonUnicode",
  32. SIZE1 = "STIXSizeOneSym",
  33. SIZE2 = "STIXSizeTwoSym",
  34. SIZE3 = "STIXSizeThreeSym",
  35. SIZE4 = "STIXSizeFourSym",
  36. SIZE5 = "STIXSizeFiveSym";
  37. var H = "H", V = "V";
  38. var delim = {
  39. 0x003D: // equal sign
  40. {
  41. dir: H, HW: [[.685,GENERAL]], stretch: {rep:[0x003D,GENERAL]}
  42. },
  43. 0x219E: // left two-headed arrow
  44. {
  45. dir: H, HW: [[.926,GENERAL]], stretch: {left:[0x219E,GENERAL], rep:[0x2212,GENERAL]}
  46. },
  47. 0x21A0: // right two-headed arrow
  48. {
  49. dir: H, HW: [[.926,GENERAL]], stretch: {right:[0x21A0,GENERAL], rep:[0x2212,GENERAL]}
  50. },
  51. 0x21A4: // left arrow from bar
  52. {
  53. dir: H, HW: [[.926,GENERAL]],
  54. stretch: {left:[0x2190,VARIANT], rep:[0x2212,GENERAL], right:[0x22A3,BOLD,0,.1,.6]}
  55. },
  56. 0x21A5: // up arrow from bar
  57. {
  58. dir: V, HW: [[.816,GENERAL]],
  59. stretch: {bot:[0x5F,GENERAL,.05,-.01,.8], ext:[0x23D0,GENERAL], top:[0x2191,GENERAL]}
  60. },
  61. 0x21A6: // right arrow from bar
  62. {
  63. dir: H, HW: [[1,GENERAL]],
  64. stretch: {left:[0xE0B6,NONUNI], rep:[0x2212,GENERAL], right:[0x2192,GENERAL]}
  65. },
  66. 0x21A7: // down arrow from bar
  67. {
  68. dir: V, HW: [[.816,GENERAL]],
  69. stretch: {top:[0x22A4,BOLD,0.04,0,.6], ext:[0x23D0,GENERAL], bot:[0x2193,GENERAL]}
  70. },
  71. 0x21B0: // up arrow with top leftwards
  72. {
  73. dir: V, HW: [[.818,GENERAL]], stretch: {top:[0x21B0,GENERAL], ext:[0x23D0,GENERAL,.152]}
  74. },
  75. 0x21B1: // up arrow with top right
  76. {
  77. dir: V, HW: [[.818,GENERAL]], stretch: {top:[0x21B1,GENERAL], ext:[0x23D0,GENERAL,-.195]}
  78. },
  79. 0x21BC: // left harpoon with barb up
  80. {
  81. dir: H, HW: [[.955,GENERAL]], stretch: {left:[0x21BC,GENERAL], rep:[0x2212,GENERAL]}
  82. },
  83. 0x21BD: // left harpoon with barb down
  84. {
  85. dir: H, HW: [[.955,GENERAL]], stretch: {left:[0x21BD,GENERAL], rep:[0x2212,GENERAL]}
  86. },
  87. 0x21BE: // up harpoon with barb right
  88. {
  89. dir: V, HW: [[.818,GENERAL]], stretch: {top:[0x21BE,GENERAL], ext:[0x23D0,GENERAL]}
  90. },
  91. 0x21BF: // up harpoon with barb left
  92. {
  93. dir: V, HW: [[.818,GENERAL]], stretch: {top:[0x21BF,GENERAL], ext:[0x23D0,GENERAL]}
  94. },
  95. 0x21C0: // right harpoon with barb up
  96. {
  97. dir: H, HW: [[.955,GENERAL]], stretch: {right:[0x21C0,GENERAL], rep:[0x2212,GENERAL]}
  98. },
  99. 0x21C1: // right harpoon with barb down
  100. {
  101. dir: H, HW: [[.955,GENERAL]], stretch: {right:[0x21C1,GENERAL], rep:[0x2212,GENERAL]}
  102. },
  103. 0x21C2: // down harpoon with barb right
  104. {
  105. dir: V, HW: [[.818,GENERAL]], stretch: {bot:[0x21C2,GENERAL], ext:[0x23D0,GENERAL]}
  106. },
  107. 0x21C3: // down harpoon with barb left
  108. {
  109. dir: V, HW: [[.818,GENERAL]], stretch: {bot:[0x21C3,GENERAL], ext:[0x23D0,GENERAL]}
  110. },
  111. 0x21DA: // left triple arrow
  112. {
  113. dir: H, HW: [[.926,GENERAL]], stretch: {left:[0x21DA,GENERAL], rep:[0x2261,GENERAL]}
  114. },
  115. 0x21DB: // right triple arrow
  116. {
  117. dir: H, HW: [[.926,GENERAL]], stretch: {right:[0x21DB,GENERAL], rep:[0x2261,GENERAL]}
  118. },
  119. 0x23B4: // top square bracket
  120. {
  121. dir: H, HW: [[.926,GENERAL],[1.063,SIZE1],[1.606,SIZE2],[2.147,SIZE3],[2.692,SIZE4],[3.237,SIZE5]],
  122. stretch: {left:[0x2310,GENERAL], rep:[0x2212,GENERAL,0,.12], right:[0xAC,GENERAL]}
  123. },
  124. 0x23B5: // bottom square bracket
  125. {
  126. dir: H, HW: [[.926,GENERAL],[1.063,SIZE1],[1.606,SIZE2],[2.147,SIZE3],[2.692,SIZE4],[3.237,SIZE5]],
  127. stretch: {left:[0x2A3D,GENERAL,0,.12], rep:[0x2212,GENERAL,0,0,0,.12], right:[0x2A3C,GENERAL,0,.12]}
  128. },
  129. 0x23DC: // top paren
  130. {
  131. dir: H, HW: [[.926,SIZE1],[1,GENERAL],[1.460,SIZE2],[1.886,SIZE3],[2.328,SIZE4],[3.237,SIZE5]],
  132. stretch: {left:[0xE13B,NONUNI], right:[0xE13C,NONUNI], rep:[0xE14A,NONUNI]}
  133. },
  134. 0x23DD: // bottom paren
  135. {
  136. dir: H, HW: [[.926,SIZE1],[1,GENERAL],[1.460,SIZE2],[1.886,SIZE3],[2.328,SIZE4],[3.237,SIZE5]],
  137. stretch: {left:[0xE13D,NONUNI], right:[0xE13E,NONUNI], rep:[0xE14B,NONUNI]}
  138. },
  139. 0x23E0: // top tortoise shell
  140. {
  141. dir: H, HW: [[1,GENERAL],[1.460,SIZE1],[1.886,SIZE2],[2.312,SIZE3],[2.738,SIZE4],[3.164,SIZE5]],
  142. stretch: {left:[0xE10D,NONUNI,-.1,-.1], rep:[0x2212,GENERAL,0,.05], right:[0xE10C,NONUNI,0,-.1], fullExtenders:true}
  143. },
  144. 0x23E1: // bottom tortoise shell
  145. {
  146. dir: H, HW: [[1,GENERAL],[1.460,SIZE1],[1.886,SIZE2],[2.312,SIZE3],[2.738,SIZE4],[3.164,SIZE5]],
  147. stretch: {left:[0xE10C,NONUNI,-.1,.1], rep:[0x2212,GENERAL,0,-.1,0,.1], right:[0xE10D,NONUNI,0,.1], fullExtenders:true}
  148. },
  149. 0x2906: // leftwards double arrow from bar
  150. {
  151. dir: H, HW: [[.926,GENERAL]],
  152. stretch: {left:[0x21D0,GENERAL], rep:[0x3D,GENERAL], right:[0x2AE4,GENERAL,0,-.09]}
  153. },
  154. 0x2907: // rightwards double arrow from bar
  155. {
  156. dir: H, HW: [[.926,GENERAL]],
  157. stretch: {left:[0x22A8,GENERAL,0,-.09], rep:[0x3D,GENERAL], right:[0x21D2,GENERAL]}
  158. },
  159. 0x294E: // left barb up right barb up harpoon
  160. {
  161. dir: H, HW: [],
  162. stretch: {left:[0x21BC,GENERAL], rep:[0x2212,GENERAL], right:[0x21C0,GENERAL]}
  163. },
  164. 0x294F: // up barb right down barb right harpoon
  165. {
  166. dir: V, HW: [[.818,GENERAL]],
  167. stretch: {top:[0x21BE,GENERAL], ext:[0x23D0,GENERAL], bot:[0x21C2,GENERAL]}
  168. },
  169. 0x2950: // left barb dow right barb down harpoon
  170. {
  171. dir: H, HW: [[.926,GENERAL]],
  172. stretch: {left:[0x21BD,GENERAL], rep:[0x2212,GENERAL], right:[0x21C1,GENERAL]}
  173. },
  174. 0x2951: // up barb left down barb left harpoon
  175. {
  176. dir: V, HW: [[.818,GENERAL]],
  177. stretch: {top:[0x21BF,GENERAL], ext:[0x23D0,GENERAL], bot:[0x21C3,GENERAL]}
  178. },
  179. 0x295A: // leftwards harpoon with barb up from bar
  180. {
  181. dir: H, HW: [[.926,GENERAL]],
  182. stretch: {left:[0x21BC,GENERAL], rep:[0x2212,GENERAL], right:[0x22A3,BOLD,0,.1,.6]}
  183. },
  184. 0x295B: // rightwards harpoon with barb up from bar
  185. {
  186. dir: H, HW: [[.926,GENERAL]],
  187. stretch: {left:[0xE0B6,NONUNI], rep:[0x2212,GENERAL], right:[0x21C0,GENERAL]}
  188. },
  189. 0x295C: // up harpoon with barb right from bar
  190. {
  191. dir: V, HW: [[.818,GENERAL]],
  192. stretch: {bot:[0x5F,GENERAL,.05,-.01,.8], ext:[0x23D0,GENERAL], top:[0x21BE,GENERAL]}
  193. },
  194. 0x295D: // down harpoon with barb right from bar
  195. {
  196. dir: V, HW: [[.818,GENERAL]],
  197. stretch: {top:[0x22A4,BOLD,0.04,0,.6], ext:[0x23D0,GENERAL], bot:[0x21C2,GENERAL]}
  198. },
  199. 0x295E: // leftwards harpoon with barb down from bar
  200. {
  201. dir: H, HW: [[.926,GENERAL]],
  202. stretch: {left:[0x21BD,GENERAL], rep:[0x2212,GENERAL], right:[0x22A3,BOLD,0,.1,.6]}
  203. },
  204. 0x295F: // rightwards harpoon with barb down from bar
  205. {
  206. dir: H, HW: [[.926,GENERAL]],
  207. stretch: {left:[0xE0B6,NONUNI], rep:[0x2212,GENERAL], right:[0x21C1,GENERAL]}
  208. },
  209. 0x2960: // up harpoon with barb left from bar
  210. {
  211. dir: V, HW: [[.818,GENERAL]],
  212. stretch: {bot:[0x5F,GENERAL,.05,-.01,.8], ext:[0x23D0,GENERAL], top:[0x21BF,GENERAL]}
  213. },
  214. 0x2961: // down harpoon with barb left from bar
  215. {
  216. dir: V, HW: [[.818,GENERAL]],
  217. stretch: {top:[0x22A4,BOLD,0.04,0,.6], ext:[0x23D0,GENERAL], bot:[0x21C3,GENERAL]}
  218. },
  219. 0x02C7: // caron
  220. {
  221. dir: H, HW: [[.333,GENERAL],[.56,SIZE1],[.979,SIZE2],[1.458,SIZE3],[1.886,SIZE4],[2.328,SIZE5]]
  222. },
  223. 0x02CD: // low macron
  224. {
  225. dir: H, HW: [[.334,GENERAL]], stretch: {rep:[0x2CD,GENERAL]}
  226. },
  227. 0x02F7: // low tilde
  228. {
  229. dir: H, HW: [[.558,SIZE1],[.977,SIZE2],[1.458,SIZE3],[1.886,SIZE4],[2.328,SIZE5]]
  230. },
  231. 0x219F: // upwards two headed arrow
  232. {
  233. dir: V, HW: [[.816,GENERAL]], stretch: {ext:[0x23D0,GENERAL], top:[0x219F,GENERAL]}
  234. },
  235. 0x21A1: // downwards two headed arrow
  236. {
  237. dir: V, HW: [[.816,GENERAL]], stretch: {ext:[0x23D0,GENERAL], bot:[0x21A1,GENERAL]}
  238. },
  239. 0x21A8: // up down arrow with base
  240. {
  241. dir: V, HW: [[.816,GENERAL]],
  242. stretch: {top:[0x2191,GENERAL], ext:[0x23D0,GENERAL], bot:[0x2913,GENERAL]}
  243. },
  244. 0x21A9: // left hook arrow
  245. {
  246. dir: H, HW: [[.926,GENERAL]],
  247. stretch: {left:[0x2190,GENERAL], rep:[0x2212,GENERAL], right:[0xE0B5,NONUNI]}
  248. },
  249. 0x21AA: // right hook arrow
  250. {
  251. dir: H, HW: [[.926,GENERAL]],
  252. stretch: {left:[0xE0B4,NONUNI], rep:[0x2212,GENERAL], right:[0x2192,GENERAL]}
  253. },
  254. 0x21B2: // down arrow with tip left
  255. {
  256. dir: V, HW: [[.818,GENERAL]], stretch: {bot:[0x21B2,GENERAL], ext:[0x23D0,GENERAL,.152]}
  257. },
  258. 0x21B3: // down arrow with tip right
  259. {
  260. dir: V, HW: [[.818,GENERAL]], stretch: {bot:[0x21B3,GENERAL], ext:[0x23D0,GENERAL,-.195]}
  261. },
  262. 0x21B4: // right arrow with corner down
  263. {
  264. dir: H, HW: [[.926,GENERAL]], stretch: {rep:[0x2212,GENERAL,0,.4], right:[0x21B4,GENERAL]}
  265. },
  266. 0x21B5: // down arrow with corner left
  267. {
  268. dir: V, HW: [[.818,GENERAL]], stretch: {bot:[0x21B5,GENERAL], ext:[0x23D0,GENERAL,.57]}
  269. },
  270. 0x21CB: // left harpoon over right harpoon
  271. {
  272. dir: H, HW: [[.926,GENERAL]],
  273. stretch: {left:[0x296A,GENERAL], rep:[0x3D,GENERAL], right:[0x296D,GENERAL]}
  274. },
  275. 0x21CC: // right harpoon over left harpoon
  276. {
  277. dir: H, HW: [[.926,GENERAL]],
  278. stretch: {left:[0x296B,GENERAL], rep:[0x3D,GENERAL], right:[0x296C,GENERAL]}
  279. },
  280. 0x21E0: // left dashed arrow
  281. {
  282. dir: H, HW: [[.926,GENERAL]],
  283. stretch: {left:[0x21E0,GENERAL], rep:[0xE121,NONUNI,0,0,0,0,.1], fullExtenders:true}
  284. },
  285. 0x21E1: // up dashed arrow
  286. {
  287. dir: V, HW: [[.818,GENERAL]],
  288. stretch: {ext:[0xE12D,NONUNI], top:[0x21E1,GENERAL], fullExtenders: true}
  289. },
  290. 0x21E2: // right dashed arrow
  291. {
  292. dir: H, HW: [[.926,GENERAL]],
  293. stretch: {right:[0x21E2,VARIANT], rep:[0xE12E,NONUNI,0,0,0,0,.1], fullExtenders:true}
  294. },
  295. 0x21E3: // down dashed arrow
  296. {
  297. dir: V, HW: [[.818,GENERAL]],
  298. stretch: {ext:[0xE12C,NONUNI], bot:[0x21E3,GENERAL], fullExtenders: true}
  299. },
  300. 0x21E4: // left arrow to bar
  301. {
  302. dir: H, HW: [[.926,GENERAL]], stretch: {left:[0x21E4,GENERAL], rep:[0x2212,GENERAL]}
  303. },
  304. 0x21E5: // right arrow to bar
  305. {
  306. dir: H, HW: [[.926,GENERAL]], stretch: {right:[0x21E5,GENERAL], rep:[0x2212,GENERAL]}
  307. },
  308. 0x21FD: // left open-headed arrow
  309. {
  310. dir: H, HW: [[.926,GENERAL]], stretch: {left:[0x21FD,GENERAL], rep:[0x2212,GENERAL]}
  311. },
  312. 0x21FE: // right open-headed arrow
  313. {
  314. dir: H, HW: [[.926,GENERAL]], stretch: {right:[0x21FE,GENERAL], rep:[0x2212,GENERAL]}
  315. },
  316. 0x21FF: // left right open-headed arrow
  317. {
  318. dir: H, HW: [[.926,GENERAL]],
  319. stretch: {left:[0x21FD,GENERAL], rep:[0x2212,GENERAL], right:[0x21FE,GENERAL]}
  320. },
  321. 0x27E6: // left white square bracket
  322. {
  323. dir: V, HW: [[.93,GENERAL],[1.23,SIZE1],[1.845,SIZE2],[2.46,SIZE3],[3.075,SIZE4]],
  324. stretch: {top:[0x2553,GENERAL], ext:[0x2551,GENERAL], bot:[0x2559,GENERAL]}
  325. },
  326. 0x27E7: // right white square bracket
  327. {
  328. dir: V, HW: [[.93,GENERAL],[1.23,SIZE1],[1.845,SIZE2],[2.46,SIZE3],[3.075,SIZE4]],
  329. stretch: {top:[0x2556,GENERAL], ext:[0x2551,GENERAL], bot:[0x255C,GENERAL]}
  330. },
  331. 0x27EA: // left double angle bracket
  332. {
  333. dir: V, HW: [[.931,GENERAL],[1.23,SIZE1],[1.845,SIZE2],[2.461,SIZE3],[3.075,SIZE4]]
  334. },
  335. 0x27EB: // right double angle bracket
  336. {
  337. dir: V, HW: [[.931,GENERAL],[1.23,SIZE1],[1.845,SIZE2],[2.461,SIZE3],[3.075,SIZE4]]
  338. },
  339. 0x290A: // up triple arrow
  340. {
  341. dir: V, HW: [[.818,GENERAL]], stretch: {top:[0x290A,GENERAL], ext:[0xE135,NONUNI]}
  342. },
  343. 0x290B: // down triple arrow
  344. {
  345. dir: V, HW: [[.818,GENERAL]], stretch: {bot:[0x290B,GENERAL], ext:[0xE135,NONUNI]}
  346. },
  347. 0x2912: // up arrow to bar
  348. {
  349. dir: V, HW: [[.818,GENERAL]], stretch: {top:[0x2912,GENERAL], ext:[0x23D0,GENERAL]}
  350. },
  351. 0x2913: // down arrow to bar
  352. {
  353. dir: V, HW: [[.818,GENERAL]], stretch: {bot:[0x2913,GENERAL], ext:[0x23D0,GENERAL]}
  354. },
  355. 0x2952: // left harpoon with barb up to bar
  356. {
  357. dir: H, HW: [[.926,GENERAL]], stretch: {left:[0x2952,GENERAL], rep:[0x2212,GENERAL]}
  358. },
  359. 0x2953: // right harpoon with barb up to bar
  360. {
  361. dir: H, HW: [[.926,GENERAL]], stretch: {right:[0x2953,GENERAL], rep:[0x2212,GENERAL]}
  362. },
  363. 0x2954: // up harpoon with barb right to bar
  364. {
  365. dir: V, HW: [[.818,GENERAL]], stretch: {top:[0x2954,GENERAL], ext:[0x23D0,GENERAL]}
  366. },
  367. 0x2955: // down harpoon with barb right to bar
  368. {
  369. dir: V, HW: [[.818,GENERAL]], stretch: {bot:[0x2955,GENERAL], ext:[0x23D0,GENERAL]}
  370. },
  371. 0x2956: // left harpoon with barb down to bar
  372. {
  373. dir: H, HW: [[.926,GENERAL]], stretch: {left:[0x2956,GENERAL], rep:[0x2212,GENERAL]}
  374. },
  375. 0x2957: // right harpoon with barb down to bar
  376. {
  377. dir: H, HW: [[.926,GENERAL]], stretch: {right:[0x2957,GENERAL], rep:[0x2212,GENERAL]}
  378. },
  379. 0x2958: // up harpoon with barb left to bar
  380. {
  381. dir: V, HW: [[.818,GENERAL]], stretch: {top:[0x2958,GENERAL], ext:[0x23D0,GENERAL]}
  382. },
  383. 0x2959: // down harpoon with barb left to bar
  384. {
  385. dir: V, HW: [[.818,GENERAL]], stretch: {bot:[0x2959,GENERAL], ext:[0x23D0,GENERAL]}
  386. },
  387. 0x2980: // triple vertical bar
  388. {
  389. dir: V, HW: [[.874,GENERAL]], stretch: {ext:[0x2980,GENERAL]}
  390. },
  391. 0x2997: // left black tortoise shell
  392. {
  393. dir: V, HW: [[.932,GENERAL]],
  394. stretch: {top:[0xE10D,NONUNI,.1,.05], ext:[0x23D0,GENERAL,-.1], bot:[0xE10C,NONUNI,.1]}
  395. },
  396. 0x2998: // right black tortoise shell
  397. {
  398. dir: V, HW: [[.932,GENERAL]],
  399. stretch: {top:[0xE10C,NONUNI,-.1,.05], ext:[0x23D0,GENERAL], bot:[0xE10D,NONUNI,-.1]}
  400. }
  401. };
  402. for (var id in delim) {if (delim.hasOwnProperty(id)) {DELIMITERS[id] = delim[id]}};
  403. MathJax.Ajax.loadComplete(HTMLCSS.fontDir + "/fontdata-extra.js");
  404. })(MathJax.OutputJax["HTML-CSS"]);