katex 0.10.0-rc → 0.10.2

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 +214 -126
  2. package/README.md +18 -17
  3. package/cli.js +5 -1
  4. package/contrib/auto-render/README.md +1 -1
  5. package/contrib/auto-render/auto-render.js +4 -1
  6. package/contrib/auto-render/test/auto-render-spec.js +17 -0
  7. package/contrib/copy-tex/README.md +8 -2
  8. package/contrib/copy-tex/copy-tex.js +0 -1
  9. package/contrib/copy-tex/copy-tex.webpack.js +6 -0
  10. package/contrib/mathtex-script-type/README.md +10 -6
  11. package/contrib/mhchem/README.md +19 -0
  12. package/contrib/mhchem/mhchem.js +1695 -0
  13. package/contrib/mhchem/mhchem.patch +235 -0
  14. package/dist/README.md +18 -17
  15. package/dist/contrib/auto-render.js +179 -161
  16. package/dist/contrib/auto-render.min.js +1 -1
  17. package/dist/contrib/auto-render.mjs +215 -0
  18. package/dist/contrib/copy-tex.js +84 -62
  19. package/dist/contrib/copy-tex.min.css +1 -1
  20. package/dist/contrib/copy-tex.min.js +1 -1
  21. package/dist/contrib/copy-tex.mjs +85 -0
  22. package/dist/contrib/mathtex-script-type.js +17 -14
  23. package/dist/contrib/mathtex-script-type.mjs +24 -0
  24. package/dist/contrib/mhchem.js +3241 -0
  25. package/dist/contrib/mhchem.min.js +1 -0
  26. package/dist/contrib/mhchem.mjs +3109 -0
  27. package/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
  28. package/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
  29. package/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  30. package/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  31. package/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  32. package/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  33. package/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  34. package/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  35. package/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  36. package/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  37. package/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  38. package/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  39. package/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  40. package/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  41. package/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  42. package/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
  43. package/dist/fonts/KaTeX_Main-Bold.woff +0 -0
  44. package/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
  45. package/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  46. package/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  47. package/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  48. package/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
  49. package/dist/fonts/KaTeX_Main-Italic.woff +0 -0
  50. package/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
  51. package/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
  52. package/dist/fonts/KaTeX_Main-Regular.woff +0 -0
  53. package/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
  54. package/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  55. package/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  56. package/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  57. package/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
  58. package/dist/fonts/KaTeX_Math-Italic.woff +0 -0
  59. package/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
  60. package/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  61. package/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  62. package/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  63. package/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  64. package/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  65. package/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  66. package/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  67. package/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  68. package/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  69. package/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
  70. package/dist/fonts/KaTeX_Script-Regular.woff +0 -0
  71. package/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
  72. package/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
  73. package/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
  74. package/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  75. package/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
  76. package/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
  77. package/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  78. package/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
  79. package/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
  80. package/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  81. package/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
  82. package/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
  83. package/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  84. package/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  85. package/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  86. package/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  87. package/dist/katex.css +24 -9
  88. package/dist/katex.js +13295 -12413
  89. package/dist/katex.min.css +1 -1
  90. package/dist/katex.min.js +1 -1
  91. package/dist/katex.mjs +13388 -11826
  92. package/katex.js +1 -2
  93. package/package.json +60 -48
  94. package/src/Lexer.js +25 -25
  95. package/src/MacroExpander.js +0 -1
  96. package/src/Options.js +11 -75
  97. package/src/Parser.js +231 -313
  98. package/src/Settings.js +6 -0
  99. package/src/buildCommon.js +140 -103
  100. package/src/buildHTML.js +125 -121
  101. package/src/buildMathML.js +14 -4
  102. package/src/buildTree.js +16 -10
  103. package/src/delimiter.js +4 -3
  104. package/src/domTree.js +91 -44
  105. package/src/environments/array.js +120 -7
  106. package/src/fontMetrics.js +3 -2
  107. package/src/functions/arrow.js +21 -7
  108. package/src/functions/color.js +2 -37
  109. package/src/functions/delimsizing.js +18 -11
  110. package/src/functions/enclose.js +19 -4
  111. package/src/functions/environment.js +35 -4
  112. package/src/functions/font.js +1 -2
  113. package/src/functions/genfrac.js +35 -20
  114. package/src/functions/href.js +5 -3
  115. package/src/functions/includegraphics.js +146 -0
  116. package/src/functions/mclass.js +1 -0
  117. package/src/functions/op.js +21 -32
  118. package/src/functions/operatorname.js +1 -2
  119. package/src/functions/ordgroup.js +4 -0
  120. package/src/functions/phantom.js +7 -3
  121. package/src/functions/rule.js +20 -9
  122. package/src/functions/sizing.js +2 -4
  123. package/src/functions/smash.js +5 -2
  124. package/src/functions/sqrt.js +1 -4
  125. package/src/functions/styling.js +0 -1
  126. package/src/functions/supsub.js +6 -2
  127. package/src/functions/symbolsOp.js +4 -0
  128. package/src/functions/symbolsSpacing.js +29 -6
  129. package/src/functions/tag.js +20 -4
  130. package/src/functions/text.js +6 -4
  131. package/src/functions/verb.js +16 -4
  132. package/src/functions.js +2 -0
  133. package/src/katex.less +35 -12
  134. package/src/macros.js +161 -36
  135. package/src/mathMLTree.js +17 -19
  136. package/src/parseNode.js +27 -1
  137. package/src/stretchy.js +3 -1
  138. package/src/svgGeometry.js +1 -1
  139. package/src/symbols.js +39 -17
  140. package/src/tree.js +0 -4
  141. package/src/types.js +4 -3
  142. package/src/unicodeMake.js +1 -1
  143. package/src/utils.js +1 -62
  144. package/src/wide-character.js +2 -2
