这篇文章只使用 Typora 官方文档给出的两种写法:行内公式用单个美元符号,独立公式用单独成行的两个美元符号。 不使用图片或其他公式定界符,便于单独检查数学渲染。

在 Typora 中测试行内公式前,请先到「偏好设置 → Markdown → 数学公式」启用「行内公式(Inline Math)」,然后重启 Typora。独立公式与行内公式的开关不同,所以可能出现“独立公式正常、行内公式显示源码”的情况。

Hexo 是否显示数学公式,还取决于博客安装的数学渲染插件及主题配置;Typora 显示正常不代表 Hexo 一定正常。

1. 最简单的独立公式

$$
a+b=c
$$

预期:上面单独显示一条排版后的公式,没有原始美元符号。

2. 分数与上下标

$$
J(w,b)=\frac{1}{2m}\sum_{i=1}^{m}\left(f_{w,b}(x^{(i)})-y^{(i)}\right)^2
$$

预期:分数、求和号、上下标正常显示。这是线性回归的代价函数。

3. 行内公式

这里的 $x$ 是输入,$w$ 是权重,$b$ 是偏置。线性回归的预测写成 $f_{w,b}(x)=wx+b$,公式前后仍是普通文字。

预期:公式与文字在同一行,上下标正常,不显示美元符号。若第 1、2 节正常而本节显示源码,先检查 Typora 的「行内公式」开关并重启。

4. 逻辑回归公式

先计算加权和:

$$
z=\sum_{j=1}^{n}w_jx_j+b
$$

再经过 sigmoid 函数:

$$
f_{w,b}(x)=\frac{1}{1+e^{-z}}
$$

5. 较长的公式

$$
J_{\mathrm{reg}}(w,b)=-\frac{1}{m}\sum_{i=1}^{m}\left[y^{(i)}\log f^{(i)}+(1-y^{(i)})\log(1-f^{(i)})\right]+\frac{\lambda}{2m}\sum_{j=1}^{n}w_j^2
$$

预期:公式能排版;如果只是在手机或窄窗口溢出,则重点检查主题样式和长公式的横向滚动设置。

6. 代码块对照

下面是原始写法示例,应当显示源码,不应排版成公式:

1
2
3
4
5
行内:$f_{w,b}(x)=wx+b$
独立:
$$
J(w,b)=\frac{1}{2m}\sum_{i=1}^{m}(f^{(i)}-y^{(i)})^2
$$

结果判断

现象 优先检查
Typora 独立公式正常,行内公式显示源码 Typora 的「行内公式」开关,启用后重启
Typora 正常,Hexo 全部显示源码 Hexo 数学渲染插件和主题配置
简单公式正常,长公式溢出 主题 CSS 或页面宽度
代码块中的公式也被排版 插件对代码块的排除规则

参考:Typora 官方数学公式说明。