katex 0.16.41 → 0.16.43

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/dist/katex.mjs CHANGED
@@ -669,6 +669,8 @@ var path = {
669
669
  // hook is from glyph U+21A9 in font KaTeX Main
670
670
  lefthook: "M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",
671
671
  leftlinesegment: "M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",
672
+ leftbracketunder: "M0 0 h120 V290 H399995 v120 H0z\nM0 0 h120 V290 H399995 v120 H0z",
673
+ leftbracketover: "M0 440 h120 V150 H399995 v-120 H0z\nM0 440 h120 V150 H399995 v-120 H0z",
672
674
  leftmapsto: "M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",
673
675
  // tofrom is from glyph U+21C4 in font KaTeX AMS Regular
674
676
  leftToFrom: "M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",
@@ -690,6 +692,8 @@ var path = {
690
692
  rightharpoondownplus: "M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",
691
693
  righthook: "M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",
692
694
  rightlinesegment: "M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",
695
+ rightbracketunder: "M399995 0 h-120 V290 H0 v120 H400000z\nM399995 0 h-120 V290 H0 v120 H400000z",
696
+ rightbracketover: "M399995 440 h-120 V150 H0 v-120 H399995z\nM399995 440 h-120 V150 H0 v-120 H399995z",
693
697
  rightToFrom: "M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",
694
698
  // twoheadleftarrow is from glyph U+219E in font KaTeX AMS Regular
695
699
  twoheadleftarrow: "M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",
@@ -1185,7 +1189,7 @@ class SymbolNode {
1185
1189
  }
1186
1190
  var styles = "";
1187
1191
  if (this.italic > 0) {
1188
- styles += "margin-right:" + this.italic + "em;";
1192
+ styles += "margin-right:" + makeEm(this.italic) + ";";
1189
1193
  }
1190
1194
  for (var key of Object.keys(this.style)) {
1191
1195
  styles += hyphenate(key) + ":" + this.style[key] + ";";
@@ -6395,6 +6399,8 @@ var stretchyCodePoint = {
6395
6399
  xrightarrow: "\u2192",
6396
6400
  underbrace: "\u23df",
6397
6401
  overbrace: "\u23de",
6402
+ underbracket: "\u23b5",
6403
+ overbracket: "\u23b4",
6398
6404
  overgroup: "\u23e0",
6399
6405
  undergroup: "\u23e1",
6400
6406
  overleftrightarrow: "\u2194",
@@ -6505,6 +6511,8 @@ var katexImagesData = {
6505
6511
  xhookrightarrow: [["lefthook", "rightarrow"], 1.08, 522],
6506
6512
  overlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522],
6507
6513
  underlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522],
6514
+ overbracket: [["leftbracketover", "rightbracketover"], 1.6, 440],
6515
+ underbracket: [["leftbracketunder", "rightbracketunder"], 1.6, 410],
6508
6516
  overgroup: [["leftgroup", "rightgroup"], 0.888, 342],
6509
6517
  undergroup: [["leftgroupunder", "rightgroupunder"], 0.888, 342],
6510
6518
  xmapsto: [["leftmapsto", "rightarrow"], 1.5, 522],
@@ -8252,8 +8260,8 @@ var makeStackedDelim = function makeStackedDelim(delim, heightTotal, center, opt
8252
8260
  var viewBoxHeight = Math.round(realHeightTotal * 1000);
8253
8261
  var pathStr = tallDelim(svgLabel, Math.round(midHeight * 1000));
8254
8262
  var path = new PathNode(svgLabel, pathStr);
8255
- var width = (viewBoxWidth / 1000).toFixed(3) + "em";
8256
- var height = (viewBoxHeight / 1000).toFixed(3) + "em";
8263
+ var width = makeEm(viewBoxWidth / 1000);
8264
+ var height = makeEm(viewBoxHeight / 1000);
8257
8265
  var svg = new SvgNode([path], {
8258
8266
  "width": width,
8259
8267
  "height": height,
@@ -9074,7 +9082,7 @@ var mathmlBuilder$6 = (group, options) => {
9074
9082
  var thk = Math.max(options.fontMetrics().fboxrule,
9075
9083
  // default
9076
9084
  options.minRuleThickness);
9077
- node.setAttribute("style", "border: " + thk + "em solid " + String(group.borderColor));
9085
+ node.setAttribute("style", "border: " + makeEm(thk) + " solid " + group.borderColor);
9078
9086
  }
9079
9087
  break;
9080
9088
  case "\\xcancel":
@@ -10969,7 +10977,7 @@ var htmlBuilder$3 = (grp, options) => {
10969
10977
  // note long note long note
10970
10978
  // ┏━━━━━━━━┓ or ┏━━━┓ not ┏━━━━━━━━━┓
10971
10979
  // equation eqn eqn
10972
- var vSpan = makeSpan(["mord", group.isOver ? "mover" : "munder"], [vlist], options);
10980
+ var vSpan = makeSpan(["minner", group.isOver ? "mover" : "munder"], [vlist], options);
10973
10981
  if (group.isOver) {
10974
10982
  vlist = makeVList({
10975
10983
  positionType: "firstBaseline",
@@ -11001,7 +11009,7 @@ var htmlBuilder$3 = (grp, options) => {
11001
11009
  });
11002
11010
  }
11003
11011
  }
11004
- return makeSpan(["mord", group.isOver ? "mover" : "munder"], [vlist], options);
11012
+ return makeSpan(["minner", group.isOver ? "mover" : "munder"], [vlist], options);
11005
11013
  };
11006
11014
  var mathmlBuilder$2 = (group, options) => {
11007
11015
  var accentNode = stretchyMathML(group.label);
@@ -11010,7 +11018,7 @@ var mathmlBuilder$2 = (group, options) => {
11010
11018
  // Horizontal stretchy braces
11011
11019
  defineFunction({
11012
11020
  type: "horizBrace",
11013
- names: ["\\overbrace", "\\underbrace"],
11021
+ names: ["\\overbrace", "\\underbrace", "\\overbracket", "\\underbracket"],
11014
11022
  props: {
11015
11023
  numArgs: 1
11016
11024
  },
@@ -11023,7 +11031,7 @@ defineFunction({
11023
11031
  type: "horizBrace",
11024
11032
  mode: parser.mode,
11025
11033
  label: funcName,
11026
- isOver: /^\\over/.test(funcName),
11034
+ isOver: funcName.includes("\\over"),
11027
11035
  base: args[0]
11028
11036
  };
11029
11037
  },
@@ -16395,7 +16403,7 @@ var renderToHTMLTree = function renderToHTMLTree(expression, options) {
16395
16403
  return renderError(error, expression, settings);
16396
16404
  }
16397
16405
  };
16398
- var version = "0.16.41";
16406
+ var version = "0.16.43";
16399
16407
  var __domTree = {
16400
16408
  Span,
16401
16409
  Anchor,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "katex",
3
- "version": "0.16.41",
3
+ "version": "0.16.43",
4
4
  "description": "Fast math typesetting for the web.",
5
5
  "main": "dist/katex.js",
6
6
  "types": "types/katex.d.ts",
package/src/delimiter.ts CHANGED
@@ -398,8 +398,8 @@ const makeStackedDelim = function(
398
398
  const viewBoxHeight = Math.round(realHeightTotal * 1000);
399
399
  const pathStr = tallDelim(svgLabel, Math.round(midHeight * 1000));
400
400
  const path = new PathNode(svgLabel, pathStr);
401
- const width = (viewBoxWidth / 1000).toFixed(3) + "em";
402
- const height = (viewBoxHeight / 1000).toFixed(3) + "em";
401
+ const width = makeEm(viewBoxWidth / 1000);
402
+ const height = makeEm(viewBoxHeight / 1000);
403
403
  const svg = new SvgNode([path], {
404
404
  "width": width,
405
405
  "height": height,
package/src/domTree.ts CHANGED
@@ -463,7 +463,7 @@ export class SymbolNode implements HtmlDomNode {
463
463
  let styles = "";
464
464
 
465
465
  if (this.italic > 0) {
466
- styles += "margin-right:" + this.italic + "em;";
466
+ styles += `margin-right:${makeEm(this.italic)};`;
467
467
  }
468
468
  for (const key of Object.keys(this.style) as Array<keyof CssStyle>) {
469
469
  styles += hyphenate(key) + ":" + this.style[key] + ";";
@@ -204,8 +204,7 @@ const mathmlBuilder: MathMLBuilder<"enclose"> = (group, options) => {
204
204
  options.fontMetrics().fboxrule, // default
205
205
  options.minRuleThickness, // user override
206
206
  );
207
- node.setAttribute("style", "border: " + thk + "em solid " +
208
- String(group.borderColor));
207
+ node.setAttribute("style", `border: ${makeEm(thk)} solid ${group.borderColor}`);
209
208
  }
210
209
  break;
211
210
  case "\\xcancel":
@@ -77,7 +77,7 @@ export const htmlBuilder: HtmlBuilderSupSub<"horizBrace"> = (grp, options) => {
77
77
  // equation eqn eqn
78
78
 
79
79
  const vSpan = makeSpan(
80
- ["mord", (group.isOver ? "mover" : "munder")],
80
+ ["minner", (group.isOver ? "mover" : "munder")],
81
81
  [vlist], options);
82
82
 
83
83
  if (group.isOver) {
@@ -104,7 +104,7 @@ export const htmlBuilder: HtmlBuilderSupSub<"horizBrace"> = (grp, options) => {
104
104
  }
105
105
 
106
106
  return makeSpan(
107
- ["mord", (group.isOver ? "mover" : "munder")], [vlist], options);
107
+ ["minner", (group.isOver ? "mover" : "munder")], [vlist], options);
108
108
  };
109
109
 
110
110
  const mathmlBuilder: MathMLBuilder<"horizBrace"> = (group, options) => {
@@ -118,7 +118,7 @@ const mathmlBuilder: MathMLBuilder<"horizBrace"> = (group, options) => {
118
118
  // Horizontal stretchy braces
119
119
  defineFunction({
120
120
  type: "horizBrace",
121
- names: ["\\overbrace", "\\underbrace"],
121
+ names: ["\\overbrace", "\\underbrace", "\\overbracket", "\\underbracket"],
122
122
  props: {
123
123
  numArgs: 1,
124
124
  },
@@ -127,7 +127,7 @@ defineFunction({
127
127
  type: "horizBrace",
128
128
  mode: parser.mode,
129
129
  label: funcName,
130
- isOver: /^\\over/.test(funcName),
130
+ isOver: funcName.includes("\\over"),
131
131
  base: args[0],
132
132
  };
133
133
  },
package/src/stretchy.ts CHANGED
@@ -26,6 +26,8 @@ const stretchyCodePoint: Record<string, string> = {
26
26
  xrightarrow: "\u2192",
27
27
  underbrace: "\u23df",
28
28
  overbrace: "\u23de",
29
+ underbracket: "\u23b5",
30
+ overbracket: "\u23b4",
29
31
  overgroup: "\u23e0",
30
32
  undergroup: "\u23e1",
31
33
  overleftrightarrow: "\u2194",
@@ -153,6 +155,8 @@ const katexImagesData: {
153
155
  xhookrightarrow: [["lefthook", "rightarrow"], 1.08, 522],
154
156
  overlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522],
155
157
  underlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522],
158
+ overbracket: [["leftbracketover", "rightbracketover"], 1.6, 440],
159
+ underbracket: [["leftbracketunder", "rightbracketunder"], 1.6, 410],
156
160
  overgroup: [["leftgroup", "rightgroup"], 0.888, 342],
157
161
  undergroup: [["leftgroupunder", "rightgroupunder"], 0.888, 342],
158
162
  xmapsto: [["leftmapsto", "rightarrow"], 1.5, 522],
@@ -259,6 +259,12 @@ v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,
259
259
  leftlinesegment: `M40 281 V428 H0 V94 H40 V241 H400000 v40z
260
260
  M40 281 V428 H0 V94 H40 V241 H400000 v40z`,
261
261
 
262
+ leftbracketunder: `M0 0 h120 V290 H399995 v120 H0z
263
+ M0 0 h120 V290 H399995 v120 H0z`,
264
+
265
+ leftbracketover: `M0 440 h120 V150 H399995 v-120 H0z
266
+ M0 440 h120 V150 H399995 v-120 H0z`,
267
+
262
268
  leftmapsto: `M40 281 V448H0V74H40V241H400000v40z
263
269
  M40 281 V448H0V74H40V241H400000v40z`,
264
270
 
@@ -355,6 +361,12 @@ m0-194v40h400000v-40zm0 0v40h400000v-40z`,
355
361
  rightlinesegment: `M399960 241 V94 h40 V428 h-40 V281 H0 v-40z
356
362
  M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,
357
363
 
364
+ rightbracketunder: `M399995 0 h-120 V290 H0 v120 H400000z
365
+ M399995 0 h-120 V290 H0 v120 H400000z`,
366
+
367
+ rightbracketover: `M399995 440 h-120 V150 H0 v-120 H399995z
368
+ M399995 440 h-120 V150 H0 v-120 H399995z`,
369
+
358
370
  rightToFrom: `M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23
359
371
  1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32
360
372
  -52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142