运行 javascript 字符串上的 mathjax HTML

Run mathjax on javascript string that is not present in the HTML

Mathjax 通常会在页面中查找特定元素和这些元素中的特定字符串(例如,由 $...$ 分隔的子字符串)并将这些字符串更改为漂亮的 HTML。

MathJax 用来将这些字符串转换为 nice HTML 的底层函数是什么?

我非常想使用该功能,因为我需要 运行 javascript 字符串上的其他内容,然后才能在页面上实际呈现它们。

如果你想重新呈现页面上的内容,假设用户输入了一些表达式,例如 $\frac{a}{b}$ 并且它按字面显示为 $\frac{a}{b}$ 你应该再次使用 MathJax.Hub.Queue(["Typeset", MathJax.Hub]); 到 运行 mathjax 渲染器并处理页面内容。

这目前是不可能的,因为 MathJax 需要 DOM 用于其呈现过程(例如字体匹配、webfont 检测、在某些情况下测量子表达式的尺寸,以及在旧版浏览器上更糟糕的事情)。您可以创建元素,但在将它们交给 MathJax 之前不附加它们(在这种情况下,MathJax 会暂时附加它们),但这会带来 CSS 干扰的小风险。

FWIW,我们计划在明年进行或多或少 DOM 的免费渲染(因为最近的浏览器引擎在布局方面更加稳定);比照。 mathjax-node.

免责声明(我猜)我是 MathJax 团队的成员。