package/src/symbols.js CHANGED
@@ -8,7 +8,7 @@
8
8
  normal font), or "ams" (the ams fonts).
9
9
  * - group (required): the ParseNode group type the symbol should have (i.e.
10
10
  "textord", "mathord", etc).
11
- See https://github.com/Khan/KaTeX/wiki/Examining-TeX#group-types
11
+ See https://github.com/KaTeX/KaTeX/wiki/Examining-TeX#group-types
12
12
  * - replace: the character that this symbol or function should be
13
13
  * replaced with (i.e. "\phi" has a replace value of "\u03d5", the phi
14
14
  * character in the main font).
@@ -202,11 +202,12 @@ defineSymbol(math, main, rel, "\u21cc", "\\rightleftharpoons", true);
202
202
 
203
203
  // AMS Negated Binary Relations
204
204
  defineSymbol(math, ams, rel, "\u226e", "\\nless", true);
205
- defineSymbol(math, ams, rel, "\ue010", "\\nleqslant");
206
- defineSymbol(math, ams, rel, "\ue011", "\\nleqq");
205
+ // Symbol names preceeded by "@" each have a corresponding macro.
206
+ defineSymbol(math, ams, rel, "\ue010", "\\@nleqslant");
207
+ defineSymbol(math, ams, rel, "\ue011", "\\@nleqq");
207
208
  defineSymbol(math, ams, rel, "\u2a87", "\\lneq", true);
208
209
  defineSymbol(math, ams, rel, "\u2268", "\\lneqq", true);
209
- defineSymbol(math, ams, rel, "\ue00c", "\\lvertneqq");
210
+ defineSymbol(math, ams, rel, "\ue00c", "\\@lvertneqq");
210
211
  defineSymbol(math, ams, rel, "\u22e6", "\\lnsim", true);
211
212
  defineSymbol(math, ams, rel, "\u2a89", "\\lnapprox", true);
212
213
  defineSymbol(math, ams, rel, "\u2280", "\\nprec", true);
