katex 0.10.1 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/CHANGELOG.md +141 -0
  2. package/LICENSE +1 -1
  3. package/README.md +6 -6
  4. package/cli.js +0 -0
  5. package/contrib/auto-render/auto-render.js +12 -3
  6. package/contrib/copy-tex/README.md +3 -5
  7. package/contrib/mathtex-script-type/README.md +12 -14
  8. package/contrib/mhchem/README.md +3 -1
  9. package/contrib/render-a11y-string/render-a11y-string.js +712 -0
  10. package/contrib/render-a11y-string/test/render-a11y-string-spec.js +526 -0
  11. package/dist/README.md +6 -6
  12. package/dist/contrib/auto-render.js +14 -3
  13. package/dist/contrib/auto-render.min.js +1 -1
  14. package/dist/contrib/auto-render.mjs +14 -3
  15. package/dist/contrib/mhchem.min.js +1 -1
  16. package/dist/contrib/render-a11y-string.js +870 -0
  17. package/dist/contrib/render-a11y-string.min.js +1 -0
  18. package/dist/contrib/render-a11y-string.mjs +753 -0
  19. package/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
  20. package/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
  21. package/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  22. package/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  23. package/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  24. package/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  25. package/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  26. package/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  27. package/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  28. package/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  29. package/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  30. package/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  31. package/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  32. package/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  33. package/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  34. package/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
  35. package/dist/fonts/KaTeX_Main-Bold.woff +0 -0
  36. package/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
  37. package/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  38. package/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  39. package/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  40. package/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
  41. package/dist/fonts/KaTeX_Main-Italic.woff +0 -0
  42. package/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
  43. package/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
  44. package/dist/fonts/KaTeX_Main-Regular.woff +0 -0
  45. package/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
  46. package/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  47. package/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  48. package/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  49. package/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
  50. package/dist/fonts/KaTeX_Math-Italic.woff +0 -0
  51. package/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
  52. package/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  53. package/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  54. package/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  55. package/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  56. package/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  57. package/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  58. package/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  59. package/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  60. package/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  61. package/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
  62. package/dist/fonts/KaTeX_Script-Regular.woff +0 -0
  63. package/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
  64. package/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
  65. package/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
  66. package/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  67. package/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
  68. package/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
  69. package/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  70. package/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
  71. package/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
  72. package/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  73. package/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
  74. package/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
  75. package/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  76. package/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  77. package/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  78. package/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  79. package/dist/katex.css +34 -10
  80. package/dist/katex.js +2906 -2115
  81. package/dist/katex.min.css +1 -1
  82. package/dist/katex.min.js +1 -1
  83. package/dist/katex.mjs +2809 -2020
  84. package/package.json +12 -11
  85. package/src/Lexer.js +1 -0
  86. package/src/MacroExpander.js +39 -10
  87. package/src/Options.js +15 -75
  88. package/src/Parser.js +152 -115
  89. package/src/Settings.js +70 -7
  90. package/src/Token.js +2 -0
  91. package/src/buildCommon.js +24 -90
  92. package/src/buildHTML.js +31 -31
  93. package/src/buildMathML.js +52 -9
  94. package/src/buildTree.js +13 -6
  95. package/src/defineFunction.js +7 -22
  96. package/src/delimiter.js +66 -27
  97. package/src/domTree.js +71 -4
  98. package/src/environments/array.js +235 -25
  99. package/src/fontMetrics.js +11 -2
  100. package/src/functions/accent.js +9 -9
  101. package/src/functions/accentunder.js +2 -2
  102. package/src/functions/arrow.js +15 -5
  103. package/src/functions/color.js +9 -38
  104. package/src/functions/def.js +184 -0
  105. package/src/functions/delimsizing.js +32 -8
  106. package/src/functions/enclose.js +33 -6
  107. package/src/functions/font.js +4 -1
  108. package/src/functions/genfrac.js +39 -27
  109. package/src/functions/horizBrace.js +6 -7
  110. package/src/functions/href.js +16 -0
  111. package/src/functions/html.js +102 -0
  112. package/src/functions/includegraphics.js +153 -0
  113. package/src/functions/lap.js +4 -7
  114. package/src/functions/math.js +1 -5
  115. package/src/functions/mclass.js +41 -2
  116. package/src/functions/op.js +27 -111
  117. package/src/functions/operatorname.js +136 -92
  118. package/src/functions/ordgroup.js +1 -1
  119. package/src/functions/overline.js +3 -2
  120. package/src/functions/phantom.js +5 -2
  121. package/src/functions/raisebox.js +4 -16
  122. package/src/functions/rule.js +20 -9
  123. package/src/functions/styling.js +0 -9
  124. package/src/functions/supsub.js +27 -7
  125. package/src/functions/symbolsOp.js +4 -0
  126. package/src/functions/tag.js +20 -4
  127. package/src/functions/text.js +4 -3
  128. package/src/functions/underline.js +3 -2
  129. package/src/functions/utils/assembleSupSub.js +110 -0
  130. package/src/functions.js +3 -0
  131. package/src/katex.less +45 -9
  132. package/src/macros.js +259 -98
  133. package/src/mathMLTree.js +6 -4
  134. package/src/parseNode.js +37 -57
  135. package/src/stretchy.js +3 -1
  136. package/src/svgGeometry.js +136 -44
  137. package/src/symbols.js +52 -69
  138. package/src/tree.js +2 -2
  139. package/src/types.js +2 -1
  140. package/src/unicodeAccents.js +3 -1
  141. package/src/unicodeSymbols.js +30 -321
  142. package/src/utils.js +10 -0
  143. package/src/wide-character.js +2 -2
  144. package/src/unicodeMake.js +0 -70
