RMarkdown使用数学块写公式出现Bad math environment delimiter错误如何处理
RMarkdown数学块报错通用解决方案
语法规则校验
- 行内公式使用的
$前后不能留空格,正确格式为$E=mc^2$,错误格式为$ E=mc^2 $。 - 块级公式的
$$必须单独占行,公式内容放在两个$$中间,示例:
$$ \sum_{i=1}^{n} i = \frac{n(n+1)}{2} $$
- 检查公式内部是否有未闭合的大括号、拼写错误的LaTeX命令,比如不要将
\frac{}{}误写为\farc{}{},上标^、下标_对应的参数要完整。
渲染配置修正
PDF输出场景
- 首先确认本地已安装完整的LaTeX环境,推荐使用TinyTeX,R中可通过
install.packages('tinytex'); tinytex::install_tinytex()快速安装。 - 在文档YAML头部添加数学宏包依赖配置:
--- title: "你的文档标题" output: pdf_document: latex_engine: xelatex extra_dependencies: ["amsmath", "amssymb", "ctex"] ---
注:添加ctex宏包和指定xelatex引擎可解决公式内包含中文的报错问题
HTML输出场景
- 若mathjax加载异常导致公式渲染失败,在YAML中指定默认mathjax配置即可:
output: html_document: mathjax: default
特殊字符处理
- 公式中如果出现
%、#、&等LaTeX保留字符,必须添加反斜杠转义,写作\%、\#、\&。 - 避免在公式中直接插入未转义的markdown格式标记。
内容的提问来源于stack exchange,提问作者汤中天
相关产品推荐
相关产品推荐

