From 9ff42a36c007f80299a2ea8963595567b1cf9798 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 25 Aug 2026 07:35:51 +0000
Subject: [PATCH 1/3] fix: restore quotation inset
---
bundle/latex2js.css | 2 +-
packages/css/latex2js.css | 2 +-
packages/latex2js/latex2js.css | 2 +-
packages/latex2js/src/lib/headers.ts | 4 ++--
packages/latex2js/src/lib/parser.ts | 2 +-
.../latex2js/test/math-env-paragraphs.test.ts | 15 +++++++++++++++
6 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/bundle/latex2js.css b/bundle/latex2js.css
index a08c09d7..708d61cb 100644
--- a/bundle/latex2js.css
+++ b/bundle/latex2js.css
@@ -36,7 +36,7 @@ span.tt {
font-family: courier;
}
-p.quotation {
+blockquote.quotation {
padding: 0 0 0 15px;
margin: 0 0 20px;
font-size: 10pt;
diff --git a/packages/css/latex2js.css b/packages/css/latex2js.css
index a08c09d7..708d61cb 100644
--- a/packages/css/latex2js.css
+++ b/packages/css/latex2js.css
@@ -36,7 +36,7 @@ span.tt {
font-family: courier;
}
-p.quotation {
+blockquote.quotation {
padding: 0 0 0 15px;
margin: 0 0 20px;
font-size: 10pt;
diff --git a/packages/latex2js/latex2js.css b/packages/latex2js/latex2js.css
index a08c09d7..708d61cb 100644
--- a/packages/latex2js/latex2js.css
+++ b/packages/latex2js/latex2js.css
@@ -36,7 +36,7 @@ span.tt {
font-family: courier;
}
-p.quotation {
+blockquote.quotation {
padding: 0 0 0 15px;
margin: 0 0 20px;
font-size: 10pt;
diff --git a/packages/latex2js/src/lib/headers.ts b/packages/latex2js/src/lib/headers.ts
index b644ee0a..bb893333 100644
--- a/packages/latex2js/src/lib/headers.ts
+++ b/packages/latex2js/src/lib/headers.ts
@@ -71,7 +71,7 @@ function closed(): string {
}
export const Functions = {
- bq: () => '',
+ bq: () => '
',
claim(this: any, m?: any) { return headed('Claim', 'claim', this, m); },
corollary(this: any, m?: any) { return headed('Corollary', 'corollary', this, m); },
definition(this: any, m?: any) { return headed('Definition', 'definition', this, m); },
@@ -96,7 +96,7 @@ export const Functions = {
endproblem: () => closed(),
endsolution: () => closed(),
endtheorem: () => closed(),
- eq: () => '
',
+ eq: () => '',
example(this: any, m?: any) { return headed('Example', 'example', this, m); },
problem(this: any, m?: any) { return headed('Problem', 'problem', this, m); },
proof: () => 'Proof
',
diff --git a/packages/latex2js/src/lib/parser.ts b/packages/latex2js/src/lib/parser.ts
index c4ff2887..5696e6d8 100644
--- a/packages/latex2js/src/lib/parser.ts
+++ b/packages/latex2js/src/lib/parser.ts
@@ -641,7 +641,7 @@ class Parser {
*/
paragraphize(lines: string[]): string[] {
const isBlock = (l: string) =>
- /^\s*<(h[1-6]|ul|ol|li|p|div|table|blockquote|pre|figure)\b/i.test(l);
+ /^\s*<\/?(h[1-6]|ul|ol|li|p|div|table|blockquote|pre|figure)\b/i.test(l);
// Display-math environments MathJax recognizes in running text. One is a
// single unit however many lines it spans: splitting it across paragraph
// elements breaks the begin/end into separate text nodes, and MathJax can
diff --git a/packages/latex2js/test/math-env-paragraphs.test.ts b/packages/latex2js/test/math-env-paragraphs.test.ts
index f7ea1afd..65f78b0d 100644
--- a/packages/latex2js/test/math-env-paragraphs.test.ts
+++ b/packages/latex2js/test/math-env-paragraphs.test.ts
@@ -62,4 +62,19 @@ After.
expect(paras.some((l: string) => l.includes('Before.'))).toBe(true);
expect(paras.some((l: string) => l.includes('After.'))).toBe(true);
});
+
+ it('nests quotation paragraphs inside the quotation wrapper', () => {
+ const parsed = latex.parse(`
+\\begin{quotation}
+Quoted text.
+\\end{quotation}
+ `);
+ const math = parsed.find((el: any) => el.type === 'math');
+ const output = math.lines.join('\n');
+
+ expect(output).toContain('
');
+ expect(output).toContain('Quoted text.');
+ expect(output).toMatch(/
Quoted text\.<\/p>\s*<\/blockquote>/);
+ expect(output).not.toContain('
\n
');
+ });
});
From d112bf481a79a368907e98b08305d46024b6f848 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 25 Aug 2026 07:40:13 +0000
Subject: [PATCH 2/3] fix: update shipped renderer bundle
---
bundle/latex2html5.bundle.js | 62 ++++++++++++++++++------------------
1 file changed, 31 insertions(+), 31 deletions(-)
diff --git a/bundle/latex2html5.bundle.js b/bundle/latex2html5.bundle.js
index 25674076..93ed1100 100644
--- a/bundle/latex2html5.bundle.js
+++ b/bundle/latex2html5.bundle.js
@@ -35,9 +35,9 @@ var LaTeX2HTML5 = (() => {
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
- // ../latex2js/src/grammar/parser.js
+ // packages/latex2js/src/grammar/parser.js
var require_parser = __commonJS({
- "../latex2js/src/grammar/parser.js"(exports, module) {
+ "packages/latex2js/src/grammar/parser.js"(exports, module) {
"use strict";
var peg$SyntaxError = class extends SyntaxError {
constructor(message, expected, found, location2) {
@@ -1417,7 +1417,7 @@ var LaTeX2HTML5 = (() => {
}
});
- // src/index.ts
+ // packages/html5/src/index.ts
var index_exports = {};
__export(index_exports, {
DEFAULT_CONFIG: () => DEFAULT_CONFIG,
@@ -1432,7 +1432,7 @@ var LaTeX2HTML5 = (() => {
verbatim: () => render5
});
- // ../utils/src/expression.ts
+ // packages/utils/src/expression.ts
var ExpressionError = class extends Error {
constructor(message, position) {
super(message);
@@ -1711,7 +1711,7 @@ var LaTeX2HTML5 = (() => {
};
}
- // ../utils/src/svg-utils.ts
+ // packages/utils/src/svg-utils.ts
var SVGSelection = class _SVGSelection {
constructor(elements) {
if (elements instanceof Element) {
@@ -1793,7 +1793,7 @@ var LaTeX2HTML5 = (() => {
return new SVGSelection(selector);
}
- // ../utils/src/index.ts
+ // packages/utils/src/index.ts
var simplerepl = function(regex, replace) {
return function(_m, contents) {
return contents.replace(regex, replace);
@@ -2022,7 +2022,7 @@ var LaTeX2HTML5 = (() => {
return this.y1 - Number(v) / this.yunit;
};
- // ../latex2js/src/lib/text.ts
+ // packages/latex2js/src/lib/text.ts
var Expressions = {
emph: /\\emph\{[^}]*\}/g,
bf: /\{*\\bf [^}]*\}/g,
@@ -2177,7 +2177,7 @@ var LaTeX2HTML5 = (() => {
Functions
};
- // ../latex2js/src/lib/headers.ts
+ // packages/latex2js/src/lib/headers.ts
var Expressions2 = {
bq: /\\begin\{quotation\}/,
claim: /\\begin\{claim\*?\}/,
@@ -2222,7 +2222,7 @@ var LaTeX2HTML5 = (() => {
return "
";
}
var Functions2 = {
- bq: () => '',
+ bq: () => '
',
claim(m) {
return headed("Claim", "claim", this, m);
},
@@ -2267,7 +2267,7 @@ var LaTeX2HTML5 = (() => {
endproblem: () => closed(),
endsolution: () => closed(),
endtheorem: () => closed(),
- eq: () => "",
+ eq: () => "
",
example(m) {
return headed("Example", "example", this, m);
},
@@ -2291,7 +2291,7 @@ var LaTeX2HTML5 = (() => {
Functions: Functions2
};
- // ../settings/src/index.ts
+ // packages/settings/src/index.ts
function normalizeDialect(value) {
const v = String(value ?? "").trim().toLowerCase();
if (v === "pstricks") return "pstricks";
@@ -2358,7 +2358,7 @@ var LaTeX2HTML5 = (() => {
Functions: Functions3
};
- // ../pstricks/src/lib/pstricks.ts
+ // packages/pstricks/src/lib/pstricks.ts
function radiusUnit(ctx) {
const r = Number(ctx && ctx.runit);
if (isFinite(r) && r > 0) return r;
@@ -3033,7 +3033,7 @@ var LaTeX2HTML5 = (() => {
Functions: Functions4
};
- // ../pstricks/src/lib/psgraph.ts
+ // packages/pstricks/src/lib/psgraph.ts
var MATHJAX_READY_TIMEOUT_MS = 1e4;
function mathJaxWhenReady() {
const usable = (mj) => mj && typeof mj.typesetPromise === "function" ? mj : null;
@@ -4058,11 +4058,11 @@ var LaTeX2HTML5 = (() => {
};
var psgraph_default = psgraph;
- // ../latex2js/src/lib/environments.ts
+ // packages/latex2js/src/lib/environments.ts
var environments = ["pspicture", "verbatim", "enumerate", "print", "nicebox", "itemize", "description"];
var environments_default = environments;
- // ../latex2js/src/lib/ignore.ts
+ // packages/latex2js/src/lib/ignore.ts
var ignore = [
/^\%/,
/\\begin\{document\}/,
@@ -4086,10 +4086,10 @@ var LaTeX2HTML5 = (() => {
];
var ignore_default = ignore;
- // ../latex2js/src/lib/parser.ts
+ // packages/latex2js/src/lib/parser.ts
var pegParser = __toESM(require_parser());
- // ../latex2js/src/lib/dialect.ts
+ // packages/latex2js/src/lib/dialect.ts
var CSS_ONLY_COLORS = ["lightblue", "lightgray", "lightgrey", "lightgreen", "darkblue", "darkgreen", "pink", "gold", "silver", "navy", "teal", "lime", "aqua", "fuchsia"];
var LATEX2JS_ONLY_COMMANDS = {
userline: "draws a line the reader can drag; PSTricks has no interactive graphics",
@@ -4161,7 +4161,7 @@ var LaTeX2HTML5 = (() => {
return uses;
}
- // ../latex2js/src/lib/counters.ts
+ // packages/latex2js/src/lib/counters.ts
var SECTION_LEVELS = ["section", "subsection", "subsubsection"];
var Counters = class {
constructor() {
@@ -4204,7 +4204,7 @@ var LaTeX2HTML5 = (() => {
}
};
- // ../latex2js/src/lib/parser.ts
+ // packages/latex2js/src/lib/parser.ts
var PSSET_NON_STYLE = /* @__PURE__ */ new Set(["unit", "runit", "xunit", "yunit", "dialect"]);
var DEFINECOLOR_RE = /\\definecolor\s*\{([^}]*)\}\s*\{([^}]*)\}\s*\{([^}]*)\}/;
function pssetStyle(declared) {
@@ -4603,7 +4603,7 @@ var LaTeX2HTML5 = (() => {
* @returns the lines with runs of text wrapped in paragraphs
*/
paragraphize(lines) {
- const isBlock = (l) => /^\s*<(h[1-6]|ul|ol|li|p|div|table|blockquote|pre|figure)\b/i.test(l);
+ const isBlock = (l) => /^\s*<\/?(h[1-6]|ul|ol|li|p|div|table|blockquote|pre|figure)\b/i.test(l);
const mathEnvBegin = /\\begin\{(align\*?|alignat\*?|equation\*?|eqnarray\*?|gather\*?|multline\*?)\}/;
const out = [];
let para = [];
@@ -4960,7 +4960,7 @@ var LaTeX2HTML5 = (() => {
};
var parser_default = Parser2;
- // ../latex2js/src/index.ts
+ // packages/latex2js/src/index.ts
var LaTeX2HTML5 = class {
constructor(Text = text_default, Headers = headers_default, Environments = environments_default, Ignore = ignore_default, PSTricks = pstricks_default, Views = {}) {
this.lastDiagnostics = [];
@@ -5030,7 +5030,7 @@ var LaTeX2HTML5 = (() => {
}
};
- // ../mathjaxjs/src/index.ts
+ // packages/mathjaxjs/src/index.ts
var DEFAULT_SCRIPT_URL = "https://cdn.jsdelivr.net/npm/mathjax@4.1.3/tex-chtml.js";
var DEFAULT_CONFIG = {
tex: {
@@ -5129,7 +5129,7 @@ var LaTeX2HTML5 = (() => {
}
};
- // src/components/pspicture.ts
+ // packages/html5/src/components/pspicture.ts
function render(that) {
const size = psgraph_default.getSize.call(that);
const width = `${size.width}px`;
@@ -5190,7 +5190,7 @@ var LaTeX2HTML5 = (() => {
return div;
}
- // src/components/nicebox.ts
+ // packages/html5/src/components/nicebox.ts
function render2(that) {
const span = document.createElement("span");
span.className = "math nicebox";
@@ -5198,7 +5198,7 @@ var LaTeX2HTML5 = (() => {
return span;
}
- // src/components/enumerate.ts
+ // packages/html5/src/components/enumerate.ts
function render3(that) {
const lines = that.lines.map((line) => {
var m = line.match(/\\item (.*)/);
@@ -5214,7 +5214,7 @@ var LaTeX2HTML5 = (() => {
return ul;
}
- // src/components/list.ts
+ // packages/html5/src/components/list.ts
function itemizeLine(line) {
var m = line.match(/\\item (.*)/);
if (m) return "" + m[1] + "";
@@ -5249,7 +5249,7 @@ var LaTeX2HTML5 = (() => {
return el;
}
- // src/components/verbatim.ts
+ // packages/html5/src/components/verbatim.ts
function render5(that) {
var pre = document.createElement("pre");
pre.className = "verbatim";
@@ -5257,7 +5257,7 @@ var LaTeX2HTML5 = (() => {
return pre;
}
- // src/components/math.ts
+ // packages/html5/src/components/math.ts
function render6(that) {
const div = document.createElement("div");
div.className = "math";
@@ -5265,7 +5265,7 @@ var LaTeX2HTML5 = (() => {
return div;
}
- // ../macros/src/index.ts
+ // packages/macros/src/index.ts
var src_default2 = String.raw`
$$
% create the definition symbol
@@ -5397,7 +5397,7 @@ var LaTeX2HTML5 = (() => {
$$
`;
- // src/components/macros.ts
+ // packages/html5/src/components/macros.ts
function render7(_that) {
var div = document.createElement("div");
div.id = "latex-macros";
@@ -5407,7 +5407,7 @@ var LaTeX2HTML5 = (() => {
return div;
}
- // src/index.ts
+ // packages/html5/src/index.ts
var ELEMENTS = { pspicture: render, nicebox: render2, enumerate: render3, itemize: render4, description: render4, verbatim: render5, math: render6, macros: render7 };
function render8(tex, resolve, config) {
const done = () => {
From 3b15c7547c65a3d7a71d055063192c3e2e8245df Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 25 Aug 2026 07:43:54 +0000
Subject: [PATCH 3/3] fix: regenerate renderer bundle
---
bundle/latex2html5.bundle.js | 56 ++++++++++++++++++------------------
1 file changed, 28 insertions(+), 28 deletions(-)
diff --git a/bundle/latex2html5.bundle.js b/bundle/latex2html5.bundle.js
index 93ed1100..0b608e7a 100644
--- a/bundle/latex2html5.bundle.js
+++ b/bundle/latex2html5.bundle.js
@@ -35,9 +35,9 @@ var LaTeX2HTML5 = (() => {
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
- // packages/latex2js/src/grammar/parser.js
+ // ../latex2js/src/grammar/parser.js
var require_parser = __commonJS({
- "packages/latex2js/src/grammar/parser.js"(exports, module) {
+ "../latex2js/src/grammar/parser.js"(exports, module) {
"use strict";
var peg$SyntaxError = class extends SyntaxError {
constructor(message, expected, found, location2) {
@@ -1417,7 +1417,7 @@ var LaTeX2HTML5 = (() => {
}
});
- // packages/html5/src/index.ts
+ // src/index.ts
var index_exports = {};
__export(index_exports, {
DEFAULT_CONFIG: () => DEFAULT_CONFIG,
@@ -1432,7 +1432,7 @@ var LaTeX2HTML5 = (() => {
verbatim: () => render5
});
- // packages/utils/src/expression.ts
+ // ../utils/src/expression.ts
var ExpressionError = class extends Error {
constructor(message, position) {
super(message);
@@ -1711,7 +1711,7 @@ var LaTeX2HTML5 = (() => {
};
}
- // packages/utils/src/svg-utils.ts
+ // ../utils/src/svg-utils.ts
var SVGSelection = class _SVGSelection {
constructor(elements) {
if (elements instanceof Element) {
@@ -1793,7 +1793,7 @@ var LaTeX2HTML5 = (() => {
return new SVGSelection(selector);
}
- // packages/utils/src/index.ts
+ // ../utils/src/index.ts
var simplerepl = function(regex, replace) {
return function(_m, contents) {
return contents.replace(regex, replace);
@@ -2022,7 +2022,7 @@ var LaTeX2HTML5 = (() => {
return this.y1 - Number(v) / this.yunit;
};
- // packages/latex2js/src/lib/text.ts
+ // ../latex2js/src/lib/text.ts
var Expressions = {
emph: /\\emph\{[^}]*\}/g,
bf: /\{*\\bf [^}]*\}/g,
@@ -2177,7 +2177,7 @@ var LaTeX2HTML5 = (() => {
Functions
};
- // packages/latex2js/src/lib/headers.ts
+ // ../latex2js/src/lib/headers.ts
var Expressions2 = {
bq: /\\begin\{quotation\}/,
claim: /\\begin\{claim\*?\}/,
@@ -2291,7 +2291,7 @@ var LaTeX2HTML5 = (() => {
Functions: Functions2
};
- // packages/settings/src/index.ts
+ // ../settings/src/index.ts
function normalizeDialect(value) {
const v = String(value ?? "").trim().toLowerCase();
if (v === "pstricks") return "pstricks";
@@ -2358,7 +2358,7 @@ var LaTeX2HTML5 = (() => {
Functions: Functions3
};
- // packages/pstricks/src/lib/pstricks.ts
+ // ../pstricks/src/lib/pstricks.ts
function radiusUnit(ctx) {
const r = Number(ctx && ctx.runit);
if (isFinite(r) && r > 0) return r;
@@ -3033,7 +3033,7 @@ var LaTeX2HTML5 = (() => {
Functions: Functions4
};
- // packages/pstricks/src/lib/psgraph.ts
+ // ../pstricks/src/lib/psgraph.ts
var MATHJAX_READY_TIMEOUT_MS = 1e4;
function mathJaxWhenReady() {
const usable = (mj) => mj && typeof mj.typesetPromise === "function" ? mj : null;
@@ -4058,11 +4058,11 @@ var LaTeX2HTML5 = (() => {
};
var psgraph_default = psgraph;
- // packages/latex2js/src/lib/environments.ts
+ // ../latex2js/src/lib/environments.ts
var environments = ["pspicture", "verbatim", "enumerate", "print", "nicebox", "itemize", "description"];
var environments_default = environments;
- // packages/latex2js/src/lib/ignore.ts
+ // ../latex2js/src/lib/ignore.ts
var ignore = [
/^\%/,
/\\begin\{document\}/,
@@ -4086,10 +4086,10 @@ var LaTeX2HTML5 = (() => {
];
var ignore_default = ignore;
- // packages/latex2js/src/lib/parser.ts
+ // ../latex2js/src/lib/parser.ts
var pegParser = __toESM(require_parser());
- // packages/latex2js/src/lib/dialect.ts
+ // ../latex2js/src/lib/dialect.ts
var CSS_ONLY_COLORS = ["lightblue", "lightgray", "lightgrey", "lightgreen", "darkblue", "darkgreen", "pink", "gold", "silver", "navy", "teal", "lime", "aqua", "fuchsia"];
var LATEX2JS_ONLY_COMMANDS = {
userline: "draws a line the reader can drag; PSTricks has no interactive graphics",
@@ -4161,7 +4161,7 @@ var LaTeX2HTML5 = (() => {
return uses;
}
- // packages/latex2js/src/lib/counters.ts
+ // ../latex2js/src/lib/counters.ts
var SECTION_LEVELS = ["section", "subsection", "subsubsection"];
var Counters = class {
constructor() {
@@ -4204,7 +4204,7 @@ var LaTeX2HTML5 = (() => {
}
};
- // packages/latex2js/src/lib/parser.ts
+ // ../latex2js/src/lib/parser.ts
var PSSET_NON_STYLE = /* @__PURE__ */ new Set(["unit", "runit", "xunit", "yunit", "dialect"]);
var DEFINECOLOR_RE = /\\definecolor\s*\{([^}]*)\}\s*\{([^}]*)\}\s*\{([^}]*)\}/;
function pssetStyle(declared) {
@@ -4960,7 +4960,7 @@ var LaTeX2HTML5 = (() => {
};
var parser_default = Parser2;
- // packages/latex2js/src/index.ts
+ // ../latex2js/src/index.ts
var LaTeX2HTML5 = class {
constructor(Text = text_default, Headers = headers_default, Environments = environments_default, Ignore = ignore_default, PSTricks = pstricks_default, Views = {}) {
this.lastDiagnostics = [];
@@ -5030,7 +5030,7 @@ var LaTeX2HTML5 = (() => {
}
};
- // packages/mathjaxjs/src/index.ts
+ // ../mathjaxjs/src/index.ts
var DEFAULT_SCRIPT_URL = "https://cdn.jsdelivr.net/npm/mathjax@4.1.3/tex-chtml.js";
var DEFAULT_CONFIG = {
tex: {
@@ -5129,7 +5129,7 @@ var LaTeX2HTML5 = (() => {
}
};
- // packages/html5/src/components/pspicture.ts
+ // src/components/pspicture.ts
function render(that) {
const size = psgraph_default.getSize.call(that);
const width = `${size.width}px`;
@@ -5190,7 +5190,7 @@ var LaTeX2HTML5 = (() => {
return div;
}
- // packages/html5/src/components/nicebox.ts
+ // src/components/nicebox.ts
function render2(that) {
const span = document.createElement("span");
span.className = "math nicebox";
@@ -5198,7 +5198,7 @@ var LaTeX2HTML5 = (() => {
return span;
}
- // packages/html5/src/components/enumerate.ts
+ // src/components/enumerate.ts
function render3(that) {
const lines = that.lines.map((line) => {
var m = line.match(/\\item (.*)/);
@@ -5214,7 +5214,7 @@ var LaTeX2HTML5 = (() => {
return ul;
}
- // packages/html5/src/components/list.ts
+ // src/components/list.ts
function itemizeLine(line) {
var m = line.match(/\\item (.*)/);
if (m) return "" + m[1] + "";
@@ -5249,7 +5249,7 @@ var LaTeX2HTML5 = (() => {
return el;
}
- // packages/html5/src/components/verbatim.ts
+ // src/components/verbatim.ts
function render5(that) {
var pre = document.createElement("pre");
pre.className = "verbatim";
@@ -5257,7 +5257,7 @@ var LaTeX2HTML5 = (() => {
return pre;
}
- // packages/html5/src/components/math.ts
+ // src/components/math.ts
function render6(that) {
const div = document.createElement("div");
div.className = "math";
@@ -5265,7 +5265,7 @@ var LaTeX2HTML5 = (() => {
return div;
}
- // packages/macros/src/index.ts
+ // ../macros/src/index.ts
var src_default2 = String.raw`
$$
% create the definition symbol
@@ -5397,7 +5397,7 @@ var LaTeX2HTML5 = (() => {
$$
`;
- // packages/html5/src/components/macros.ts
+ // src/components/macros.ts
function render7(_that) {
var div = document.createElement("div");
div.id = "latex-macros";
@@ -5407,7 +5407,7 @@ var LaTeX2HTML5 = (() => {
return div;
}
- // packages/html5/src/index.ts
+ // src/index.ts
var ELEMENTS = { pspicture: render, nicebox: render2, enumerate: render3, itemize: render4, description: render4, verbatim: render5, math: render6, macros: render7 };
function render8(tex, resolve, config) {
const done = () => {