temml 0.9.2 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -1
- package/dist/Temml-Asana.css +0 -4
- package/dist/Temml-Latin-Modern.css +0 -5
- package/dist/Temml-Libertinus.css +0 -5
- package/dist/Temml-Local.css +0 -4
- package/dist/Temml-STIX2.css +0 -5
- package/dist/temml.cjs +53 -13
- package/dist/temml.js +53 -13
- package/dist/temml.min.js +1 -1
- package/dist/temml.mjs +53 -13
- package/dist/temmlPostProcess.js +1 -1
- package/package.json +1 -1
- package/src/Parser.js +17 -0
- package/src/asciiFromScript.js +29 -0
- package/src/functions/cr.js +2 -3
- package/src/functions/font.js +0 -1
- package/src/functions/symbolsOrd.js +1 -4
- package/src/postProcess.js +1 -1
- package/src/symbols.js +2 -0
- package/src/variant.js +1 -4
package/README.md
CHANGED
package/dist/Temml-Asana.css
CHANGED
package/dist/Temml-Local.css
CHANGED
package/dist/Temml-STIX2.css
CHANGED
package/dist/temml.cjs
CHANGED
@@ -1234,6 +1234,8 @@ defineSymbol(math, textord, "\u2018", "`");
|
|
1234
1234
|
defineSymbol(math, textord, "$", "\\$");
|
1235
1235
|
defineSymbol(text, textord, "$", "\\$");
|
1236
1236
|
defineSymbol(text, textord, "$", "\\textdollar");
|
1237
|
+
defineSymbol(math, textord, "¢", "\\cent");
|
1238
|
+
defineSymbol(text, textord, "¢", "\\cent");
|
1237
1239
|
defineSymbol(math, textord, "%", "\\%");
|
1238
1240
|
defineSymbol(text, textord, "%", "\\%");
|
1239
1241
|
defineSymbol(math, textord, "_", "\\_");
|
@@ -3148,13 +3150,12 @@ defineFunction({
|
|
3148
3150
|
names: ["\\\\"],
|
3149
3151
|
props: {
|
3150
3152
|
numArgs: 0,
|
3151
|
-
numOptionalArgs:
|
3152
|
-
argTypes: ["size"],
|
3153
|
+
numOptionalArgs: 0,
|
3153
3154
|
allowedInText: true
|
3154
3155
|
},
|
3155
3156
|
|
3156
3157
|
handler({ parser }, args, optArgs) {
|
3157
|
-
const size =
|
3158
|
+
const size = parser.gullet.future().text === "[" ? parser.parseSizeGroup(true) : null;
|
3158
3159
|
const newLine = !parser.settings.displayMode;
|
3159
3160
|
return {
|
3160
3161
|
type: "cr",
|
@@ -4914,7 +4915,6 @@ defineFunction({
|
|
4914
4915
|
"\\mathscr",
|
4915
4916
|
"\\mathsf",
|
4916
4917
|
"\\mathtt",
|
4917
|
-
"\\oldstylenums",
|
4918
4918
|
|
4919
4919
|
// aliases
|
4920
4920
|
"\\Bbb",
|
@@ -7328,8 +7328,7 @@ const fontMap = {
|
|
7328
7328
|
mathfrak: "fraktur",
|
7329
7329
|
mathscr: "script",
|
7330
7330
|
mathsf: "sans-serif",
|
7331
|
-
mathtt: "monospace"
|
7332
|
-
oldstylenums: "oldstylenums"
|
7331
|
+
mathtt: "monospace"
|
7333
7332
|
};
|
7334
7333
|
|
7335
7334
|
/**
|
@@ -7399,8 +7398,6 @@ const getVariant = function(group, style) {
|
|
7399
7398
|
return "sans-serif"
|
7400
7399
|
case "mathtt":
|
7401
7400
|
return "monospace"
|
7402
|
-
case "oldstylenums":
|
7403
|
-
return "oldstylenums"
|
7404
7401
|
}
|
7405
7402
|
|
7406
7403
|
let text = group.text;
|
@@ -7696,10 +7693,7 @@ defineFunctionBuilders({
|
|
7696
7693
|
let node;
|
7697
7694
|
if (numberRegEx$1.test(group.text)) {
|
7698
7695
|
const tag = group.mode === "text" ? "mtext" : "mn";
|
7699
|
-
if (variant === "
|
7700
|
-
const ms = new mathMLTree.MathNode("mstyle", [text], ["oldstylenums"]);
|
7701
|
-
node = new mathMLTree.MathNode(tag, [ms]);
|
7702
|
-
} else if (variant === "italic" || variant === "bold-italic") {
|
7696
|
+
if (variant === "italic" || variant === "bold-italic") {
|
7703
7697
|
return italicNumber(text, variant, tag)
|
7704
7698
|
} else {
|
7705
7699
|
if (variant !== "normal") {
|
@@ -11430,6 +11424,36 @@ const uSubsAndSups = Object.freeze({
|
|
11430
11424
|
'\u1DBF': 'θ'
|
11431
11425
|
});
|
11432
11426
|
|
11427
|
+
// Used for Unicode input of calligraphic and script letters
|
11428
|
+
const asciiFromScript = Object.freeze({
|
11429
|
+
"\ud835\udc9c": "A",
|
11430
|
+
"\u212c": "B",
|
11431
|
+
"\ud835\udc9e": "C",
|
11432
|
+
"\ud835\udc9f": "D",
|
11433
|
+
"\u2130": "E",
|
11434
|
+
"\u2131": "F",
|
11435
|
+
"\ud835\udca2": "G",
|
11436
|
+
"\u210B": "H",
|
11437
|
+
"\u2110": "I",
|
11438
|
+
"\ud835\udca5": "J",
|
11439
|
+
"\ud835\udca6": "K",
|
11440
|
+
"\u2112": "L",
|
11441
|
+
"\u2113": "M",
|
11442
|
+
"\ud835\udca9": "N",
|
11443
|
+
"\ud835\udcaa": "O",
|
11444
|
+
"\ud835\udcab": "P",
|
11445
|
+
"\ud835\udcac": "Q",
|
11446
|
+
"\u211B": "R",
|
11447
|
+
"\ud835\udcae": "S",
|
11448
|
+
"\ud835\udcaf": "T",
|
11449
|
+
"\ud835\udcb0": "U",
|
11450
|
+
"\ud835\udcb1": "V",
|
11451
|
+
"\ud835\udcb2": "W",
|
11452
|
+
"\ud835\udcb3": "X",
|
11453
|
+
"\ud835\udcb4": "Y",
|
11454
|
+
"\ud835\udcb5": "Z"
|
11455
|
+
});
|
11456
|
+
|
11433
11457
|
// Mapping of Unicode accent characters to their LaTeX equivalent in text and
|
11434
11458
|
// math mode (when they exist).
|
11435
11459
|
var unicodeAccents = {
|
@@ -12665,6 +12689,22 @@ class Parser {
|
|
12665
12689
|
text
|
12666
12690
|
};
|
12667
12691
|
} else {
|
12692
|
+
if (asciiFromScript[text]) {
|
12693
|
+
// Unicode 14 disambiguates chancery from roundhand.
|
12694
|
+
// See https://www.unicode.org/charts/PDF/U1D400.pdf
|
12695
|
+
this.consume();
|
12696
|
+
const nextCode = this.fetch().text.charCodeAt(0);
|
12697
|
+
// mathcal is Temml default. Use mathscript if called for.
|
12698
|
+
const font = nextCode === 0xfe01 ? "mathscr" : "mathcal";
|
12699
|
+
if (nextCode === 0xfe00 || nextCode === 0xfe01) { this.consume(); }
|
12700
|
+
return {
|
12701
|
+
type: "font",
|
12702
|
+
mode: "math",
|
12703
|
+
font,
|
12704
|
+
body: { type: "mathord", mode: "math", loc, text: asciiFromScript[text] }
|
12705
|
+
}
|
12706
|
+
}
|
12707
|
+
// Default ord character. No disambiguation necessary.
|
12668
12708
|
s = {
|
12669
12709
|
type: group,
|
12670
12710
|
mode: this.mode,
|
@@ -12921,7 +12961,7 @@ class Style {
|
|
12921
12961
|
* https://mit-license.org/
|
12922
12962
|
*/
|
12923
12963
|
|
12924
|
-
const version = "0.
|
12964
|
+
const version = "0.10.0";
|
12925
12965
|
|
12926
12966
|
function postProcess(block) {
|
12927
12967
|
const labelMap = {};
|
package/dist/temml.js
CHANGED
@@ -1235,6 +1235,8 @@ var temml = (function () {
|
|
1235
1235
|
defineSymbol(math, textord, "$", "\\$");
|
1236
1236
|
defineSymbol(text, textord, "$", "\\$");
|
1237
1237
|
defineSymbol(text, textord, "$", "\\textdollar");
|
1238
|
+
defineSymbol(math, textord, "¢", "\\cent");
|
1239
|
+
defineSymbol(text, textord, "¢", "\\cent");
|
1238
1240
|
defineSymbol(math, textord, "%", "\\%");
|
1239
1241
|
defineSymbol(text, textord, "%", "\\%");
|
1240
1242
|
defineSymbol(math, textord, "_", "\\_");
|
@@ -3149,13 +3151,12 @@ var temml = (function () {
|
|
3149
3151
|
names: ["\\\\"],
|
3150
3152
|
props: {
|
3151
3153
|
numArgs: 0,
|
3152
|
-
numOptionalArgs:
|
3153
|
-
argTypes: ["size"],
|
3154
|
+
numOptionalArgs: 0,
|
3154
3155
|
allowedInText: true
|
3155
3156
|
},
|
3156
3157
|
|
3157
3158
|
handler({ parser }, args, optArgs) {
|
3158
|
-
const size =
|
3159
|
+
const size = parser.gullet.future().text === "[" ? parser.parseSizeGroup(true) : null;
|
3159
3160
|
const newLine = !parser.settings.displayMode;
|
3160
3161
|
return {
|
3161
3162
|
type: "cr",
|
@@ -4915,7 +4916,6 @@ var temml = (function () {
|
|
4915
4916
|
"\\mathscr",
|
4916
4917
|
"\\mathsf",
|
4917
4918
|
"\\mathtt",
|
4918
|
-
"\\oldstylenums",
|
4919
4919
|
|
4920
4920
|
// aliases
|
4921
4921
|
"\\Bbb",
|
@@ -7329,8 +7329,7 @@ var temml = (function () {
|
|
7329
7329
|
mathfrak: "fraktur",
|
7330
7330
|
mathscr: "script",
|
7331
7331
|
mathsf: "sans-serif",
|
7332
|
-
mathtt: "monospace"
|
7333
|
-
oldstylenums: "oldstylenums"
|
7332
|
+
mathtt: "monospace"
|
7334
7333
|
};
|
7335
7334
|
|
7336
7335
|
/**
|
@@ -7400,8 +7399,6 @@ var temml = (function () {
|
|
7400
7399
|
return "sans-serif"
|
7401
7400
|
case "mathtt":
|
7402
7401
|
return "monospace"
|
7403
|
-
case "oldstylenums":
|
7404
|
-
return "oldstylenums"
|
7405
7402
|
}
|
7406
7403
|
|
7407
7404
|
let text = group.text;
|
@@ -7697,10 +7694,7 @@ var temml = (function () {
|
|
7697
7694
|
let node;
|
7698
7695
|
if (numberRegEx$1.test(group.text)) {
|
7699
7696
|
const tag = group.mode === "text" ? "mtext" : "mn";
|
7700
|
-
if (variant === "
|
7701
|
-
const ms = new mathMLTree.MathNode("mstyle", [text], ["oldstylenums"]);
|
7702
|
-
node = new mathMLTree.MathNode(tag, [ms]);
|
7703
|
-
} else if (variant === "italic" || variant === "bold-italic") {
|
7697
|
+
if (variant === "italic" || variant === "bold-italic") {
|
7704
7698
|
return italicNumber(text, variant, tag)
|
7705
7699
|
} else {
|
7706
7700
|
if (variant !== "normal") {
|
@@ -9531,6 +9525,36 @@ var temml = (function () {
|
|
9531
9525
|
'\u1DBF': 'θ'
|
9532
9526
|
});
|
9533
9527
|
|
9528
|
+
// Used for Unicode input of calligraphic and script letters
|
9529
|
+
const asciiFromScript = Object.freeze({
|
9530
|
+
"\ud835\udc9c": "A",
|
9531
|
+
"\u212c": "B",
|
9532
|
+
"\ud835\udc9e": "C",
|
9533
|
+
"\ud835\udc9f": "D",
|
9534
|
+
"\u2130": "E",
|
9535
|
+
"\u2131": "F",
|
9536
|
+
"\ud835\udca2": "G",
|
9537
|
+
"\u210B": "H",
|
9538
|
+
"\u2110": "I",
|
9539
|
+
"\ud835\udca5": "J",
|
9540
|
+
"\ud835\udca6": "K",
|
9541
|
+
"\u2112": "L",
|
9542
|
+
"\u2113": "M",
|
9543
|
+
"\ud835\udca9": "N",
|
9544
|
+
"\ud835\udcaa": "O",
|
9545
|
+
"\ud835\udcab": "P",
|
9546
|
+
"\ud835\udcac": "Q",
|
9547
|
+
"\u211B": "R",
|
9548
|
+
"\ud835\udcae": "S",
|
9549
|
+
"\ud835\udcaf": "T",
|
9550
|
+
"\ud835\udcb0": "U",
|
9551
|
+
"\ud835\udcb1": "V",
|
9552
|
+
"\ud835\udcb2": "W",
|
9553
|
+
"\ud835\udcb3": "X",
|
9554
|
+
"\ud835\udcb4": "Y",
|
9555
|
+
"\ud835\udcb5": "Z"
|
9556
|
+
});
|
9557
|
+
|
9534
9558
|
// Mapping of Unicode accent characters to their LaTeX equivalent in text and
|
9535
9559
|
// math mode (when they exist).
|
9536
9560
|
var unicodeAccents = {
|
@@ -10766,6 +10790,22 @@ var temml = (function () {
|
|
10766
10790
|
text
|
10767
10791
|
};
|
10768
10792
|
} else {
|
10793
|
+
if (asciiFromScript[text]) {
|
10794
|
+
// Unicode 14 disambiguates chancery from roundhand.
|
10795
|
+
// See https://www.unicode.org/charts/PDF/U1D400.pdf
|
10796
|
+
this.consume();
|
10797
|
+
const nextCode = this.fetch().text.charCodeAt(0);
|
10798
|
+
// mathcal is Temml default. Use mathscript if called for.
|
10799
|
+
const font = nextCode === 0xfe01 ? "mathscr" : "mathcal";
|
10800
|
+
if (nextCode === 0xfe00 || nextCode === 0xfe01) { this.consume(); }
|
10801
|
+
return {
|
10802
|
+
type: "font",
|
10803
|
+
mode: "math",
|
10804
|
+
font,
|
10805
|
+
body: { type: "mathord", mode: "math", loc, text: asciiFromScript[text] }
|
10806
|
+
}
|
10807
|
+
}
|
10808
|
+
// Default ord character. No disambiguation necessary.
|
10769
10809
|
s = {
|
10770
10810
|
type: group,
|
10771
10811
|
mode: this.mode,
|
@@ -11022,7 +11062,7 @@ var temml = (function () {
|
|
11022
11062
|
* https://mit-license.org/
|
11023
11063
|
*/
|
11024
11064
|
|
11025
|
-
const version = "0.
|
11065
|
+
const version = "0.10.0";
|
11026
11066
|
|
11027
11067
|
function postProcess(block) {
|
11028
11068
|
const labelMap = {};
|