@@ -1,323 +1,32 @@
1
1
  // @flow
2
- // This file is GENERATED by unicodeMake.js. DO NOT MODIFY.
2
+ // This is an internal module, not part of the KaTeX distribution,
3
+ // whose purpose is to generate `unicodeSymbols` in Parser.js
4
+ // In this way, only this module, and not the distribution/browser,
5
+ // needs String's normalize function. As this file is not transpiled,
6
+ // Flow comment types syntax is used.
7
+ const accents = require('./unicodeAccents');
3
8
 
4
- export default {
5
- "\u00e1": "\u0061\u0301", // á = \'{a}
6
- "\u00e0": "\u0061\u0300", // à = \`{a}
7
- "\u00e4": "\u0061\u0308", // ä = \"{a}
8
- "\u01df": "\u0061\u0308\u0304", // ǟ = \"\={a}
9
- "\u00e3": "\u0061\u0303", // ã = \~{a}
10
- "\u0101": "\u0061\u0304", // ā = \={a}
11
- "\u0103": "\u0061\u0306", // ă = \u{a}
12
- "\u1eaf": "\u0061\u0306\u0301", // ắ = \u\'{a}
13
- "\u1eb1": "\u0061\u0306\u0300", // ằ = \u\`{a}
14
- "\u1eb5": "\u0061\u0306\u0303", // = \u\~{a}
15
- "\u01ce": "\u0061\u030c", // ǎ = \v{a}
16
- "\u00e2": "\u0061\u0302", // â = \^{a}
17
- "\u1ea5": "\u0061\u0302\u0301", // ấ = \^\'{a}
18
- "\u1ea7": "\u0061\u0302\u0300", // = \^\`{a}
19
- "\u1eab": "\u0061\u0302\u0303", // = \^\~{a}
20
- "\u0227": "\u0061\u0307", // ȧ = \.{a}
21
- "\u01e1": "\u0061\u0307\u0304", // ǡ = \.\={a}
22
- "\u00e5": "\u0061\u030a", // å = \r{a}
23
- "\u01fb": "\u0061\u030a\u0301", // ǻ = \r\'{a}
24
- "\u1e03": "\u0062\u0307", // ḃ = \.{b}
25
- "\u0107": "\u0063\u0301", // ć = \'{c}
26
- "\u010d": "\u0063\u030c", // č = \v{c}
27
- "\u0109": "\u0063\u0302", // ĉ = \^{c}
28
- "\u010b": "\u0063\u0307", // ċ = \.{c}
29
- "\u010f": "\u0064\u030c", // ď = \v{d}
30
- "\u1e0b": "\u0064\u0307", // ḋ = \.{d}
31
- "\u00e9": "\u0065\u0301", // é = \'{e}
32
- "\u00e8": "\u0065\u0300", // è = \`{e}
33
- "\u00eb": "\u0065\u0308", // ë = \"{e}
34
- "\u1ebd": "\u0065\u0303", // ẽ = \~{e}
35
- "\u0113": "\u0065\u0304", // ē = \={e}
36
- "\u1e17": "\u0065\u0304\u0301", // ḗ = \=\'{e}
37
- "\u1e15": "\u0065\u0304\u0300", // ḕ = \=\`{e}
38
- "\u0115": "\u0065\u0306", // ĕ = \u{e}
39
- "\u011b": "\u0065\u030c", // ě = \v{e}
40
- "\u00ea": "\u0065\u0302", // ê = \^{e}
41
- "\u1ebf": "\u0065\u0302\u0301", // ế = \^\'{e}
42
- "\u1ec1": "\u0065\u0302\u0300", // ề = \^\`{e}
43
- "\u1ec5": "\u0065\u0302\u0303", // ễ = \^\~{e}
44
- "\u0117": "\u0065\u0307", // ė = \.{e}
45
- "\u1e1f": "\u0066\u0307", // ḟ = \.{f}
46
- "\u01f5": "\u0067\u0301", // ǵ = \'{g}
47
- "\u1e21": "\u0067\u0304", // ḡ = \={g}
48
- "\u011f": "\u0067\u0306", // ğ = \u{g}
49
- "\u01e7": "\u0067\u030c", // ǧ = \v{g}
50
- "\u011d": "\u0067\u0302", // ĝ = \^{g}
51
- "\u0121": "\u0067\u0307", // ġ = \.{g}
52
- "\u1e27": "\u0068\u0308", // ḧ = \"{h}
53
- "\u021f": "\u0068\u030c", // ȟ = \v{h}
54
- "\u0125": "\u0068\u0302", // ĥ = \^{h}
55
- "\u1e23": "\u0068\u0307", // ḣ = \.{h}
56
- "\u00ed": "\u0069\u0301", // í = \'{i}
57
- "\u00ec": "\u0069\u0300", // ì = \`{i}
58
- "\u00ef": "\u0069\u0308", // ï = \"{i}
59
- "\u1e2f": "\u0069\u0308\u0301", // ḯ = \"\'{i}
60
- "\u0129": "\u0069\u0303", // ĩ = \~{i}
61
- "\u012b": "\u0069\u0304", // ī = \={i}
62
- "\u012d": "\u0069\u0306", // ĭ = \u{i}
63
- "\u01d0": "\u0069\u030c", // ǐ = \v{i}
64
- "\u00ee": "\u0069\u0302", // î = \^{i}
65
- "\u01f0": "\u006a\u030c", // ǰ = \v{j}
66
- "\u0135": "\u006a\u0302", // ĵ = \^{j}
67
- "\u1e31": "\u006b\u0301", // ḱ = \'{k}
68
- "\u01e9": "\u006b\u030c", // ǩ = \v{k}
69
- "\u013a": "\u006c\u0301", // ĺ = \'{l}
70
- "\u013e": "\u006c\u030c", // ľ = \v{l}
71
- "\u1e3f": "\u006d\u0301", // ḿ = \'{m}
72
- "\u1e41": "\u006d\u0307", // ṁ = \.{m}
73
- "\u0144": "\u006e\u0301", // ń = \'{n}
74
- "\u01f9": "\u006e\u0300", // ǹ = \`{n}
75
- "\u00f1": "\u006e\u0303", // ñ = \~{n}
76
- "\u0148": "\u006e\u030c", // ň = \v{n}
77
- "\u1e45": "\u006e\u0307", // ṅ = \.{n}
78
- "\u00f3": "\u006f\u0301", // ó = \'{o}
79
- "\u00f2": "\u006f\u0300", // ò = \`{o}
80
- "\u00f6": "\u006f\u0308", // ö = \"{o}
81
- "\u022b": "\u006f\u0308\u0304", // ȫ = \"\={o}
82
- "\u00f5": "\u006f\u0303", // õ = \~{o}
83
- "\u1e4d": "\u006f\u0303\u0301", // ṍ = \~\'{o}
84
- "\u1e4f": "\u006f\u0303\u0308", // ṏ = \~\"{o}
85
- "\u022d": "\u006f\u0303\u0304", // ȭ = \~\={o}
86
- "\u014d": "\u006f\u0304", // ō = \={o}
87
- "\u1e53": "\u006f\u0304\u0301", // ṓ = \=\'{o}
88
- "\u1e51": "\u006f\u0304\u0300", // ṑ = \=\`{o}
89
- "\u014f": "\u006f\u0306", // ŏ = \u{o}
90
- "\u01d2": "\u006f\u030c", // ǒ = \v{o}
91
- "\u00f4": "\u006f\u0302", // ô = \^{o}
92
- "\u1ed1": "\u006f\u0302\u0301", // ố = \^\'{o}
93
- "\u1ed3": "\u006f\u0302\u0300", // ồ = \^\`{o}
94
- "\u1ed7": "\u006f\u0302\u0303", // ỗ = \^\~{o}
95
- "\u022f": "\u006f\u0307", // ȯ = \.{o}
96
- "\u0231": "\u006f\u0307\u0304", // ȱ = \.\={o}
97
- "\u0151": "\u006f\u030b", // ő = \H{o}
98
- "\u1e55": "\u0070\u0301", // ṕ = \'{p}
99
- "\u1e57": "\u0070\u0307", // ṗ = \.{p}
100
- "\u0155": "\u0072\u0301", // ŕ = \'{r}
101
- "\u0159": "\u0072\u030c", // ř = \v{r}
102
- "\u1e59": "\u0072\u0307", // ṙ = \.{r}
103
- "\u015b": "\u0073\u0301", // ś = \'{s}
104
- "\u1e65": "\u0073\u0301\u0307", // ṥ = \'\.{s}
105
- "\u0161": "\u0073\u030c", // š = \v{s}
106
- "\u1e67": "\u0073\u030c\u0307", // ṧ = \v\.{s}
107
- "\u015d": "\u0073\u0302", // ŝ = \^{s}
108
- "\u1e61": "\u0073\u0307", // ṡ = \.{s}
109
- "\u1e97": "\u0074\u0308", // ẗ = \"{t}
110
- "\u0165": "\u0074\u030c", // ť = \v{t}
111
- "\u1e6b": "\u0074\u0307", // ṫ = \.{t}
112
- "\u00fa": "\u0075\u0301", // ú = \'{u}
113
- "\u00f9": "\u0075\u0300", // ù = \`{u}
114
- "\u00fc": "\u0075\u0308", // ü = \"{u}
115
- "\u01d8": "\u0075\u0308\u0301", // ǘ = \"\'{u}
116
- "\u01dc": "\u0075\u0308\u0300", // ǜ = \"\`{u}
117
- "\u01d6": "\u0075\u0308\u0304", // ǖ = \"\={u}
118
- "\u01da": "\u0075\u0308\u030c", // ǚ = \"\v{u}
119
- "\u0169": "\u0075\u0303", // ũ = \~{u}
120
- "\u1e79": "\u0075\u0303\u0301", // ṹ = \~\'{u}
121
- "\u016b": "\u0075\u0304", // ū = \={u}
122
- "\u1e7b": "\u0075\u0304\u0308", // ṻ = \=\"{u}
123
- "\u016d": "\u0075\u0306", // ŭ = \u{u}
124
- "\u01d4": "\u0075\u030c", // ǔ = \v{u}
125
- "\u00fb": "\u0075\u0302", // û = \^{u}
126
- "\u016f": "\u0075\u030a", // ů = \r{u}
127
- "\u0171": "\u0075\u030b", // ű = \H{u}
128
- "\u1e7d": "\u0076\u0303", // ṽ = \~{v}
129
- "\u1e83": "\u0077\u0301", // ẃ = \'{w}
130
- "\u1e81": "\u0077\u0300", // ẁ = \`{w}
131
- "\u1e85": "\u0077\u0308", // ẅ = \"{w}
132
- "\u0175": "\u0077\u0302", // ŵ = \^{w}
133
- "\u1e87": "\u0077\u0307", // ẇ = \.{w}
134
- "\u1e98": "\u0077\u030a", // ẘ = \r{w}
135
- "\u1e8d": "\u0078\u0308", // ẍ = \"{x}
136
- "\u1e8b": "\u0078\u0307", // ẋ = \.{x}
137
- "\u00fd": "\u0079\u0301", // ý = \'{y}
138
- "\u1ef3": "\u0079\u0300", // ỳ = \`{y}
139
- "\u00ff": "\u0079\u0308", // ÿ = \"{y}
140
- "\u1ef9": "\u0079\u0303", // ỹ = \~{y}
141
- "\u0233": "\u0079\u0304", // ȳ = \={y}
142
- "\u0177": "\u0079\u0302", // ŷ = \^{y}
143
- "\u1e8f": "\u0079\u0307", // ẏ = \.{y}
144
- "\u1e99": "\u0079\u030a", // ẙ = \r{y}
145
- "\u017a": "\u007a\u0301", // ź = \'{z}
146
- "\u017e": "\u007a\u030c", // ž = \v{z}
147
- "\u1e91": "\u007a\u0302", // ẑ = \^{z}
148
- "\u017c": "\u007a\u0307", // ż = \.{z}
149
- "\u00c1": "\u0041\u0301", // Á = \'{A}
150
- "\u00c0": "\u0041\u0300", // À = \`{A}
151
- "\u00c4": "\u0041\u0308", // Ä = \"{A}
152
- "\u01de": "\u0041\u0308\u0304", // Ǟ = \"\={A}
153
- "\u00c3": "\u0041\u0303", // Ã = \~{A}
154
- "\u0100": "\u0041\u0304", // Ā = \={A}
155
- "\u0102": "\u0041\u0306", // Ă = \u{A}
156
- "\u1eae": "\u0041\u0306\u0301", // Ắ = \u\'{A}
157
- "\u1eb0": "\u0041\u0306\u0300", // Ằ = \u\`{A}
158
- "\u1eb4": "\u0041\u0306\u0303", // Ẵ = \u\~{A}
159
- "\u01cd": "\u0041\u030c", // Ǎ = \v{A}
160
- "\u00c2": "\u0041\u0302", // Â = \^{A}
161
- "\u1ea4": "\u0041\u0302\u0301", // Ấ = \^\'{A}
162
- "\u1ea6": "\u0041\u0302\u0300", // Ầ = \^\`{A}
163
- "\u1eaa": "\u0041\u0302\u0303", // Ẫ = \^\~{A}
164
- "\u0226": "\u0041\u0307", // Ȧ = \.{A}
165
- "\u01e0": "\u0041\u0307\u0304", // Ǡ = \.\={A}
166
- "\u00c5": "\u0041\u030a", // Å = \r{A}
167
- "\u01fa": "\u0041\u030a\u0301", // Ǻ = \r\'{A}
168
- "\u1e02": "\u0042\u0307", // Ḃ = \.{B}
169
- "\u0106": "\u0043\u0301", // Ć = \'{C}
170
- "\u010c": "\u0043\u030c", // Č = \v{C}
171
- "\u0108": "\u0043\u0302", // Ĉ = \^{C}
172
- "\u010a": "\u0043\u0307", // Ċ = \.{C}
173
- "\u010e": "\u0044\u030c", // Ď = \v{D}
174
- "\u1e0a": "\u0044\u0307", // Ḋ = \.{D}
175
- "\u00c9": "\u0045\u0301", // É = \'{E}
176
- "\u00c8": "\u0045\u0300", // È = \`{E}
177
- "\u00cb": "\u0045\u0308", // Ë = \"{E}
178
- "\u1ebc": "\u0045\u0303", // Ẽ = \~{E}
179
- "\u0112": "\u0045\u0304", // Ē = \={E}
180
- "\u1e16": "\u0045\u0304\u0301", // Ḗ = \=\'{E}
181
- "\u1e14": "\u0045\u0304\u0300", // Ḕ = \=\`{E}
182
- "\u0114": "\u0045\u0306", // Ĕ = \u{E}
183
- "\u011a": "\u0045\u030c", // Ě = \v{E}
184
- "\u00ca": "\u0045\u0302", // Ê = \^{E}
185
- "\u1ebe": "\u0045\u0302\u0301", // Ế = \^\'{E}
186
- "\u1ec0": "\u0045\u0302\u0300", // Ề = \^\`{E}
187
- "\u1ec4": "\u0045\u0302\u0303", // Ễ = \^\~{E}
188
- "\u0116": "\u0045\u0307", // Ė = \.{E}
189
- "\u1e1e": "\u0046\u0307", // Ḟ = \.{F}
190
- "\u01f4": "\u0047\u0301", // Ǵ = \'{G}
191
- "\u1e20": "\u0047\u0304", // Ḡ = \={G}
192
- "\u011e": "\u0047\u0306", // Ğ = \u{G}
193
- "\u01e6": "\u0047\u030c", // Ǧ = \v{G}
194
- "\u011c": "\u0047\u0302", // Ĝ = \^{G}
195
- "\u0120": "\u0047\u0307", // Ġ = \.{G}
196
- "\u1e26": "\u0048\u0308", // Ḧ = \"{H}
197
- "\u021e": "\u0048\u030c", // Ȟ = \v{H}
198
- "\u0124": "\u0048\u0302", // Ĥ = \^{H}
199
- "\u1e22": "\u0048\u0307", // Ḣ = \.{H}
200
- "\u00cd": "\u0049\u0301", // Í = \'{I}
201
- "\u00cc": "\u0049\u0300", // Ì = \`{I}
202
- "\u00cf": "\u0049\u0308", // Ï = \"{I}
203
- "\u1e2e": "\u0049\u0308\u0301", // Ḯ = \"\'{I}
204
- "\u0128": "\u0049\u0303", // Ĩ = \~{I}
205
- "\u012a": "\u0049\u0304", // Ī = \={I}
206
- "\u012c": "\u0049\u0306", // Ĭ = \u{I}
207
- "\u01cf": "\u0049\u030c", // Ǐ = \v{I}
208
- "\u00ce": "\u0049\u0302", // Î = \^{I}
209
- "\u0130": "\u0049\u0307", // İ = \.{I}
210
- "\u0134": "\u004a\u0302", // Ĵ = \^{J}
211
- "\u1e30": "\u004b\u0301", // Ḱ = \'{K}
212
- "\u01e8": "\u004b\u030c", // Ǩ = \v{K}
213
- "\u0139": "\u004c\u0301", // Ĺ = \'{L}
214
- "\u013d": "\u004c\u030c", // Ľ = \v{L}
215
- "\u1e3e": "\u004d\u0301", // Ḿ = \'{M}
216
- "\u1e40": "\u004d\u0307", // Ṁ = \.{M}
217
- "\u0143": "\u004e\u0301", // Ń = \'{N}
218
- "\u01f8": "\u004e\u0300", // Ǹ = \`{N}
219
- "\u00d1": "\u004e\u0303", // Ñ = \~{N}
220
- "\u0147": "\u004e\u030c", // Ň = \v{N}
221
- "\u1e44": "\u004e\u0307", // Ṅ = \.{N}
222
- "\u00d3": "\u004f\u0301", // Ó = \'{O}
223
- "\u00d2": "\u004f\u0300", // Ò = \`{O}
224
- "\u00d6": "\u004f\u0308", // Ö = \"{O}
225
- "\u022a": "\u004f\u0308\u0304", // Ȫ = \"\={O}
226
- "\u00d5": "\u004f\u0303", // Õ = \~{O}
227
- "\u1e4c": "\u004f\u0303\u0301", // Ṍ = \~\'{O}
228
- "\u1e4e": "\u004f\u0303\u0308", // Ṏ = \~\"{O}
229
- "\u022c": "\u004f\u0303\u0304", // Ȭ = \~\={O}
230
- "\u014c": "\u004f\u0304", // Ō = \={O}
231
- "\u1e52": "\u004f\u0304\u0301", // Ṓ = \=\'{O}
232
- "\u1e50": "\u004f\u0304\u0300", // Ṑ = \=\`{O}
233
- "\u014e": "\u004f\u0306", // Ŏ = \u{O}
234
- "\u01d1": "\u004f\u030c", // Ǒ = \v{O}
235
- "\u00d4": "\u004f\u0302", // Ô = \^{O}
236
- "\u1ed0": "\u004f\u0302\u0301", // Ố = \^\'{O}
237
- "\u1ed2": "\u004f\u0302\u0300", // Ồ = \^\`{O}
238
- "\u1ed6": "\u004f\u0302\u0303", // Ỗ = \^\~{O}
239
- "\u022e": "\u004f\u0307", // Ȯ = \.{O}
240
- "\u0230": "\u004f\u0307\u0304", // Ȱ = \.\={O}
241
- "\u0150": "\u004f\u030b", // Ő = \H{O}
242
- "\u1e54": "\u0050\u0301", // Ṕ = \'{P}
243
- "\u1e56": "\u0050\u0307", // Ṗ = \.{P}
244
- "\u0154": "\u0052\u0301", // Ŕ = \'{R}
245
- "\u0158": "\u0052\u030c", // Ř = \v{R}
246
- "\u1e58": "\u0052\u0307", // Ṙ = \.{R}
247
- "\u015a": "\u0053\u0301", // Ś = \'{S}
248
- "\u1e64": "\u0053\u0301\u0307", // Ṥ = \'\.{S}
249
- "\u0160": "\u0053\u030c", // Š = \v{S}
250
- "\u1e66": "\u0053\u030c\u0307", // Ṧ = \v\.{S}
251
- "\u015c": "\u0053\u0302", // Ŝ = \^{S}
252
- "\u1e60": "\u0053\u0307", // Ṡ = \.{S}
253
- "\u0164": "\u0054\u030c", // Ť = \v{T}
254
- "\u1e6a": "\u0054\u0307", // Ṫ = \.{T}
255
- "\u00da": "\u0055\u0301", // Ú = \'{U}
256
- "\u00d9": "\u0055\u0300", // Ù = \`{U}
257
- "\u00dc": "\u0055\u0308", // Ü = \"{U}
258
- "\u01d7": "\u0055\u0308\u0301", // Ǘ = \"\'{U}
259
- "\u01db": "\u0055\u0308\u0300", // Ǜ = \"\`{U}
260
- "\u01d5": "\u0055\u0308\u0304", // Ǖ = \"\={U}
261
- "\u01d9": "\u0055\u0308\u030c", // Ǚ = \"\v{U}
262
- "\u0168": "\u0055\u0303", // Ũ = \~{U}
263
- "\u1e78": "\u0055\u0303\u0301", // Ṹ = \~\'{U}
264
- "\u016a": "\u0055\u0304", // Ū = \={U}
265
- "\u1e7a": "\u0055\u0304\u0308", // Ṻ = \=\"{U}
266
- "\u016c": "\u0055\u0306", // Ŭ = \u{U}
267
- "\u01d3": "\u0055\u030c", // Ǔ = \v{U}
268
- "\u00db": "\u0055\u0302", // Û = \^{U}
269
- "\u016e": "\u0055\u030a", // Ů = \r{U}
270
- "\u0170": "\u0055\u030b", // Ű = \H{U}
271
- "\u1e7c": "\u0056\u0303", // Ṽ = \~{V}
272
- "\u1e82": "\u0057\u0301", // Ẃ = \'{W}
273
- "\u1e80": "\u0057\u0300", // Ẁ = \`{W}
274
- "\u1e84": "\u0057\u0308", // Ẅ = \"{W}
275
- "\u0174": "\u0057\u0302", // Ŵ = \^{W}
276
- "\u1e86": "\u0057\u0307", // Ẇ = \.{W}
277
- "\u1e8c": "\u0058\u0308", // Ẍ = \"{X}
278
- "\u1e8a": "\u0058\u0307", // Ẋ = \.{X}
279
- "\u00dd": "\u0059\u0301", // Ý = \'{Y}
280
- "\u1ef2": "\u0059\u0300", // Ỳ = \`{Y}
281
- "\u0178": "\u0059\u0308", // Ÿ = \"{Y}
282
- "\u1ef8": "\u0059\u0303", // Ỹ = \~{Y}
283
- "\u0232": "\u0059\u0304", // Ȳ = \={Y}
284
- "\u0176": "\u0059\u0302", // Ŷ = \^{Y}
285
- "\u1e8e": "\u0059\u0307", // Ẏ = \.{Y}
286
- "\u0179": "\u005a\u0301", // Ź = \'{Z}
287
- "\u017d": "\u005a\u030c", // Ž = \v{Z}
288
- "\u1e90": "\u005a\u0302", // Ẑ = \^{Z}
289
- "\u017b": "\u005a\u0307", // Ż = \.{Z}
290
- "\u03ac": "\u03b1\u0301", // ά = \'{α}
291
- "\u1f70": "\u03b1\u0300", // ὰ = \`{α}
292
- "\u1fb1": "\u03b1\u0304", // ᾱ = \={α}
293
- "\u1fb0": "\u03b1\u0306", // ᾰ = \u{α}
294
- "\u03ad": "\u03b5\u0301", // έ = \'{ε}
295
- "\u1f72": "\u03b5\u0300", // ὲ = \`{ε}
296
- "\u03ae": "\u03b7\u0301", // ή = \'{η}
297
- "\u1f74": "\u03b7\u0300", // ὴ = \`{η}
298
- "\u03af": "\u03b9\u0301", // ί = \'{ι}
299
- "\u1f76": "\u03b9\u0300", // ὶ = \`{ι}
300
- "\u03ca": "\u03b9\u0308", // ϊ = \"{ι}
301
- "\u0390": "\u03b9\u0308\u0301", // ΐ = \"\'{ι}
302
- "\u1fd2": "\u03b9\u0308\u0300", // ῒ = \"\`{ι}
303
- "\u1fd1": "\u03b9\u0304", // ῑ = \={ι}
304
- "\u1fd0": "\u03b9\u0306", // ῐ = \u{ι}
305
- "\u03cc": "\u03bf\u0301", // ό = \'{ο}
306
- "\u1f78": "\u03bf\u0300", // ὸ = \`{ο}
307
- "\u03cd": "\u03c5\u0301", // ύ = \'{υ}
308
- "\u1f7a": "\u03c5\u0300", // ὺ = \`{υ}
309
- "\u03cb": "\u03c5\u0308", // ϋ = \"{υ}
310
- "\u03b0": "\u03c5\u0308\u0301", // ΰ = \"\'{υ}
311
- "\u1fe2": "\u03c5\u0308\u0300", // ῢ = \"\`{υ}
312
- "\u1fe1": "\u03c5\u0304", // ῡ = \={υ}
313
- "\u1fe0": "\u03c5\u0306", // ῠ = \u{υ}
314
- "\u03ce": "\u03c9\u0301", // ώ = \'{ω}
315
- "\u1f7c": "\u03c9\u0300", // ὼ = \`{ω}
316
- "\u038e": "\u03a5\u0301", // Ύ = \'{Υ}
317
- "\u1fea": "\u03a5\u0300", // Ὺ = \`{Υ}
318
- "\u03ab": "\u03a5\u0308", // Ϋ = \"{Υ}
319
- "\u1fe9": "\u03a5\u0304", // Ῡ = \={Υ}
320
- "\u1fe8": "\u03a5\u0306", // Ῠ = \u{Υ}
321
- "\u038f": "\u03a9\u0301", // Ώ = \'{Ω}
322
- "\u1ffa": "\u03a9\u0300", // Ὼ = \`{Ω}
323
- };
9
+ const result /*: {[string]: string}*/ = {};
10
+ const letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" +
11
+ "αβγδεϵζηθϑικλμνξοπϖρϱςστυφϕχψωΓΔΘΛΞΠΣΥΦΨΩ";
12
+ for (const letter of letters) {
13
+ for (const accent of Object.getOwnPropertyNames(accents)) {
14
+ const combined = letter + accent;
15
+ const normalized = combined.normalize('NFC');
16
+ if (normalized.length === 1) {
17
+ result[normalized] = combined;
18
+ }
19
+ for (const accent2 of Object.getOwnPropertyNames(accents)) {
20
+ if (accent === accent2) {
21
+ continue;
22
+ }
23
+ const combined2 = combined + accent2;
24
+ const normalized2 = combined2.normalize('NFC');
25
+ if (normalized2.length === 1) {
26
+ result[normalized2] = combined2;
27
+ }
28
+ }
29
+ }
30
+ }
31
+
32
+ module.exports = result;
package/src/utils.js CHANGED
@@ -91,6 +91,15 @@ export const assert = function<T>(value: ?T): T {
91
91
  return value;
92
92
  };
