temml 0.10.23 → 0.10.29
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -1
- package/contrib/auto-render/dist/auto-render.js +4 -7
- package/contrib/auto-render/dist/auto-render.min.js +1 -1
- package/contrib/auto-render/test/auto-render.js +4 -7
- package/contrib/mhchem/mhchem.js +19 -5
- package/contrib/mhchem/mhchem.min.js +1 -1
- package/dist/Temml-Asana.css +119 -34
- package/dist/Temml-Fira.css +119 -34
- package/dist/Temml-Latin-Modern.css +119 -34
- package/dist/Temml-Libertinus.css +119 -34
- package/dist/Temml-Local.css +119 -34
- package/dist/Temml-STIX2.css +119 -34
- package/dist/temml.cjs +7180 -6904
- package/dist/temml.js +4775 -4513
- package/dist/temml.min.js +1 -1
- package/dist/temml.mjs +7180 -6904
- package/dist/temmlPostProcess.js +1 -3
- package/package.json +8 -5
- package/src/Parser.js +7 -4
- package/src/Settings.js +5 -1
- package/src/buildMathML.js +55 -32
- package/src/environments/array.js +54 -13
- package/src/environments/cd.js +1 -1
- package/src/functions/accent.js +32 -7
- package/src/functions/def.js +4 -2
- package/src/functions/enclose.js +60 -31
- package/src/functions/op.js +15 -1
- package/src/functions/supsub.js +2 -2
- package/src/functions/text.js +7 -3
- package/src/macros.js +5 -1
- package/src/postProcess.js +1 -1
- package/src/symbols.js +73 -4
- package/src/utils.js +21 -3
package/src/functions/text.js
CHANGED
@@ -30,9 +30,12 @@ const styleWithFont = (group, style) => {
|
|
30
30
|
return style.withTextFontFamily(textFontFamilies[font]);
|
31
31
|
} else if (textFontWeights[font]) {
|
32
32
|
return style.withTextFontWeight(textFontWeights[font]);
|
33
|
-
} else {
|
34
|
-
return style.
|
33
|
+
} else if (font === "\\emph") {
|
34
|
+
return style.fontShape === "textit"
|
35
|
+
? style.withTextFontShape("textup")
|
36
|
+
: style.withTextFontShape("textit")
|
35
37
|
}
|
38
|
+
return style.withTextFontShape(textFontShapes[font])
|
36
39
|
};
|
37
40
|
|
38
41
|
defineFunction({
|
@@ -50,7 +53,8 @@ defineFunction({
|
|
50
53
|
"\\textmd",
|
51
54
|
// Font Shapes
|
52
55
|
"\\textit",
|
53
|
-
"\\textup"
|
56
|
+
"\\textup",
|
57
|
+
"\\emph"
|
54
58
|
],
|
55
59
|
props: {
|
56
60
|
numArgs: 1,
|
package/src/macros.js
CHANGED
@@ -82,7 +82,7 @@ defineMacro("\\TextOrMath", function(context) {
|
|
82
82
|
}
|
83
83
|
});
|
84
84
|
|
85
|
-
const stringFromArg = arg => {
|
85
|
+
export const stringFromArg = arg => {
|
86
86
|
// Reverse the order of the arg and return a string.
|
87
87
|
let str = ""
|
88
88
|
for (let i = arg.length - 1; i > -1; i--) {
|
@@ -246,6 +246,10 @@ defineMacro("\\underbar", "\\underline{\\text{#1}}");
|
|
246
246
|
defineMacro("\\vdots", "{\\varvdots\\rule{0pt}{15pt}}");
|
247
247
|
defineMacro("\u22ee", "\\vdots");
|
248
248
|
|
249
|
+
// {array} environment gaps
|
250
|
+
defineMacro("\\arraystretch", "1") // line spacing factor times 12pt
|
251
|
+
defineMacro("\\arraycolsep", "6pt") // half the width separating columns
|
252
|
+
|
249
253
|
//////////////////////////////////////////////////////////////////////
|
250
254
|
// amsmath.sty
|
251
255
|
// http://mirrors.concertpass.com/tex-archive/macros/latex/required/amsmath/amsmath.pdf
|
package/src/postProcess.js
CHANGED
package/src/symbols.js
CHANGED
@@ -427,6 +427,7 @@ defineSymbol(math, bin, "\u22d3", "\\Cup", true);
|
|
427
427
|
defineSymbol(math, bin, "\u2a5e", "\\doublebarwedge", true);
|
428
428
|
defineSymbol(math, bin, "\u229f", "\\boxminus", true);
|
429
429
|
defineSymbol(math, bin, "\u229e", "\\boxplus", true);
|
430
|
+
defineSymbol(math, bin, "\u29C4", "\\boxslash", true);
|
430
431
|
defineSymbol(math, bin, "\u22c7", "\\divideontimes", true);
|
431
432
|
defineSymbol(math, bin, "\u22c9", "\\ltimes", true);
|
432
433
|
defineSymbol(math, bin, "\u22ca", "\\rtimes", true);
|
@@ -446,7 +447,72 @@ defineSymbol(math, bin, "\u27d5", "\\leftouterjoin", true);
|
|
446
447
|
defineSymbol(math, bin, "\u27d6", "\\rightouterjoin", true);
|
447
448
|
defineSymbol(math, bin, "\u27d7", "\\fullouterjoin", true);
|
448
449
|
|
449
|
-
|
450
|
+
// stix Binary Operators
|
451
|
+
defineSymbol(math, bin, "\u2238", "\\dotminus", true);
|
452
|
+
defineSymbol(math, bin, "\u27D1", "\\wedgedot", true);
|
453
|
+
defineSymbol(math, bin, "\u27C7", "\\veedot", true);
|
454
|
+
defineSymbol(math, bin, "\u2A62", "\\doublebarvee", true);
|
455
|
+
defineSymbol(math, bin, "\u2A63", "\\veedoublebar", true)
|
456
|
+
defineSymbol(math, bin, "\u2A5F", "\\wedgebar", true)
|
457
|
+
defineSymbol(math, bin, "\u2A60", "\\wedgedoublebar", true)
|
458
|
+
defineSymbol(math, bin, "\u2A54", "\\Vee", true)
|
459
|
+
defineSymbol(math, bin, "\u2A53", "\\Wedge", true)
|
460
|
+
defineSymbol(math, bin, "\u2A43", "\\barcap", true)
|
461
|
+
defineSymbol(math, bin, "\u2A42", "\\barcup", true)
|
462
|
+
defineSymbol(math, bin, "\u2A48", "\\capbarcup", true)
|
463
|
+
defineSymbol(math, bin, "\u2A40", "\\capdot", true)
|
464
|
+
defineSymbol(math, bin, "\u2A47", "\\capovercup", true)
|
465
|
+
defineSymbol(math, bin, "\u2A46", "\\cupovercap", true)
|
466
|
+
defineSymbol(math, bin, "\u2A4D", "\\closedvarcap", true)
|
467
|
+
defineSymbol(math, bin, "\u2A4C", "\\closedvarcup", true)
|
468
|
+
defineSymbol(math, bin, "\u2A2A", "\\minusdot", true)
|
469
|
+
defineSymbol(math, bin, "\u2A2B", "\\minusfdots", true)
|
470
|
+
defineSymbol(math, bin, "\u2A2C", "\\minusrdots", true)
|
471
|
+
defineSymbol(math, bin, "\u22BB", "\\Xor", true)
|
472
|
+
defineSymbol(math, bin, "\u22BC", "\\Nand", true)
|
473
|
+
defineSymbol(math, bin, "\u22BD", "\\Nor", true)
|
474
|
+
defineSymbol(math, bin, "\u22BD", "\\barvee")
|
475
|
+
defineSymbol(math, bin, "\u2AF4", "\\interleave", true)
|
476
|
+
defineSymbol(math, bin, "\u29E2", "\\shuffle", true)
|
477
|
+
defineSymbol(math, bin, "\u2AF6", "\\threedotcolon", true)
|
478
|
+
defineSymbol(math, bin, "\u2982", "\\typecolon", true)
|
479
|
+
defineSymbol(math, bin, "\u223E", "\\invlazys", true)
|
480
|
+
defineSymbol(math, bin, "\u2A4B", "\\twocaps", true)
|
481
|
+
defineSymbol(math, bin, "\u2A4A", "\\twocups", true)
|
482
|
+
defineSymbol(math, bin, "\u2A4E", "\\Sqcap", true)
|
483
|
+
defineSymbol(math, bin, "\u2A4F", "\\Sqcup", true)
|
484
|
+
defineSymbol(math, bin, "\u2A56", "\\veeonvee", true)
|
485
|
+
defineSymbol(math, bin, "\u2A55", "\\wedgeonwedge", true)
|
486
|
+
defineSymbol(math, bin, "\u29D7", "\\blackhourglass", true)
|
487
|
+
defineSymbol(math, bin, "\u29C6", "\\boxast", true)
|
488
|
+
defineSymbol(math, bin, "\u29C8", "\\boxbox", true)
|
489
|
+
defineSymbol(math, bin, "\u29C7", "\\boxcircle", true)
|
490
|
+
defineSymbol(math, bin, "\u229C", "\\circledequal", true)
|
491
|
+
defineSymbol(math, bin, "\u29B7", "\\circledparallel", true)
|
492
|
+
defineSymbol(math, bin, "\u29B6", "\\circledvert", true)
|
493
|
+
defineSymbol(math, bin, "\u29B5", "\\circlehbar", true)
|
494
|
+
defineSymbol(math, bin, "\u27E1", "\\concavediamond", true)
|
495
|
+
defineSymbol(math, bin, "\u27E2", "\\concavediamondtickleft", true)
|
496
|
+
defineSymbol(math, bin, "\u27E3", "\\concavediamondtickright", true)
|
497
|
+
defineSymbol(math, bin, "\u22C4", "\\diamond", true)
|
498
|
+
defineSymbol(math, bin, "\u29D6", "\\hourglass", true)
|
499
|
+
defineSymbol(math, bin, "\u27E0", "\\lozengeminus", true)
|
500
|
+
defineSymbol(math, bin, "\u233D", "\\obar", true)
|
501
|
+
defineSymbol(math, bin, "\u29B8", "\\obslash", true)
|
502
|
+
defineSymbol(math, bin, "\u2A38", "\\odiv", true)
|
503
|
+
defineSymbol(math, bin, "\u29C1", "\\ogreaterthan", true)
|
504
|
+
defineSymbol(math, bin, "\u29C0", "\\olessthan", true)
|
505
|
+
defineSymbol(math, bin, "\u29B9", "\\operp", true)
|
506
|
+
defineSymbol(math, bin, "\u2A37", "\\Otimes", true)
|
507
|
+
defineSymbol(math, bin, "\u2A36", "\\otimeshat", true)
|
508
|
+
defineSymbol(math, bin, "\u22C6", "\\star", true)
|
509
|
+
defineSymbol(math, bin, "\u25B3", "\\triangle", true)
|
510
|
+
defineSymbol(math, bin, "\u2A3A", "\\triangleminus", true)
|
511
|
+
defineSymbol(math, bin, "\u2A39", "\\triangleplus", true)
|
512
|
+
defineSymbol(math, bin, "\u2A3B", "\\triangletimes", true)
|
513
|
+
defineSymbol(math, bin, "\u27E4", "\\whitesquaretickleft", true)
|
514
|
+
defineSymbol(math, bin, "\u27E5", "\\whitesquaretickright", true)
|
515
|
+
defineSymbol(math, bin, "\u2A33", "\\smashtimes", true)
|
450
516
|
|
451
517
|
// AMS Arrows
|
452
518
|
// Note: unicode-math maps \u21e2 to their own function \rightdasharrow.
|
@@ -688,8 +754,8 @@ defineSymbol(math, spacing, null, "\\allowbreak");
|
|
688
754
|
defineSymbol(math, punct, ",", ",");
|
689
755
|
defineSymbol(text, punct, ":", ":");
|
690
756
|
defineSymbol(math, punct, ";", ";");
|
691
|
-
defineSymbol(math, bin, "\u22bc", "\\barwedge"
|
692
|
-
defineSymbol(math, bin, "\u22bb", "\\veebar"
|
757
|
+
defineSymbol(math, bin, "\u22bc", "\\barwedge");
|
758
|
+
defineSymbol(math, bin, "\u22bb", "\\veebar");
|
693
759
|
defineSymbol(math, bin, "\u2299", "\\odot", true);
|
694
760
|
// Firefox turns ⊕ into an emoji. So append \uFE0E. Define Unicode character in macros, not here.
|
695
761
|
defineSymbol(math, bin, "\u2295\uFE0E", "\\oplus");
|
@@ -702,7 +768,6 @@ defineSymbol(math, bin, "\u25b3", "\\bigtriangleup");
|
|
702
768
|
defineSymbol(math, bin, "\u25bd", "\\bigtriangledown");
|
703
769
|
defineSymbol(math, bin, "\u2020", "\\dagger");
|
704
770
|
defineSymbol(math, bin, "\u22c4", "\\diamond");
|
705
|
-
defineSymbol(math, bin, "\u22c6", "\\star");
|
706
771
|
defineSymbol(math, bin, "\u25c3", "\\triangleleft");
|
707
772
|
defineSymbol(math, bin, "\u25b9", "\\triangleright");
|
708
773
|
defineSymbol(math, open, "{", "\\{");
|
@@ -747,6 +812,10 @@ defineSymbol(math, op, "\u2210", "\\coprod");
|
|
747
812
|
defineSymbol(math, op, "\u22c1", "\\bigvee");
|
748
813
|
defineSymbol(math, op, "\u22c0", "\\bigwedge");
|
749
814
|
defineSymbol(math, op, "\u2a04", "\\biguplus");
|
815
|
+
defineSymbol(math, op, "\u2a04", "\\bigcupplus");
|
816
|
+
defineSymbol(math, op, "\u2a03", "\\bigcupdot");
|
817
|
+
defineSymbol(math, op, "\u2a07", "\\bigdoublevee");
|
818
|
+
defineSymbol(math, op, "\u2a08", "\\bigdoublewedge");
|
750
819
|
defineSymbol(math, op, "\u22c2", "\\bigcap");
|
751
820
|
defineSymbol(math, op, "\u22c3", "\\bigcup");
|
752
821
|
defineSymbol(math, op, "\u222b", "\\int");
|
package/src/utils.js
CHANGED
@@ -81,11 +81,29 @@ export const assert = function(value) {
|
|
81
81
|
|
82
82
|
/**
|
83
83
|
* Return the protocol of a URL, or "_relative" if the URL does not specify a
|
84
|
-
* protocol (and thus is relative)
|
84
|
+
* protocol (and thus is relative), or `null` if URL has invalid protocol
|
85
|
+
* (so should be outright rejected).
|
85
86
|
*/
|
86
87
|
export const protocolFromUrl = function(url) {
|
87
|
-
|
88
|
-
|
88
|
+
// Check for possible leading protocol.
|
89
|
+
// https://url.spec.whatwg.org/#url-parsing strips leading whitespace
|
90
|
+
// (\x00) or C0 control (\x00-\x1F) characters.
|
91
|
+
// eslint-disable-next-line no-control-regex
|
92
|
+
const protocol = /^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(url);
|
93
|
+
if (!protocol) {
|
94
|
+
return "_relative";
|
95
|
+
}
|
96
|
+
// Reject weird colons
|
97
|
+
if (protocol[2] !== ":") {
|
98
|
+
return null;
|
99
|
+
}
|
100
|
+
// Reject invalid characters in scheme according to
|
101
|
+
// https://datatracker.ietf.org/doc/html/rfc3986#section-3.1
|
102
|
+
if (!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(protocol[1])) {
|
103
|
+
return null;
|
104
|
+
}
|
105
|
+
// Lowercase the protocol
|
106
|
+
return protocol[1].toLowerCase();
|
89
107
|
};
|
90
108
|
|
91
109
|
/**
|