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.
- package/CHANGELOG.md +141 -0
- package/LICENSE +1 -1
- package/README.md +6 -6
- package/cli.js +0 -0
- package/contrib/auto-render/auto-render.js +12 -3
- package/contrib/copy-tex/README.md +3 -5
- package/contrib/mathtex-script-type/README.md +12 -14
- package/contrib/mhchem/README.md +3 -1
- package/contrib/render-a11y-string/render-a11y-string.js +712 -0
- package/contrib/render-a11y-string/test/render-a11y-string-spec.js +526 -0
- package/dist/README.md +6 -6
- package/dist/contrib/auto-render.js +14 -3
- package/dist/contrib/auto-render.min.js +1 -1
- package/dist/contrib/auto-render.mjs +14 -3
- package/dist/contrib/mhchem.min.js +1 -1
- package/dist/contrib/render-a11y-string.js +870 -0
- package/dist/contrib/render-a11y-string.min.js +1 -0
- package/dist/contrib/render-a11y-string.mjs +753 -0
- package/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
- package/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- package/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_Main-Bold.woff +0 -0
- package/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- package/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- package/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
- package/dist/fonts/KaTeX_Main-Italic.woff +0 -0
- package/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Main-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- package/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- package/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
- package/dist/fonts/KaTeX_Math-Italic.woff +0 -0
- package/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- package/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- package/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- package/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- package/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Script-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/dist/katex.css +34 -10
- package/dist/katex.js +2906 -2115
- package/dist/katex.min.css +1 -1
- package/dist/katex.min.js +1 -1
- package/dist/katex.mjs +2809 -2020
- package/package.json +12 -11
- package/src/Lexer.js +1 -0
- package/src/MacroExpander.js +39 -10
- package/src/Options.js +15 -75
- package/src/Parser.js +152 -115
- package/src/Settings.js +70 -7
- package/src/Token.js +2 -0
- package/src/buildCommon.js +24 -90
- package/src/buildHTML.js +31 -31
- package/src/buildMathML.js +52 -9
- package/src/buildTree.js +13 -6
- package/src/defineFunction.js +7 -22
- package/src/delimiter.js +66 -27
- package/src/domTree.js +71 -4
- package/src/environments/array.js +235 -25
- package/src/fontMetrics.js +11 -2
- package/src/functions/accent.js +9 -9
- package/src/functions/accentunder.js +2 -2
- package/src/functions/arrow.js +15 -5
- package/src/functions/color.js +9 -38
- package/src/functions/def.js +184 -0
- package/src/functions/delimsizing.js +32 -8
- package/src/functions/enclose.js +33 -6
- package/src/functions/font.js +4 -1
- package/src/functions/genfrac.js +39 -27
- package/src/functions/horizBrace.js +6 -7
- package/src/functions/href.js +16 -0
- package/src/functions/html.js +102 -0
- package/src/functions/includegraphics.js +153 -0
- package/src/functions/lap.js +4 -7
- package/src/functions/math.js +1 -5
- package/src/functions/mclass.js +41 -2
- package/src/functions/op.js +27 -111
- package/src/functions/operatorname.js +136 -92
- package/src/functions/ordgroup.js +1 -1
- package/src/functions/overline.js +3 -2
- package/src/functions/phantom.js +5 -2
- package/src/functions/raisebox.js +4 -16
- package/src/functions/rule.js +20 -9
- package/src/functions/styling.js +0 -9
- package/src/functions/supsub.js +27 -7
- package/src/functions/symbolsOp.js +4 -0
- package/src/functions/tag.js +20 -4
- package/src/functions/text.js +4 -3
- package/src/functions/underline.js +3 -2
- package/src/functions/utils/assembleSupSub.js +110 -0
- package/src/functions.js +3 -0
- package/src/katex.less +45 -9
- package/src/macros.js +259 -98
- package/src/mathMLTree.js +6 -4
- package/src/parseNode.js +37 -57
- package/src/stretchy.js +3 -1
- package/src/svgGeometry.js +136 -44
- package/src/symbols.js +52 -69
- package/src/tree.js +2 -2
- package/src/types.js +2 -1
- package/src/unicodeAccents.js +3 -1
- package/src/unicodeSymbols.js +30 -321
- package/src/utils.js +10 -0
- package/src/wide-character.js +2 -2
- package/src/unicodeMake.js +0 -70
package/src/symbols.js
CHANGED
|
@@ -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
|
-
|
|
206
|
-
defineSymbol(math, ams, rel, "\
|
|
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", "
|
|
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", "
|
|
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", "
|
|
226
|
+
defineSymbol(math, ams, rel, "\ue01a", "\\@varsubsetneq");
|
|
226
227
|
defineSymbol(math, ams, rel, "\u2acb", "\\subsetneqq", true);
|
|
227
|
-
defineSymbol(math, ams, rel, "\ue017", "
|
|
228
|
+
defineSymbol(math, ams, rel, "\ue017", "\\@varsubsetneqq");
|
|
228
229
|
defineSymbol(math, ams, rel, "\u226f", "\\ngtr", true);
|
|
229
|
-
defineSymbol(math, ams, rel, "\ue00f", "
|
|
230
|
-
defineSymbol(math, ams, rel, "\ue00e", "
|
|
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", "
|
|
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", "
|
|
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", "
|
|
249
|
+
defineSymbol(math, ams, rel, "\ue018", "\\@nsupseteqq");
|
|
249
250
|
defineSymbol(math, ams, rel, "\u228b", "\\supsetneq", true);
|
|
250
|
-
defineSymbol(math, ams, rel, "\ue01b", "
|
|
251
|
+
defineSymbol(math, ams, rel, "\ue01b", "\\@varsupsetneq");
|
|
251
252
|
defineSymbol(math, ams, rel, "\u2acc", "\\supsetneqq", true);
|
|
252
|
-
defineSymbol(math, ams, rel, "\ue019", "
|
|
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", "
|
|
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");
|
|
@@ -287,8 +287,9 @@ defineSymbol(math, ams, textord, "\u29eb", "\\blacklozenge");
|
|
|
287
287
|
defineSymbol(math, ams, textord, "\u2605", "\\bigstar");
|
|
288
288
|
defineSymbol(math, ams, textord, "\u2222", "\\sphericalangle", true);
|
|
289
289
|
defineSymbol(math, ams, textord, "\u2201", "\\complement", true);
|
|
290
|
-
// unicode-math maps U+F0
|
|
290
|
+
// unicode-math maps U+F0 to \matheth. We map to AMS function \eth
|
|
291
291
|
defineSymbol(math, ams, textord, "\u00f0", "\\eth", true);
|
|
292
|
+
defineSymbol(text, main, textord, "\u00f0", "\u00f0");
|
|
292
293
|
defineSymbol(math, ams, textord, "\u2571", "\\diagup");
|
|
293
294
|
defineSymbol(math, ams, textord, "\u2572", "\\diagdown");
|
|
294
295
|
defineSymbol(math, ams, textord, "\u25a1", "\\square");
|
|
@@ -306,14 +307,14 @@ defineSymbol(math, ams, textord, "\u2138", "\\daleth", true);
|
|
|
306
307
|
defineSymbol(math, ams, textord, "\u2137", "\\gimel", true);
|
|
307
308
|
|
|
308
309
|
// AMS Greek
|
|
309
|
-
defineSymbol(math, ams, textord, "\u03dd", "\\digamma");
|
|
310
|
+
defineSymbol(math, ams, textord, "\u03dd", "\\digamma", true);
|
|
310
311
|
defineSymbol(math, ams, textord, "\u03f0", "\\varkappa");
|
|
311
312
|
|
|
312
313
|
// AMS Delimiters
|
|
313
|
-
defineSymbol(math, ams, open, "\u250c", "
|
|
314
|
-
defineSymbol(math, ams, close, "\u2510", "
|
|
315
|
-
defineSymbol(math, ams, open, "\u2514", "
|
|
316
|
-
defineSymbol(math, ams, close, "\u2518", "
|
|
314
|
+
defineSymbol(math, ams, open, "\u250c", "\\@ulcorner", true);
|
|
315
|
+
defineSymbol(math, ams, close, "\u2510", "\\@urcorner", true);
|
|
316
|
+
defineSymbol(math, ams, open, "\u2514", "\\@llcorner", true);
|
|
317
|
+
defineSymbol(math, ams, close, "\u2518", "\\@lrcorner", true);
|
|
317
318
|
|
|
318
319
|
// AMS Binary Relations
|
|
319
320
|
defineSymbol(math, ams, rel, "\u2266", "\\leqq", true);
|
|
@@ -545,28 +546,22 @@ defineSymbol(math, main, bin, "\u2228", "\\lor");
|
|
|
545
546
|
defineSymbol(math, main, bin, "\u2227", "\\wedge", true);
|
|
546
547
|
defineSymbol(math, main, bin, "\u2228", "\\vee", true);
|
|
547
548
|
defineSymbol(math, main, textord, "\u221a", "\\surd");
|
|
548
|
-
defineSymbol(math, main, open, "(", "(");
|
|
549
|
-
defineSymbol(math, main, open, "[", "[");
|
|
550
549
|
defineSymbol(math, main, open, "\u27e8", "\\langle", true);
|
|
551
550
|
defineSymbol(math, main, open, "\u2223", "\\lvert");
|
|
552
551
|
defineSymbol(math, main, open, "\u2225", "\\lVert");
|
|
553
|
-
defineSymbol(math, main, close, ")", ")");
|
|
554
|
-
defineSymbol(math, main, close, "]", "]");
|
|
555
552
|
defineSymbol(math, main, close, "?", "?");
|
|
556
553
|
defineSymbol(math, main, close, "!", "!");
|
|
557
554
|
defineSymbol(math, main, close, "\u27e9", "\\rangle", true);
|
|
558
555
|
defineSymbol(math, main, close, "\u2223", "\\rvert");
|
|
559
556
|
defineSymbol(math, main, close, "\u2225", "\\rVert");
|
|
560
557
|
defineSymbol(math, main, rel, "=", "=");
|
|
561
|
-
defineSymbol(math, main, rel, "<", "<");
|
|
562
|
-
defineSymbol(math, main, rel, ">", ">");
|
|
563
558
|
defineSymbol(math, main, rel, ":", ":");
|
|
564
559
|
defineSymbol(math, main, rel, "\u2248", "\\approx", true);
|
|
565
560
|
defineSymbol(math, main, rel, "\u2245", "\\cong", true);
|
|
566
561
|
defineSymbol(math, main, rel, "\u2265", "\\ge");
|
|
567
562
|
defineSymbol(math, main, rel, "\u2265", "\\geq", true);
|
|
568
563
|
defineSymbol(math, main, rel, "\u2190", "\\gets");
|
|
569
|
-
defineSymbol(math, main, rel, ">", "\\gt");
|
|
564
|
+
defineSymbol(math, main, rel, ">", "\\gt", true);
|
|
570
565
|
defineSymbol(math, main, rel, "\u2208", "\\in", true);
|
|
571
566
|
defineSymbol(math, main, rel, "\ue020", "\\@not");
|
|
572
567
|
defineSymbol(math, main, rel, "\u2282", "\\subset", true);
|
|
@@ -579,7 +574,7 @@ defineSymbol(math, main, rel, "\u22a8", "\\models");
|
|
|
579
574
|
defineSymbol(math, main, rel, "\u2190", "\\leftarrow", true);
|
|
580
575
|
defineSymbol(math, main, rel, "\u2264", "\\le");
|
|
581
576
|
defineSymbol(math, main, rel, "\u2264", "\\leq", true);
|
|
582
|
-
defineSymbol(math, main, rel, "<", "\\lt");
|
|
577
|
+
defineSymbol(math, main, rel, "<", "\\lt", true);
|
|
583
578
|
defineSymbol(math, main, rel, "\u2192", "\\rightarrow", true);
|
|
584
579
|
defineSymbol(math, main, rel, "\u2192", "\\to");
|
|
585
580
|
defineSymbol(math, ams, rel, "\u2271", "\\ngeq", true);
|
|
@@ -590,6 +585,7 @@ defineSymbol(math, main, spacing, "\u00a0", "\\space");
|
|
|
590
585
|
// Ref: LaTeX Source 2e: \DeclareRobustCommand{\nobreakspace}{%
|
|
591
586
|
defineSymbol(math, main, spacing, "\u00a0", "\\nobreakspace");
|
|
592
587
|
defineSymbol(text, main, spacing, "\u00a0", "\\ ");
|
|
588
|
+
defineSymbol(text, main, spacing, "\u00a0", " ");
|
|
593
589
|
defineSymbol(text, main, spacing, "\u00a0", "~");
|
|
594
590
|
defineSymbol(text, main, spacing, "\u00a0", "\\space");
|
|
595
591
|
defineSymbol(text, main, spacing, "\u00a0", "\\nobreakspace");
|
|
@@ -621,14 +617,14 @@ defineSymbol(text, main, textord, "}", "\\}");
|
|
|
621
617
|
defineSymbol(text, main, textord, "}", "\\textbraceright");
|
|
622
618
|
defineSymbol(math, main, open, "{", "\\lbrace");
|
|
623
619
|
defineSymbol(math, main, close, "}", "\\rbrace");
|
|
624
|
-
defineSymbol(math, main, open, "[", "\\lbrack");
|
|
625
|
-
defineSymbol(text, main, textord, "[", "\\lbrack");
|
|
626
|
-
defineSymbol(math, main, close, "]", "\\rbrack");
|
|
627
|
-
defineSymbol(text, main, textord, "]", "\\rbrack");
|
|
628
|
-
defineSymbol(math, main, open, "(", "\\lparen");
|
|
629
|
-
defineSymbol(math, main, close, ")", "\\rparen");
|
|
630
|
-
defineSymbol(text, main, textord, "<", "\\textless"); // in T1 fontenc
|
|
631
|
-
defineSymbol(text, main, textord, ">", "\\textgreater"); // in T1 fontenc
|
|
620
|
+
defineSymbol(math, main, open, "[", "\\lbrack", true);
|
|
621
|
+
defineSymbol(text, main, textord, "[", "\\lbrack", true);
|
|
622
|
+
defineSymbol(math, main, close, "]", "\\rbrack", true);
|
|
623
|
+
defineSymbol(text, main, textord, "]", "\\rbrack", true);
|
|
624
|
+
defineSymbol(math, main, open, "(", "\\lparen", true);
|
|
625
|
+
defineSymbol(math, main, close, ")", "\\rparen", true);
|
|
626
|
+
defineSymbol(text, main, textord, "<", "\\textless", true); // in T1 fontenc
|
|
627
|
+
defineSymbol(text, main, textord, ">", "\\textgreater", true); // in T1 fontenc
|
|
632
628
|
defineSymbol(math, main, open, "\u230a", "\\lfloor", true);
|
|
633
629
|
defineSymbol(math, main, close, "\u230b", "\\rfloor", true);
|
|
634
630
|
defineSymbol(math, main, open, "\u2308", "\\lceil", true);
|
|
@@ -636,7 +632,7 @@ defineSymbol(math, main, close, "\u2309", "\\rceil", true);
|
|
|
636
632
|
defineSymbol(math, main, textord, "\\", "\\backslash");
|
|
637
633
|
defineSymbol(math, main, textord, "\u2223", "|");
|
|
638
634
|
defineSymbol(math, main, textord, "\u2223", "\\vert");
|
|
639
|
-
defineSymbol(text, main, textord, "|", "\\textbar"); // in T1 fontenc
|
|
635
|
+
defineSymbol(text, main, textord, "|", "\\textbar", true); // in T1 fontenc
|
|
640
636
|
defineSymbol(math, main, textord, "\u2225", "\\|");
|
|
641
637
|
defineSymbol(math, main, textord, "\u2225", "\\Vert");
|
|
642
638
|
defineSymbol(text, main, textord, "\u2225", "\\textbardbl");
|
|
@@ -665,8 +661,6 @@ defineSymbol(math, main, op, "\u2a02", "\\bigotimes");
|
|
|
665
661
|
defineSymbol(math, main, op, "\u2a01", "\\bigoplus");
|
|
666
662
|
defineSymbol(math, main, op, "\u2a00", "\\bigodot");
|
|
667
663
|
defineSymbol(math, main, op, "\u222e", "\\oint");
|
|
668
|
-
defineSymbol(math, main, op, "\u222f", "\\oiint");
|
|
669
|
-
defineSymbol(math, main, op, "\u2230", "\\oiiint");
|
|
670
664
|
defineSymbol(math, main, op, "\u2a06", "\\bigsqcup");
|
|
671
665
|
defineSymbol(math, main, op, "\u222b", "\\smallint");
|
|
672
666
|
defineSymbol(text, main, inner, "\u2026", "\\textellipsis");
|
|
@@ -687,13 +681,15 @@ defineSymbol(math, main, accent, "\u005e", "\\hat");
|
|
|
687
681
|
defineSymbol(math, main, accent, "\u20d7", "\\vec");
|
|
688
682
|
defineSymbol(math, main, accent, "\u02d9", "\\dot");
|
|
689
683
|
defineSymbol(math, main, accent, "\u02da", "\\mathring");
|
|
690
|
-
|
|
691
|
-
defineSymbol(math, main, mathord, "\
|
|
684
|
+
// \imath and \jmath should be invariant to \mathrm, \mathbf, etc., so use PUA
|
|
685
|
+
defineSymbol(math, main, mathord, "\ue131", "\\@imath");
|
|
686
|
+
defineSymbol(math, main, mathord, "\ue237", "\\@jmath");
|
|
687
|
+
defineSymbol(math, main, textord, "\u0131", "\u0131");
|
|
688
|
+
defineSymbol(math, main, textord, "\u0237", "\u0237");
|
|
692
689
|
defineSymbol(text, main, textord, "\u0131", "\\i", true);
|
|
693
690
|
defineSymbol(text, main, textord, "\u0237", "\\j", true);
|
|
694
691
|
defineSymbol(text, main, textord, "\u00df", "\\ss", true);
|
|
695
692
|
defineSymbol(text, main, textord, "\u00e6", "\\ae", true);
|
|
696
|
-
defineSymbol(text, main, textord, "\u00e6", "\\ae", true);
|
|
697
693
|
defineSymbol(text, main, textord, "\u0153", "\\oe", true);
|
|
698
694
|
defineSymbol(text, main, textord, "\u00f8", "\\o", true);
|
|
699
695
|
defineSymbol(text, main, textord, "\u00c6", "\\AE", true);
|
|
@@ -720,17 +716,17 @@ export const ligatures = {
|
|
|
720
716
|
"''": true,
|
|
721
717
|
};
|
|
722
718
|
|
|
723
|
-
defineSymbol(text, main, textord, "\u2013", "--");
|
|
719
|
+
defineSymbol(text, main, textord, "\u2013", "--", true);
|
|
724
720
|
defineSymbol(text, main, textord, "\u2013", "\\textendash");
|
|
725
|
-
defineSymbol(text, main, textord, "\u2014", "---");
|
|
721
|
+
defineSymbol(text, main, textord, "\u2014", "---", true);
|
|
726
722
|
defineSymbol(text, main, textord, "\u2014", "\\textemdash");
|
|
727
|
-
defineSymbol(text, main, textord, "\u2018", "`");
|
|
723
|
+
defineSymbol(text, main, textord, "\u2018", "`", true);
|
|
728
724
|
defineSymbol(text, main, textord, "\u2018", "\\textquoteleft");
|
|
729
|
-
defineSymbol(text, main, textord, "\u2019", "'");
|
|
725
|
+
defineSymbol(text, main, textord, "\u2019", "'", true);
|
|
730
726
|
defineSymbol(text, main, textord, "\u2019", "\\textquoteright");
|
|
731
|
-
defineSymbol(text, main, textord, "\u201c", "``");
|
|
727
|
+
defineSymbol(text, main, textord, "\u201c", "``", true);
|
|
732
728
|
defineSymbol(text, main, textord, "\u201c", "\\textquotedblleft");
|
|
733
|
-
defineSymbol(text, main, textord, "\u201d", "''");
|
|
729
|
+
defineSymbol(text, main, textord, "\u201d", "''", true);
|
|
734
730
|
defineSymbol(text, main, textord, "\u201d", "\\textquotedblright");
|
|
735
731
|
// \degree from gensymb package
|
|
736
732
|
defineSymbol(math, main, textord, "\u00b0", "\\degree", true);
|
|
@@ -738,18 +734,14 @@ defineSymbol(text, main, textord, "\u00b0", "\\degree");
|
|
|
738
734
|
// \textdegree from inputenc package
|
|
739
735
|
defineSymbol(text, main, textord, "\u00b0", "\\textdegree", true);
|
|
740
736
|
// TODO: In LaTeX, \pounds can generate a different character in text and math
|
|
741
|
-
// mode, but among our fonts, only Main-
|
|
742
|
-
defineSymbol(math, main,
|
|
743
|
-
defineSymbol(math, main,
|
|
744
|
-
defineSymbol(text, main,
|
|
745
|
-
defineSymbol(text, main,
|
|
737
|
+
// mode, but among our fonts, only Main-Regular defines this character "163".
|
|
738
|
+
defineSymbol(math, main, textord, "\u00a3", "\\pounds");
|
|
739
|
+
defineSymbol(math, main, textord, "\u00a3", "\\mathsterling", true);
|
|
740
|
+
defineSymbol(text, main, textord, "\u00a3", "\\pounds");
|
|
741
|
+
defineSymbol(text, main, textord, "\u00a3", "\\textsterling", true);
|
|
746
742
|
defineSymbol(math, ams, textord, "\u2720", "\\maltese");
|
|
747
743
|
defineSymbol(text, ams, textord, "\u2720", "\\maltese");
|
|
748
744
|
|
|
749
|
-
defineSymbol(text, main, spacing, "\u00a0", "\\ ");
|
|
750
|
-
defineSymbol(text, main, spacing, "\u00a0", " ");
|
|
751
|
-
defineSymbol(text, main, spacing, "\u00a0", "~");
|
|
752
|
-
|
|
753
745
|
// There are lots of symbols which are the same, so we add them in afterwards.
|
|
754
746
|
// All of these are textords in math mode
|
|
755
747
|
const mathTextSymbols = "0123456789/@.\"";
|
|
@@ -759,7 +751,7 @@ for (let i = 0; i < mathTextSymbols.length; i++) {
|
|
|
759
751
|
}
|
|
760
752
|
|
|
761
753
|
// All of these are textords in text mode
|
|
762
|
-
const textSymbols = "0123456789!@*()
|
|
754
|
+
const textSymbols = "0123456789!@*()-=+\";:?/.,";
|
|
763
755
|
for (let i = 0; i < textSymbols.length; i++) {
|
|
764
756
|
const ch = textSymbols.charAt(i);
|
|
765
757
|
defineSymbol(text, main, textord, ch, ch);
|
|
@@ -879,18 +871,9 @@ for (let i = 0; i < 10; i++) {
|
|
|
879
871
|
// but they are not actually in the font, nor are they supported by the
|
|
880
872
|
// Unicode accent mechanism, so they fall back to Times font and look ugly.
|
|
881
873
|
// TODO(edemaine): Fix this.
|
|
882
|
-
export const extraLatin = "
|
|
874
|
+
export const extraLatin = "\u00c7\u00d0\u00de\u00e7\u00fe";
|
|
883
875
|
for (let i = 0; i < extraLatin.length; i++) {
|
|
884
876
|
const ch = extraLatin.charAt(i);
|
|
885
877
|
defineSymbol(math, main, mathord, ch, ch);
|
|
886
878
|
defineSymbol(text, main, textord, ch, ch);
|
|
887
879
|
}
|
|
888
|
-
defineSymbol(text, main, textord, "ð", "ð");
|
|
889
|
-
|
|
890
|
-
// Unicode versions of existing characters
|
|
891
|
-
defineSymbol(text, main, textord, "\u2013", "–");
|
|
892
|
-
defineSymbol(text, main, textord, "\u2014", "—");
|
|
893
|
-
defineSymbol(text, main, textord, "\u2018", "‘");
|
|
894
|
-
defineSymbol(text, main, textord, "\u2019", "’");
|
|
895
|
-
defineSymbol(text, main, textord, "\u201c", "“");
|
|
896
|
-
defineSymbol(text, main, textord, "\u201d", "”");
|
package/src/tree.js
CHANGED
|
@@ -20,7 +20,7 @@ export interface VirtualNode {
|
|
|
20
20
|
*/
|
|
21
21
|
export class DocumentFragment<ChildType: VirtualNode>
|
|
22
22
|
implements HtmlDomNode, MathDomNode {
|
|
23
|
-
children: ChildType
|
|
23
|
+
children: $ReadOnlyArray<ChildType>;
|
|
24
24
|
// HtmlDomNode
|
|
25
25
|
classes: string[];
|
|
26
26
|
height: number;
|
|
@@ -28,7 +28,7 @@ export class DocumentFragment<ChildType: VirtualNode>
|
|
|
28
28
|
maxFontSize: number;
|
|
29
29
|
style: CssStyle; // Never used; needed for satisfying interface.
|
|
30
30
|
|
|
31
|
-
constructor(children: ChildType
|
|
31
|
+
constructor(children: $ReadOnlyArray<ChildType>) {
|
|
32
32
|
this.children = children;
|
|
33
33
|
this.classes = [];
|
|
34
34
|
this.height = 0;
|
package/src/types.js
CHANGED
|
@@ -20,7 +20,8 @@ export type Mode = "math" | "text";
|
|
|
20
20
|
// first argument is special and the second
|
|
21
21
|
// argument is parsed normally)
|
|
22
22
|
// - Mode: Node group parsed in given mode.
|
|
23
|
-
export type ArgType = "color" | "size" | "url" | "raw" | "original" |
|
|
23
|
+
export type ArgType = "color" | "size" | "url" | "raw" | "original" | "hbox" |
|
|
24
|
+
Mode;
|
|
24
25
|
|
|
25
26
|
// LaTeX display style.
|
|
26
27
|
export type StyleStr = "text" | "display" | "script" | "scriptscript";
|
package/src/unicodeAccents.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// Mapping of Unicode accent characters to their LaTeX equivalent in text and
|
|
2
2
|
// math mode (when they exist).
|
|
3
|
-
|
|
3
|
+
// This exports a CommonJS module, allowing to be required in unicodeSymbols
|
|
4
|
+
// without transpiling.
|
|
5
|
+
module.exports = {
|
|
4
6
|
'\u0301': {text: "\\'", math: '\\acute'},
|
|
5
7
|
'\u0300': {text: '\\`', math: '\\grave'},
|
|
6
8
|
'\u0308': {text: '\\"', math: '\\ddot'},
|