93
93
 
94
+ /**
95
+ * Return the protocol of a URL, or "_relative" if the URL does not specify a
96
+ * protocol (and thus is relative).
97
+ */
98
+ export const protocolFromUrl = function(url: string): string {
99
+ const protocol = /^\s*([^\\/#]*?)(?::|&#0*58|&#x0*3a)/i.exec(url);
100
+ return (protocol != null ? protocol[1] : "_relative");
101
+ };
102
+
94
103
  export default {
95
104
  contains,
96
105
  deflt,
@@ -98,4 +107,5 @@ export default {
98
107
  hyphenate,
99
108
  getBaseElem,
100
109
  isCharacterBox,
110
+ protocolFromUrl,
101
111
  };
@@ -25,8 +25,8 @@ const wideLatinLetterData: Array<[string, string, string]> = [
25
25
  ["mathbf", "textbf", "Main-Bold"], // A-Z bold upright
26
26
  ["mathbf", "textbf", "Main-Bold"], // a-z bold upright
27
27
 
28
- ["mathdefault", "textit", "Math-Italic"], // A-Z italic
29
- ["mathdefault", "textit", "Math-Italic"], // a-z italic
28
+ ["mathnormal", "textit", "Math-Italic"], // A-Z italic
29
+ ["mathnormal", "textit", "Math-Italic"], // a-z italic
30
30
 
31
31
  ["boldsymbol", "boldsymbol", "Main-BoldItalic"], // A-Z bold italic
32
32
  ["boldsymbol", "boldsymbol", "Main-BoldItalic"], // a-z bold italic
@@ -1,70 +0,0 @@
1
- /* eslint no-console:0 */
2
-
3
- // This is an internal Node tool, not part of the KaTeX distribution,
4
- // whose purpose is to generate unicodeSymbols.js in this directory.
5
- // In this way, only this tool, and not the distribution/browser,
6
- // needs String's normalize function.
7
- const path = require('path');
8
- const fs = require('fs');
9
-
10
- const target = path.join(__dirname, 'unicodeSymbols.js');
11
- const targetMtime = fs.statSync(target).mtime;
12
- if (fs.statSync(__filename).mtime <= targetMtime && fs.statSync(
13
- path.join(__dirname, 'unicodeAccents.js')).mtime <= targetMtime) {
14
- return;
15
- }
16
-
17
- require('@babel/register');
18
- const accents = require('./unicodeAccents').default;
19
-
20
- const encode = function(string) {
21
- let output = '"';
22
- for (let i = 0; i < string.length; i++) {
23
- let hex = string.charCodeAt(i).toString(16);
24
- while (hex.length < 4) {
25
- hex = `0${hex}`;
26
- }
27
- output += `\\u${hex}`;
28
- }
29
- output = `${output}"`;
30
- return output;
31
- };
32
-
33
- let unicodeSymbols =
34
- `// @flow
35
- // This file is GENERATED by unicodeMake.js. DO NOT MODIFY.
36
-
37
- export default {
38
- `;
39
-
40
- const letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" +
41
- "αβγδεϵζηθϑικλμνξοπϖρϱςστυφϕχψωΓΔΘΛΞΠΣΥΦΨΩ";
42
- for (const letter of letters) {
43
- for (const accent of Object.getOwnPropertyNames(accents)) {
44
- const combined = letter + accent;
45
- const normalized = combined.normalize('NFC');
46
- if (normalized.length === 1) {
47
- unicodeSymbols +=
48
- ` ${encode(normalized)}: ${encode(combined)},`
49
- + ` // ${normalized} = ${accents[accent].text}{${letter}}\n`;
50
- }
51
- for (const accent2 of Object.getOwnPropertyNames(accents)) {
52
- if (accent === accent2) {
53
- continue;
54
- }
55
- const combined2 = combined + accent2;
56
- const normalized2 = combined2.normalize('NFC');
57
- if (normalized2.length === 1) {
58
- unicodeSymbols +=
59
- ` ${encode(normalized2)}: ${encode(combined2)},`
60
- + ` // ${normalized2} = ${accents[accent].text}`
61
- + `${accents[accent2].text}{${letter}}\n`;
62
- }
63
- }
64
- }
65
- }
66
-
67
- unicodeSymbols += `};
68
- `;
69
-
70
- fs.writeFileSync(target, unicodeSymbols);