You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在blogdown的Rmd博客文章中LaTeX公式无法正常显示的问题

解决blogdown博客中LaTeX公式不渲染的问题

这种情况我碰到过好多次,主要原因通常和Hugo的渲染配置、主题的数学支持或者R Markdown的输出设置有关,下面逐个给你排查解决:

1. 先检查Hugo的Markdown解析器(Goldmark)配置

Hugo默认用Goldmark作为Markdown解析器,它默认可能没有开启对单美元符号$...$内联公式的支持,导致公式被当成普通文本转义。

你需要在博客根目录的config.toml(或config.yaml)里添加以下配置:

如果你用config.toml:

[markup.goldmark]
  [markup.goldmark.parser]
    [markup.goldmark.parser.inline]
      rawHTML = true  # 允许主题加载MathJax/KaTeX的HTML脚本
      [markup.goldmark.parser.inline.math]
        enabled = true
        singleDollar = true  # 启用单$作为内联公式的分隔符

如果你用config.yaml:

markup:
  goldmark:
    parser:
      inline:
        rawHTML: true
        math:
          enabled: true
          singleDollar: true

保存配置后重新构建博客(blogdown::build_site()),这一步通常能解决大部分公式转义的问题。

2. 确保主题加载了数学渲染库(MathJax/KaTeX)

有些Hugo主题默认没有集成MathJax或KaTeX,即使你写对了公式语法,也没有引擎来渲染它。你可以手动在主题的头部或尾部添加渲染脚本:

选项1:添加MathJax(支持完整LaTeX语法)

找到主题的layouts/partials/header.html或footer.html,加入这段代码:

<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

选项2:添加KaTeX(轻量,渲染更快)

同样在header/footer里加入:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/katex.min.css">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/katex.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/contrib/auto-render.min.js" onload="renderMathInElement(document.body, {delimiters: [{left: '$', right: '$', display: false}, {left: '$$', right: '$$', display: true}]});"></script>

3. 确认R Markdown的输出设置

在你的Rmd文件开头的YAML部分,确保blogdown::html_page输出启用了mathjax:

---
title: "你的文章标题"
output:
  blogdown::html_page:
    mathjax: true
---

不过注意:如果主题已经手动加载了MathJax/KaTeX,这里的mathjax: true可能会导致重复加载,反而出问题。如果添加了主题的脚本后公式还是有问题,可以试试把这个选项设为false。

4. 测试公式写法

确保你的公式语法正确:

  • 内联公式用$BDP = \sum S + \sum K + \sum D + \sum R + \sum A + \sum P$
  • 块级公式(单独占一行)用$$BDP = \sum S + \sum K + \sum D + \sum R + \sum A + \sum P$$

另外,避免公式里有多余的空格或转义字符,比如不要写成\(BDP = ...\)(这是原生HTML的公式写法,需要MathJax支持,但单$更通用)。

按上面的步骤逐一排查,应该就能解决公式不渲染的问题了。

内容的提问来源于stack exchange,提问作者Mislav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:50:32