Markdown 数学公式完全指南:让你的技术写作更专业

大家好!今天我们继续聊聊每个程序员和技术写作者都应该掌握的技能——Markdown。
你是否曾在写技术博客时,为复杂的数学公式而苦恼?是否希望能在文档中轻松插入专业级别的数学表达式?
这是介绍Markdown的第三篇,我们将深入探讨如何在Markdown中优雅地处理数学公式,让你的技术文档更加专业。
第一部分:为什么需要在Markdown中使用数学公式?
在技术写作中,我们经常需要表达:
- 算法复杂度分析:$O(n \log n)$
- 机器学习公式:$J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2$
- 物理定律:$E = mc^2$
- 统计学表达式:$\mu = \frac{1}{N}\sum_{i=1}^{N} x_i$
使用Markdown的数学公式功能,可以让我们在保持文档简洁的同时,准确表达这些复杂的数学内容。
第二部分:Markdown中如何插入数学公式?
在 Markdown 中,我们可以使用 LaTeX 语法来插入数学公式,主要分为两种形式:
LaTeX(读作 /ˈlɑːtɛx/ 或 /ˈleɪtɛx/)是国际上数学、物理、计算机等科技领域的专业排版工具,是科学文献交流和出版的事实标准。
如果你想深入了解,可以看看这个教程:LaTeX 入门与进阶
行内公式
行内公式语法:使用单个 $ 符号包围起来,如:
算法复杂度分析:$O(n \log n)$
渲染效果如下:
算法复杂度分析:$O(n \log n)$
块公式
块公式语法:使用两个 $$ 符号包围起来,如:
$$H(D_2) = -\left(\frac{2}{4}\log_2 \frac{2}{4} + \frac{2}{4}\log_2 \frac{2}{4}\right) = 1$$
渲染效果如下:
$$H(D_2) = -\left(\frac{2}{4}\log_2 \frac{2}{4} + \frac{2}{4}\log_2 \frac{2}{4}\right) = 1$$
第三部分: 常用数学符号和表达式详解
⚠️ 提示:部分平台对数学符号支持有限,可能出现渲染问题。
上标与下标
用于表示指数和下标,如变量索引等:
- 上标:
$x^2$-> $x^2$(表示x的平方) - 下标:
$x_1$-> $x_1$(表示x的下标1)
分数与根号
处理数学表达式中的分数和根式:
- 分数:
$\frac{a}{b}$-> $\frac{a}{b}$(表示a除以b) - 平方根:
$\sqrt{a}$-> $\sqrt{a}$ (表示a的平方根) - n次方根:
$\sqrt[n]{a}$-> $\sqrt[n]{a}$(表示a的n次方根)
积分与求和
常用在数学和物理公式中:
- 积分:
$\int_{0}^{1} x^2 dx$-> $\int_{0}^{1} x^2 dx$(表示从0到1的定积分) - 求和:
$\sum_{i=1}^{n} i$-> $\sum_{i=1}^{n} i$(表示从1到n的求和)
希腊字母
科学和工程领域常用符号:
- 小写:
$\alpha, \beta, \gamma$-> $\alpha, \beta, \gamma$(常用于角度、系数等) - 大写:
$\Gamma, \Delta, \Theta$-> $\Gamma, \Delta, \Theta$ (常用于特殊函数、变化量等)
极限与微分
- 极限:
$\lim_{x \to 0} \frac{\sin x}{x} = 1$-> $\lim_{x \to 0} \frac{\sin x}{x} = 1$(表示x趋向于0时,函数$\sin x$
除以x的极限) - 导数:
$\frac{d}{dx}x^2 = 2x$-> $\frac{d}{dx}x^2 = 2x$(表示x的导数) - 偏导数:
$\frac{\partial f}{\partial x}$-> $\frac{\partial f}{\partial x}$(表示x的偏导数)
矢量与集合
- 矢量:
$\vec{a}$ 或 $\mathbf{a}$-> $\vec{a}$(表示向量a) - 属于关系:
$x \in A$-> $x \in A$(表示x属于集合A) - 子集:
$A \subseteq B$-> $A \subseteq B$(表示A是B的子集)
特殊符号
- 无穷大:
$\infty$-> $\infty$ - 空集:
$\emptyset$-> $\emptyset$ - 因此:
$\therefore$-> $\therefore$ - 因为:
$\because$-> $\because$
第四部分: 高级应用示例
矩阵示例
矩阵是技术文档中常见的内容,可以用如下方式表示:
$$
\begin{pmatrix}
1 & a_1 & a_1^2 & \cdots & a_1^n \\
1 & a_2 & a_2^2 & \cdots & a_2^n \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
1 & a_m & a_m^2 & \cdots & a_m^n \\
\end{pmatrix}
$$
$$
\begin{pmatrix}
1 & a_1 & a_1^2 & \cdots & a_1^n \
1 & a_2 & a_2^2 & \cdots & a_2^n \
\vdots & \vdots & \vdots & \ddots & \vdots \
1 & a_m & a_m^2 & \cdots & a_m^n \
\end{pmatrix}
$$
方程组示例
在工程和数学计算中,我们经常需要表示方程组:
线性方程组
$$
\begin{cases}
2x + 3y - z = 1 \\
x - y + 2z = -2 \\
3x + y + z = 3
\end{cases}
$$
$$
\begin{cases}
2x + 3y - z = 1 \
x - y + 2z = -2 \
3x + y + z = 3
\end{cases}
$$
使用align环境的方程组
$$
\begin{align}
2x + 3y - z &= 1 \\
x - y + 2z &= -2 \\
3x + y + z &= 3
\end{align}
$$
$$
\begin{align}
2x + 3y - z &= 1 \
x - y + 2z &= -2 \
3x + y + z &= 3
\end{align}
$$
机器学习常用公式
线性回归
$$
\hat{y} = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \cdots + \theta_n x_n
$$
$$
\hat{y} = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \cdots + \theta_n x_n
$$
逻辑回归
$$
h_\theta(x) = \frac{1}{1 + e^{-\theta^T x}}
$$
$$
h_\theta(x) = \frac{1}{1 + e^{-\theta^T x}}
$$
梯度下降算法
$$
\theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta)
$$
$$
\theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta)
$$
正则化项
$$
J(\theta) = \frac{1}{2m} \left[ \sum_{i=1}^m (h_\theta(x^{(i)}) - y^{(i)})^2 + \lambda \sum_{j=1}^n \theta_j^2 \right]
$$
$$
J(\theta) = \frac{1}{2m} \left[ \sum_{i=1}^m (h_\theta(x^{(i)}) - y^{(i)})^2 + \lambda \sum_{j=1}^n \theta_j^2 \right]
$$
统计学公式
概率密度函数
$$
f(x|\mu,\sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}
$$
$$
f(x|\mu,\sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}
$$
贝叶斯定理
$$
P(A|B) = \frac{P(B|A)P(A)}{P(B)}
$$
$$
P(A|B) = \frac{P(B|A)P(A)}{P(B)}
$$
协方差
$$
\text{Cov}(X,Y) = E[(X - E[X])(Y - E[Y])]
$$
$$
\text{Cov}(X,Y) = E[(X - E[X])(Y - E[Y])]
$$
物理公式示例
薛定谔方程
$$
i\hbar\frac{\partial}{\partial t}\Psi(\mathbf{r},t) = \hat{H}\Psi(\mathbf{r},t)
$$
$$
i\hbar\frac{\partial}{\partial t}\Psi(\mathbf{r},t) = \hat{H}\Psi(\mathbf{r},t)
$$
麦克斯韦方程组
$$
\begin{aligned}
\nabla \cdot \mathbf{E} &= \frac{\rho}{\varepsilon_0} \\
\nabla \cdot \mathbf{B} &= 0 \\
\nabla \times \mathbf{E} &= -\frac{\partial \mathbf{B}}{\partial t} \\
\nabla \times \mathbf{B} &= \mu_0\left(\mathbf{J} + \varepsilon_0\frac{\partial \mathbf{E}}{\partial t}\right)
\end{aligned}
$$
$$
\begin{aligned}
\nabla \cdot \mathbf{E} &= \frac{\rho}{\varepsilon_0} \
\nabla \cdot \mathbf{B} &= 0 \
\nabla \times \mathbf{E} &= -\frac{\partial \mathbf{B}}{\partial t} \
\nabla \times \mathbf{B} &= \mu_0\left(\mathbf{J} + \varepsilon_0\frac{\partial \mathbf{E}}{\partial t}\right)
\end{aligned}
$$
化学反应方程式
化学反应平衡
$$
aA + bB \rightleftharpoons cC + dD
$$
$$
aA + bB \rightleftharpoons cC + dD
$$
能斯特方程
$$
E = E^0 - \frac{RT}{nF} \ln Q
$$
$$
E = E^0 - \frac{RT}{nF} \ln Q
$$
数学环境类型
除了基本的行内和块级公式,LaTeX还提供了多种数学环境:
所谓数学环境类型是指在 LaTeX 中预定义的、用于不同类型数学表达的结构化格式。每种环境都有其特定的用途和显示样式
对齐公式
$$
\begin{align}
x &= y + z \\
a &= b + c
\end{align}
$$
$$
\begin{align}
x &= y + z \
a &= b + c
\end{align}
$$
分段函数
$$
f(x) =
\begin{cases}
x^2 & \text{if } x \geq 0 \\
-x^2 & \text{if } x < 0
\end{cases}
$$
$$
f(x) =
\begin{cases}
x^2 & \text{if } x \geq 0 \
-x^2 & \text{if } x < 0
\end{cases}
$$
多行公式
$$
\begin{aligned}
E &= mc^2 \\
F &= ma \\
v &= u + at
\end{aligned}
$$
$$
\begin{aligned}
E &= mc^2 \
F &= ma \
v &= u + at
\end{aligned}
$$
第五部分:平台兼容性与注意事项
不同平台对数学公式的支持程度不同,使用时需要注意:
| 平台 | 支持情况 | 备注 |
|---|---|---|
| GitHub | ✅ 完全支持 | 使用 MathJax 渲染 |
| Jupyter Notebook | ✅ 完全支持 | 原生支持 LaTeX |
| 微信公众号 | ⚠️ 部分支持 | 内置公式编辑器,支持基础LaTeX语法 |
| 今日头条 | ⚠️ 部分支持 | 需使用第三方工具 |
| 知乎 | ⚠️ 部分支持 | 建议发布前测试 |
| 掘金 | ⚠️ 部分支持 | 需开启数学公式选项 |
第六部分: 数哥私藏资料推荐
实用工具推荐
以下工具可以帮助你更轻松地编写数学公式:
- Mathpix Snip:截图识别数学公式,自动生成 LaTeX 代码,支持多种格式导出
- Overleaf:在线 LaTeX 编辑器,专业级公式编辑和协作平台
- latexlive:在线 LaTeX 公式编辑器,实时预览功能
- MathJax:开源数学公式渲染引擎,可集成到网站中
- KaTeX:快速、易于使用的数学公式渲染库,适合网页应用
学习路径建议
- 基础掌握:熟练使用基本数学符号和公式
- 进阶应用:学习矩阵、多行公式等复杂表达
- 工具整合:结合MathJax、KaTeX等渲染引擎
- 专业领域:根据专业需求学习特定符号系统(如化学、物理等)
结语
Markdown 的数学公式功能虽然看起来只是一个小特性,但它能显著提升你的技术写作质量和专业度。特别是对于理工科的朋友来说,掌握这项技能可以让你在写博客、做笔记、制作技术文档时更加得心应手。
📌 本次分享就到这里,感谢你的阅读!
🔔 关注【数说编程】,第一时间获取技术写作、效率工具、编程干货!
💬 如果你觉得这篇文章对你有帮助,欢迎点赞、收藏、分享给更多朋友!
评论