typescript - Mathjax 更新了 Latex 方程的渲染
问题描述
我一直在使用这段代码来渲染乳胶。但是,当我更新我的方程式时,呈现的 HTML 不会刷新。我尝试查找文档typeset()
,typesetPromise()
但在此处的代码示例中找不到太多帮助:
//rederMath.tsx
import { mathjax } from 'mathjax-full/js/mathjax';
import { TeX } from 'mathjax-full/js/input/tex';
import { CHTML } from 'mathjax-full/js/output/chtml'
import { AllPackages } from 'mathjax-full/js/input/tex/AllPackages';
import { browserAdaptor } from 'mathjax-full/js/adaptors/browserAdaptor';
import { RegisterHTMLHandler } from 'mathjax-full/js/handlers/html';
RegisterHTMLHandler(browserAdaptor());
const html = mathjax.document(document, {
InputJax: new TeX({
inlineMath: [['$', '$'], ['\\(', '\\)']],
packages: AllPackages
}),
OutputJax: new CHTML()
});
html.findMath()
.compile()
.getMetrics()
.typeset()
.updateDocument();
有没有办法在等式更改后获取更新的 HTML?
解决方案
正如我在您启动的MathJax 问题跟踪器中提到的那样,MathJax 会跟踪已经执行的步骤,以便在进程中断时不必重做它们(例如,对于扩展的动态加载)。但这也意味着这些步骤不会被第二次执行,除非你告诉 MathJax 你想要它们。你通过html.reset()
. 所以
html.findMath()
.compile()
.getMetrics()
.typeset()
.updateDocument()
.reset();
将允许您重复该过程。
此示例是一个旧示例,并且有一个更新的 API 可以为您执行第一个修复步骤(以及注册的任何其他步骤,renderActions
例如添加 MahJax 上下文菜单等)。这是
html.render()
.reset();
如果您愿意,您仍然可以像以前一样执行各个步骤。
如果您经常更新同一个方程(即,用新方程替换它),那么您可能还想调用html.clear()
而不是html.reset()
为了删除前一个表达式的记录(否则排版表达式的列表会增加,因为它还包括该表达式的所有过去版本)。
推荐阅读
- merge - Lightroom 批处理 HDR 脚本
- c# - C# 将证书和密钥 (PFX) 导入 CNG/KSP
- php - php ms sql登录返回int -1无值
- python - 如何使用 Python 在现有 XML 中附加一堆标签
- arrays - 将数组值放入powershell中的字符串中
- c# - 用作 SQL Query_for 列和条件的变量的选定值
- sql-server - 确定 msdb.dbo.backupset 记录是备份还是还原
- vue.js - 在 Vuetify 中调整 v-list-tile 的高度
- java - 无法从本地 IDE 连接到 docker hbase
- c# - SQL 与 NULL 或非空列完全匹配