@@ -215,22 +216,22 @@ defineSymbol(math, ams, rel, "\u22e0", "\\npreceq", true);
215
216
  defineSymbol(math, ams, rel, "\u22e8", "\\precnsim", true);
216
217
  defineSymbol(math, ams, rel, "\u2ab9", "\\precnapprox", true);
217
218
  defineSymbol(math, ams, rel, "\u2241", "\\nsim", true);
218
- defineSymbol(math, ams, rel, "\ue006", "\\nshortmid");
219
+ defineSymbol(math, ams, rel, "\ue006", "\\@nshortmid");
219
220
  defineSymbol(math, ams, rel, "\u2224", "\\nmid", true);
220
221
  defineSymbol(math, ams, rel, "\u22ac", "\\nvdash", true);
221
222
  defineSymbol(math, ams, rel, "\u22ad", "\\nvDash", true);
222
223
  defineSymbol(math, ams, rel, "\u22ea", "\\ntriangleleft");
223
224
  defineSymbol(math, ams, rel, "\u22ec", "\\ntrianglelefteq", true);
224
225
  defineSymbol(math, ams, rel, "\u228a", "\\subsetneq", true);
225
- defineSymbol(math, ams, rel, "\ue01a", "\\varsubsetneq");
226
+ defineSymbol(math, ams, rel, "\ue01a", "\\@varsubsetneq");
226
227
  defineSymbol(math, ams, rel, "\u2acb", "\\subsetneqq", true);
227
- defineSymbol(math, ams, rel, "\ue017", "\\varsubsetneqq");
228
+ defineSymbol(math, ams, rel, "\ue017", "\\@varsubsetneqq");
228
229
  defineSymbol(math, ams, rel, "\u226f", "\\ngtr", true);
229
- defineSymbol(math, ams, rel, "\ue00f", "\\ngeqslant");
230
- defineSymbol(math, ams, rel, "\ue00e", "\\ngeqq");
230
+ defineSymbol(math, ams, rel, "\ue00f", "\\@ngeqslant");
231
+ defineSymbol(math, ams, rel, "\ue00e", "\\@ngeqq");
231
232
  defineSymbol(math, ams, rel, "\u2a88", "\\gneq", true);
232
233
  defineSymbol(math, ams, rel, "\u2269", "\\gneqq", true);
233
- defineSymbol(math, ams, rel, "\ue00d", "\\gvertneqq");
234
+ defineSymbol(math, ams, rel, "\ue00d", "\\@gvertneqq");
234
235
  defineSymbol(math, ams, rel, "\u22e7", "\\gnsim", true);
235
236
  defineSymbol(math, ams, rel, "\u2a8a", "\\gnapprox", true);
236
237
  defineSymbol(math, ams, rel, "\u2281", "\\nsucc", true);
@@ -240,20 +241,20 @@ defineSymbol(math, ams, rel, "\u22e9", "\\succnsim", true);
240
241
  defineSymbol(math, ams, rel, "\u2aba", "\\succnapprox", true);
241
242
  // unicode-math maps \u2246 to \simneqq. We'll use the AMS synonym.
242
243
  defineSymbol(math, ams, rel, "\u2246", "\\ncong", true);
243
- defineSymbol(math, ams, rel, "\ue007", "\\nshortparallel");
244
+ defineSymbol(math, ams, rel, "\ue007", "\\@nshortparallel");
244
245
  defineSymbol(math, ams, rel, "\u2226", "\\nparallel", true);
245
246
  defineSymbol(math, ams, rel, "\u22af", "\\nVDash", true);
246
247
  defineSymbol(math, ams, rel, "\u22eb", "\\ntriangleright");
247
248
  defineSymbol(math, ams, rel, "\u22ed", "\\ntrianglerighteq", true);
248
- defineSymbol(math, ams, rel, "\ue018", "\\nsupseteqq");
249
+ defineSymbol(math, ams, rel, "\ue018", "\\@nsupseteqq");
249
250
  defineSymbol(math, ams, rel, "\u228b", "\\supsetneq", true);
