Markdown与数学公式

在写偏理科的文章的时候,多多少少会涉及到一些公式、函数的输入,本篇就来讲讲如何在 Markdown 中书写数学公式。

在此之前,我们先介绍下 LaTex 和 MathJax,Markdown 就是基于它们来实现数学公式的输入。

LaTex 简介

LaTex (读作 /ˈ lɑ ː tɛx/ 或 /ˈ leɪtɛx/ ),可以理解为是非常专业的排版工具,是国际上数学、物理、计算机等科技领域的专业排版工具,是科学文献交流和出版的事实标准。

LaTex 尤其适合处理篇幅较长、结构严谨的文档(例如学术论文),并且十分擅长处理复杂的表格和数学公式的排版,画个象棋图、分子结构式、电路图甚至乐谱都不在话下。

缺点:学习门槛高。如果不是数学、物理、计算机等领域的人来折腾这个,可能得一段时间才能上手。

简单介绍到这,如果你想深入了解下,不然看看这个教程:LaTeX 入门与进阶

MashJax 简介

MathJax 是一款运行在浏览器中的开源数学符号渲染引擎,使用 MathJax 可以方便的在浏览器中显示数学公式,不需要使用图片。

而 Typora 就是使用 MashJax 来解析 LaTex 的数学公式的,这一点也在文档里写了:

数学公式块

那么如何输入数学公式呢?数学公式比较特殊,得在数学公式块里才能正常渲染出结果,纯文本或者代码块是不行的。

在 Typora 中打开数学公式块的方法有:

  • 菜单栏 → 段落 → 公式块
  • 快捷键 Ctrl + Shift + M
  • 输入 $$ ,然后回车

效果:出现了一个输入框,后续就在这里输入公式

注意:

  • 并不是所有编辑器都支持(例如知乎和公众号就不行),如果遇到了不支持的情况很正常。
  • VSCode 里也可以直接用这个数学公式块。

快速入门

直接看个例子,例如输入根号 2,语法为:

\sqrt{2}

效果:

2

内联公式

如果你想输入的公式比较少,可以在一行内搞定,可以使用内联公式。首先在 Typora 中启用该设置:

启用后,建议重启下 Typora。

内联公式示例:

来输入一个根号2:$\sqrt{2}$

效果:来输入一个根号2:2

接下来介绍一些常见的公式语法。

在线编辑器

如果你的 Markdown 编辑器不支持,但又想快速尝试下,可以使用 LaTex 在线编辑器,一搜一大堆,例如:https://www.latexlive.com

常用公式语法

这里列出部分公式语法,更多的请参考文末的“参考资料”。

常见运算符

作用 Markdown 代码 效果
上标 x^2 x2
下标 y_1 y1
分式 \frac{1}{2} 12
省略号 \cdots
矢量 \vec{a} a
积分 \int{x}dx xdx
积分(带范围) \int_{1}^{2}{x}dx 12xdx
极限 \lim{a+b} lima+b
极限(带范围) \lim_{n\rightarrow+\infty} limn+
累加 \sum{a} a
累加(带范围) \sum_{n=1}^{100}{a_n} n=1100an
累乘 \prod{x} x
累乘(带范围) \prod_{n=1}^{99}{x_n} n=199xn
向下取整 \lfloor x \rfloor x
向上取整 \lceil x \rceil x

三角函数

Markdown 代码 效果
\sin sin
\cos cos

其他符号以此类推,就不一一列举了

对数函数

Markdown 代码 效果
\ln2 ln2
\log_28 log28
\lg10 lg10

关系运算符

说明 Markdown 代码 效果
加减号 \pm ±
乘(或笛卡尔积) \times ×
点乘 \cdot
\div ÷
不等号 \neq
等价 \equiv
小于等于 \leq
大于等于 \geq
并集 \cup
交集 \cap

其它特殊字符

Markdown 代码 效果
\forall
\infty
\emptyset
\exists
\nabla
\bot
\angle
\because
\therefore

空格,换行

示例:

a \quad b

效果:

ab


也可以用一个斜线表示空格(注意反斜线后面要有空格)。语法:

a \  b

效果:

a b

换行

用两个反斜线表示换行(注意两个反斜线后面要有空格)。示例:

1 + 1 = 2
\\ 
2 + 2 = 4

效果:

1+1=22+2=4

注意:有些 Markdown 编辑器还未支持该语法,例如本博客使用的 MathJax。

我查了下文档,说是还未实现该功能,但是马上就会实现了。

文档地址:Automatic Line Breaking — MathJax 3.2 documentation

花括号

示例:

c(u)=\begin{cases} \sqrt\frac{1}{N}, u=0\\ \sqrt\frac{2}{N}, u\neq0\end{cases}  

效果:

c(u)={1N,u=02N,u0

希腊字母

Markdown 代码 效果(大写) Markdown 代码 效果(小写)
A A \alpha α
B B \beta β
\Gamma Γ \gamma γ
\Delta Δ \delta δ
E E \epsilon ϵ
\varepsilon ε
Z Z \zeta ζ
H H \eta η
\Theta Θ \theta θ
I I \iota ι
K K \kappa κ
\Lambda Λ \lambda λ
M M \mu μ
N N \nu ν
\Xi Ξ \xi ξ
O O \omicron ο
\Pi Π \pi π
P P \rho ρ
\Sigma Σ \sigma σ
T T \tau τ
\Upsilon Υ \upsilon υ
\Phi Φ \phi ϕ
\varphi φ
X X \chi χ
\Psi Ψ \psi ψ
\Omega Ω \omega ω

矩阵

语法:

\begin{matrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 
\end{matrix} \tag{1}

效果:

(1)123456789

带括号的矩阵:

\left[
\begin{matrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 
\end{matrix} \right]\tag{2}

效果:

(2)[123456789]

Madoko

Markdown 和 Latex 代表了写作语言的两极:Markdown 追求极致的简洁,只有最少的格式控制;而 Latex 追求极致的可控,可以实现无限复杂的格式,也对语法有着严格的限制。

而这两极之间一直遗留着广阔的空白地带,是否有这样一种写作语言,在实现精美排版的同时,保持着足够的简洁和易用呢?Madoko 的便是为了这一目的而生。

Madoko 是一款开源的在线编辑器,当然你也可以通过 Node 的方式本地安装并运行。

GitHub 地址:https://github.com/koka-lang/madoko

中文翻译:https://github.com/HHpetra/MadokoReferenceChinese

发布注意事项

有些平台不支持 LaTex,那么如果想要发布带有 LaTex 公式的博客到这些平台,就得先处理下,例如截图。

为此,有人做了一个工具,将 Markdown 中的 LaTeX 转化为本地图片,这个工具叫 mdtex,开源在 GitHub:github.com/rreusser/mdtex-cli

具体步骤可以参考:Markdown 一次编辑全平台发布方案,支持 LaTeX 公式! - 知乎

我用的博客框架是 VuePress,使用了插件 markdown-it-mathjax3 后能正常渲染出结果(例如本文的数学公式都能正常显示),具体步骤可以参考我的另一篇博客:显示数学公式块

参考资料

107 页的PDF 文件:“一份不太简短的 LATEX2e 介绍” 3.1 节 数学公式

posted @   peterjxl  阅读(387)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示