下划线引发的Markdown与Latex冲突问题

📅 发布时间:2026-06-29 👁️ 阅读次数:1029 次

最近在面试天下网发表文章的时候,经常出现latex公式无法正常显示的问题,经过彻夜排查,终于发现了问题所在,特此记录一下,以便后续再次出现问题可以及时翻看此文。

在 Markdown 中,单个下划线 _ 的作用取决于上下文,主要有两种截然不同的情况:

1、作为强调标记(与 * 等效)

_ 用来包裹文字时,表示斜体(强调)。

语法:_文字_

效果:文字

注意:必须成对出现,且只能包裹单个单词或连续无空格的内容。如果包裹的内容包含空格,在某些变体(如 GFW 下的常见 Markdown 解析器)中可能不会被识别。

2、作为普通文本字符(字面量)

_ 单独出现(不成对)或出现在单词中间时,它会被当作普通字符直接显示,不会触发任何格式。

示例:hello_world文件_名称.txt

效果:显示为 hello_world,不会变成斜体。

关键陷阱(容易踩坑)

LaTeX语法中的_表示下标,如 $x_1$ 显示为 $x_1$,所以与Markdown出现了冲突问题,如下公式所示:

它经过Markdown处理之后,变成了:

此时已经不再是合法的Latex公式了,导致无法正常显示出公式。解决的方法有两种。

第一种方法:增加<p></p>包裹住Latex公式。原因在于,当Markdown内容被包裹在 HTML 块级标签(如 <p><div>)内部时,解析器默认会跳过对其内部 Markdown语法的解析。

第二种方法:对下划线进行转义