250
- defineSymbol(math, ams, rel, "\ue01b", "\\varsupsetneq");
251
+ defineSymbol(math, ams, rel, "\ue01b", "\\@varsupsetneq");
251
252
  defineSymbol(math, ams, rel, "\u2acc", "\\supsetneqq", true);
252
- defineSymbol(math, ams, rel, "\ue019", "\\varsupsetneqq");
253
+ defineSymbol(math, ams, rel, "\ue019", "\\@varsupsetneqq");
253
254
  defineSymbol(math, ams, rel, "\u22ae", "\\nVdash", true);
254
255
  defineSymbol(math, ams, rel, "\u2ab5", "\\precneqq", true);
255
256
  defineSymbol(math, ams, rel, "\u2ab6", "\\succneqq", true);
256
- defineSymbol(math, ams, rel, "\ue016", "\\nsubseteqq");
257
+ defineSymbol(math, ams, rel, "\ue016", "\\@nsubseteqq");
257
258
  defineSymbol(math, ams, bin, "\u22b4", "\\unlhd");
258
259
  defineSymbol(math, ams, bin, "\u22b5", "\\unrhd");
259
260
 
@@ -278,7 +279,6 @@ defineSymbol(math, ams, textord, "\u2204", "\\nexists");
278
279
  defineSymbol(math, ams, textord, "\u2127", "\\mho");
279
280
  defineSymbol(math, ams, textord, "\u2132", "\\Finv", true);
280
281
  defineSymbol(math, ams, textord, "\u2141", "\\Game", true);
281
- defineSymbol(math, ams, textord, "\u006b", "\\Bbbk");
282
282
  defineSymbol(math, ams, textord, "\u2035", "\\backprime");
283
283
  defineSymbol(math, ams, textord, "\u25b2", "\\blacktriangle");
284
284
  defineSymbol(math, ams, textord, "\u25bc", "\\blacktriangledown");
@@ -568,7 +568,7 @@ defineSymbol(math, main, rel, "\u2265", "\\geq", true);
568
568
  defineSymbol(math, main, rel, "\u2190", "\\gets");
569
569
  defineSymbol(math, main, rel, ">", "\\gt");
570
570
  defineSymbol(math, main, rel, "\u2208", "\\in", true);
571
- defineSymbol(math, main, rel, "\u0338", "\\@not");
571
+ defineSymbol(math, main, rel, "\ue020", "\\@not");
572
572
  defineSymbol(math, main, rel, "\u2282", "\\subset", true);
573
573
  defineSymbol(math, main, rel, "\u2283", "\\supset", true);
574
574
  defineSymbol(math, main, rel, "\u2286", "\\subseteq", true);
@@ -625,6 +625,8 @@ defineSymbol(math, main, open, "[", "\\lbrack");
625
625
  defineSymbol(text, main, textord, "[", "\\lbrack");
626
626
  defineSymbol(math, main, close, "]", "\\rbrack");
627
627
  defineSymbol(text, main, textord, "]", "\\rbrack");
628
+ defineSymbol(math, main, open, "(", "\\lparen");
629
+ defineSymbol(math, main, close, ")", "\\rparen");
628
630
  defineSymbol(text, main, textord, "<", "\\textless"); // in T1 fontenc
629
631
  defineSymbol(text, main, textord, ">", "\\textgreater"); // in T1 fontenc
630
632
  defineSymbol(math, main, open, "\u230a", "\\lfloor", true);
@@ -639,6 +641,8 @@ defineSymbol(math, main, textord, "\u2225", "\\|");
639
641
  defineSymbol(math, main, textord, "\u2225", "\\Vert");
640
642
  defineSymbol(text, main, textord, "\u2225", "\\textbardbl");
641
643
  defineSymbol(text, main, textord, "~", "\\textasciitilde");
644
+ defineSymbol(text, main, textord, "\\", "\\textbackslash");
645
+ defineSymbol(text, main, textord, "^", "\\textasciicircum");
642
646
  defineSymbol(math, main, rel, "\u2191", "\\uparrow", true);
