Material for MkDocs---数学公式

本文最后更新于 2025年8月5日 中午

Material for MkDocs---数学公式

知识库里面的内容涉及安培定律公式,发现无法渲染,也就是不支持数学公式,去必应搜索,出来的Material for MkDocs中文文档。其中的数学公式配置无法生效,可能是由于其调用的polyfill.io被封了,所以无效。阴差阳错才找到了原版官网,才找到正确方法。

操作

详细内容:Material for MkDocs官方文档中配置数学公式

这里记录一下MathJax进行配置,没有使用KaTeX,KaTex不知道有没有我下面遇到的问题

项目根目录起中新建docs/javascripts/mathjax.js文件。然后写入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
window.MathJax = {
tex: {
inlineMath: [["\\(", "\\)"]],
displayMath: [["\\[", "\\]"]],
processEscapes: true,
processEnvironments: true
},
options: {
ignoreHtmlClass: ".*|",
processHtmlClass: "arithmatex"
}
};

document$.subscribe(() => {
MathJax.startup.output.clearCache()
MathJax.typesetClear()
MathJax.texReset()
MathJax.typesetPromise()
})

然后在项目的mkdocs.yml配置中写入如下内容:

1
2
3
4
5
6
7
markdown_extensions:
- pymdownx.arithmatex:
generic: true

extra_javascript:
- javascripts/mathjax.js
- https://unpkg.com/mathjax@3/es5/tex-mml-chtml.js

这里的unpkg.com国内可以正常访问

我按照官方文档中的MathJax配置后,发现公式结构\[ \]无法渲染。于是修改docs/javascripts/mathjax.js文件代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
window.MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']],
displayMath: [['$$', '$$'], ['\\[', '\\]']],
packages: {'[+]': ['ams']} // 仅保留必要AMS扩展
},
startup: {
typeset: false // 必须禁用自动渲染
}
};

// 单独提取渲染控制(关键!)
document$.subscribe(() => {
if (window.MathJax?.typesetPromise) {
MathJax.typesetPromise();
}
});

注意事项

我是询问AI后进行的解决。至于本质原因并不是很理解,未来深入学习后,会补充本质原因分析。如果修改后有任何BUG,请恢复官方配置。

本文章编写于2025年8月1日,如果在未来的失效了请以最新版本为主。

 

鸣心/Write

Material for MkDocs---数学公式
https://b.wihi.top/posts/5dd226f0.html
作者
鸣心
发布于
2025年8月1日
更新于
2025年8月5日
许可协议