如何让MkDocs中Arithmatex与MathJax识别\\[...\\]为块级公式分隔符
问题核心原因
你之前的配置未生效的根本原因是没有开启Arithmatex的generic模式:该配置默认值为false,此时Arithmatex不会主动扫描全文档匹配自定义的LaTeX分隔符,仅会处理通过superfences定义的TeX代码块内容,你配置的tex_block_wrap参数完全没有被触发。
正确配置步骤
1. 修改mkdocs.yml配置
调整pymdownx.arithmatex参数,开启通用扫描模式并配置自定义块分隔符:
markdown_extensions: - footnotes - pymdownx.arithmatex: generic: true # 必须开启,才会扫描全文档匹配自定义分隔符 tex_block_wrap: ['\\\\[', '\\\\]'] # YAML语法中1个字面反斜杠需要双重转义,4个反斜杠对应Markdown源码中的2个反斜杠 # 如不需要默认的$符号作为公式分隔符,可添加下一行关闭误识别 # smart_dollar: false - pymdownx.highlight - pymdownx.superfences extra_javascript: - javascripts/mathjax-config.js - https://polyfill.io/v3/polyfill.min.js?features=es6 - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg-full.js
2. 调整MathJax配置(可选)
仅当你需要MathJax直接处理页面中未被Arithmatex预处理的LaTeX内容时需要修改,注意JS字符串的转义规则:
window.MathJax = { tex: { // Markdown渲染后会把源码的2个反斜杠转义为1个,因此匹配页面内容的分隔符为\[和\],JS中写为\\[和\\] displayMath: [ ["\\[", "\\]"] ], }, // 保留官方默认配置的其他参数即可 ....
3. 验证效果
清理之前的构建缓存,删除项目下的site文件夹后重新执行mkdocs build或mkdocs serve,你写的测试内容即可正常渲染为块级公式:
\\[ \Sigma_n \\]
内容的提问来源于stack exchange,提问作者mhucka
相关产品推荐
相关产品推荐