643
647
  defineSymbol(math, main, rel, "\u21d1", "\\Uparrow", true);
644
648
  defineSymbol(math, main, rel, "\u2193", "\\downarrow", true);
@@ -769,6 +773,24 @@ for (let i = 0; i < letters.length; i++) {
769
773
  defineSymbol(text, main, textord, ch, ch);
770
774
  }
771
775
 
776
+ // Blackboard bold and script letters in Unicode range
777
+ defineSymbol(math, ams, textord, "C", "\u2102"); // blackboard bold
778
+ defineSymbol(text, ams, textord, "C", "\u2102");
779
+ defineSymbol(math, ams, textord, "H", "\u210D");
780
+ defineSymbol(text, ams, textord, "H", "\u210D");
781
+ defineSymbol(math, ams, textord, "N", "\u2115");
782
+ defineSymbol(text, ams, textord, "N", "\u2115");
783
+ defineSymbol(math, ams, textord, "P", "\u2119");
784
+ defineSymbol(text, ams, textord, "P", "\u2119");
785
+ defineSymbol(math, ams, textord, "Q", "\u211A");
786
+ defineSymbol(text, ams, textord, "Q", "\u211A");
787
+ defineSymbol(math, ams, textord, "R", "\u211D");
788
+ defineSymbol(text, ams, textord, "R", "\u211D");
789
+ defineSymbol(math, ams, textord, "Z", "\u2124");
790
+ defineSymbol(text, ams, textord, "Z", "\u2124");
791
+ defineSymbol(math, main, mathord, "h", "\u210E"); // italic h, Planck constant
792
+ defineSymbol(text, main, mathord, "h", "\u210E");
793
+
772
794
  // The next loop loads wide (surrogate pair) characters.
773
795
  // We support some letters in the Unicode range U+1D400 to U+1D7FF,
774
796
  // Mathematical Alphanumeric Symbols.
package/src/tree.js CHANGED
@@ -41,10 +41,6 @@ export class DocumentFragment<ChildType: VirtualNode>
41
41
  return utils.contains(this.classes, className);
42
42
  }
43
43
 
44
- tryCombine(sibling: HtmlDomNode): boolean {
45
- return false;
46
- }
47
-
48
44
  /** Convert the fragment into a node. */
