我正在Mkdocs Material主题中尝试使用KaTeX。关闭“即时模式”后,一切正常。但是,在instant mode中,仅呈现我首先输入的页面中的KaTeX,而其余的KaTeX(单击内部链接时加载)保留为纯文本,并带有定界符\(
和{{1 }}。要渲染这些KaTeX,我必须刷新整个页面。我该如何解决?
我尝试了3种JavaScript,但是它们的行为均如上所述。
1。
\)
document.addEventListener('DOMContentLoaded', function() {
renderMathInElement(document.body, {
delimiters: [
{left: '\\[', right: '\\]', display: true},
{left: '$$', right: '$$', display: true},
{left: '\\(', right: '\\)', display: false},
{left: '$', right: '$', display: false},
]
});
});
https://facelessuser.github.io/pymdown-extensions/extensions/arithmatex/#loading-katex
此外,Arithmatex扩展已打开。在document.onreadystatechange = function () {
if (document.readyState == "complete") {
renderMathInElement(document.body, {
delimiters: [
{left: '\\[', right: '\\]', display: true},
{left: '$$', right: '$$', display: true},
{left: '\\(', right: '\\)', display: false},
{left: '$', right: '$', display: false},
]
});
}
}
中:
mkdocs.yml
答案 0 :(得分:0)
MathJax 3会自动处理此问题,并应立即使用Material的即时加载功能。有关设置说明,请参见https://squidfunk.github.io/mkdocs-material/reference/mathjax/#arithmatex。
如果您希望在即时加载中使用另一个排版库而不捕获位置更改,则可以自己收听并通过添加一些其他JavaScript重新触发排版:
app.location$.subscribe(function() {
// instant loading finished
})