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

求助:Jekyll中kramdown无法正确解析行内数学公式的问题

解决Jekyll中kramdown导致的行内数学公式渲染异常问题

问题背景

在Jekyll中使用$包裹的行内数学公式时,默认Markdown引擎kramdown会误将公式内的下划线与前后文本识别为斜体标记(比如把{i, j} $, and then transformed to the real offsets $ \Delta p解析为斜体内容),导致公式结构被破坏,无法被MathJax正常渲染。

可行解决方案

方案1:关闭kramdown的下划线斜体解析

在Jekyll的_config.yml中添加kramdown配置,禁用下划线作为斜体标记:

kramdown:
  underline: false

此方法一劳永逸,无需修改现有公式内容,适合大量使用下标公式的场景。

方案2:转义公式内的下划线

手动给公式中的下划线添加反斜杠转义,避免被kramdown识别为斜体标记:
原公式:

$ \Delta \hat{p}_{i, j} $

修改后:

$ \Delta \hat{p}\_{i, j} $

适合公式数量较少的场景,缺点是需要逐个修改公式。

方案3:更换Markdown引擎

改用对数学公式更友好的Markdown引擎,比如GFM或CommonMark:

  • 配置为GFM:
markdown: GFM
  • 配置为CommonMark(需先安装jekyll-commonmark插件):
markdown: CommonMark
commonmark:
  options: ["SMART", "FOOTNOTES"]
  extensions: ["strikethrough", "autolink", "table"]

这类引擎对$包裹的行内公式识别更精准,不易被下划线干扰。

方案4:使用MathJax专用行内公式标记

用\(和\)代替$包裹行内公式,kramdown不会解析这类标记,能完整保留公式结构:

\( \Delta \hat{p}_{i, j} \)

此方法兼容性强,无需修改引擎配置,适合需要兼顾多种场景的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 08:46:24