49
45
  toNode(): Node {
50
46
  const frag = document.createDocumentFragment();
package/src/types.js CHANGED
@@ -12,22 +12,23 @@ export type Mode = "math" | "text";
12
12
  // - "color": An html color, like "#abc" or "blue"
13
13
  // - "url": An url string, in which "\" will be ignored
14
14
  // - if it precedes [#$%&~_^\{}]
15
+ // - "raw": A string, allowing single character, percent sign,
16
+ // and nested braces
15
17
  // - "original": The same type as the environment that the
16
18
  // function being parsed is in (e.g. used for the
17
19
  // bodies of functions like \textcolor where the
18
20
  // first argument is special and the second
19
21
  // argument is parsed normally)
20
22
  // - Mode: Node group parsed in given mode.
21
- export type ArgType = "color" | "size" | "url" | "original" | Mode;
23
+ export type ArgType = "color" | "size" | "url" | "raw" | "original" | Mode;
22
24
 
23
25
  // LaTeX display style.
24
26
  export type StyleStr = "text" | "display" | "script" | "scriptscript";
25
27
 
26
28
  // Allowable token text for "break" arguments in parser.
27
- export type BreakToken = "]" | "}" | "$" | "\\)" | "\\cr";
29
+ export type BreakToken = "]" | "}" | "\\endgroup" | "$" | "\\)" | "\\cr";
28
30
 
29
31
  // Math font variants.
30
32
  export type FontVariant = "bold" | "bold-italic" | "bold-sans-serif" |
31
33
  "double-struck" | "fraktur" | "italic" | "monospace" | "normal" | "sans-serif" |
32
34
  "sans-serif-bold-italic" | "sans-serif-italic" | "script";
33
-
@@ -14,7 +14,7 @@ if (fs.statSync(__filename).mtime <= targetMtime && fs.statSync(
14
14
  return;
15
15
  }
16
16
 
17
- require('babel-register')({plugins: ["transform-es2015-modules-commonjs"]});
17
+ require('@babel/register');
18
18
  const accents = require('./unicodeAccents').default;
19
19
 
20
20
  const encode = function(string) {
package/src/utils.js CHANGED
@@ -6,32 +6,11 @@
6
6
 
7
7
  import type {AnyParseNode} from "./parseNode";
8
8
 
9
- /**
10
- * Provide an `indexOf` function which works in IE8, but defers to native if
11
- * possible.
12
- */
13
- const nativeIndexOf = Array.prototype.indexOf;
14
- const indexOf = function<T>(list: Array<T>, elem: T): number {
15
- if (list == null) {
16
- return -1;
17
- }
18
- if (nativeIndexOf && list.indexOf === nativeIndexOf) {
19
- return list.indexOf(elem);
20
- }
21
- const l = list.length;
22
- for (let i = 0; i < l; i++) {
23
- if (list[i] === elem) {
24
- return i;
25
- }
26
- }
27
- return -1;
28
- };
29
-
30
9
  /**
31
10
  * Return whether an element is contained in a list
32
11
  */
33
12
  const contains = function<T>(list: Array<T>, elem: T): boolean {
34
- return indexOf(list, elem) !== -1;
13
+ return list.indexOf(elem) !== -1;
35
14
  };
36
15
 
37
16
  /**
@@ -66,31 +45,6 @@ function escape(text: mixed): string {
66
45
  return String(text).replace(ESCAPE_REGEX, match => ESCAPE_LOOKUP[match]);
67
46
  }
68
47
 
69
- /**
70
- * A function to set the text content of a DOM element in all supported
71
- * browsers. Note that we don't define this if there is no document.
72
- */
73
- let setTextContent;
74
- if (typeof document !== "undefined") {
75
- const testNode = document.createElement("span");
76
- if ("textContent" in testNode) {
77
- setTextContent = function(node: Node, text: string) {
78
- node.textContent = text;
79
- };
80
- } else {
81
- setTextContent = function(node: Node, text: string) {
82
- node.innerText = text;
83
- };
84
- }
85
- }
86
-
87
- /**
88
- * A function to clear a node.
89
- */
90
- function clearNode(node: Node) {
91
- setTextContent(node, "");
92
- }
93
-
94
48
  /**
95
49
  * Sometimes we want to pull out the innermost element of a group. In most
96
50
  * cases, this will just be the group itself, but when ordgroups and colors have
@@ -137,26 +91,11 @@ export const assert = function<T>(value: ?T): T {
137
91
  return value;
138
92
  };
139
93
 
140
- export const assertType = function<T>(val: mixed, Cls: Class<T>): T {
141
- if (val instanceof Cls) {
142
- return val;
143
- }
144
-
145
- // $FlowFixMe: Get constructor name if possible.
146
- const expected = String(Cls.name || Cls);
147
- // $FlowFixMe: Get constructor name if possible; else stringify value.
148
- const actual = String(val.constructor.name || val);
149
- throw new Error(`Expected ${expected} but got ${actual}.`);
150
- };
151
-
152
94
  export default {
153
95
  contains,
154
96
  deflt,
155
97
  escape,
156
98
  hyphenate,
157
- indexOf,
158
- setTextContent,
159
- clearNode,
160
99
  getBaseElem,
161
100
  isCharacterBox,
162
101
  };
@@ -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
- ["mathit", "textit", "Math-Italic"], // A-Z italic
29
- ["mathit", "textit", "Math-Italic"], // a-z italic
28
+ ["mathdefault", "textit", "Math-Italic"], // A-Z italic
29
+ ["mathdefault", "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