搜索 K
Appearance
博客正在加载中...
Appearance
在写偏理科的文章的时候,多多少少会涉及到一些公式、函数的输入,本篇就来讲讲如何在 Markdown 中书写数学公式。
在此之前,我们先介绍下 LaTex 和 MathJax,Markdown 就是基于它们来实现数学公式的输入。
LaTex (读作 /ˈ lɑ ː tɛx/ 或 /ˈ leɪtɛx/ ),可以理解为是非常专业的排版工具,是国际上数学、物理、计算机等科技领域的专业排版工具,是科学文献交流和出版的事实标准。
LaTex 尤其适合处理篇幅较长、结构严谨的文档(例如学术论文),并且十分擅长处理复杂的表格和数学公式的排版,画个象棋图、分子结构式、电路图甚至乐谱都不在话下。
缺点:学习门槛高。如果不是数学、物理、计算机等领域的人来折腾这个,可能得一段时间才能上手。
简单介绍到这,如果你想深入了解下,不然看看这个教程:LaTeX 入门与进阶
MathJax 是一款运行在浏览器中的开源数学符号渲染引擎,使用 MathJax 可以方便的在浏览器中显示数学公式,不需要使用图片。
而 Typora 就是使用 MashJax 来解析 LaTex 的数学公式的,这一点也在文档里写了:
那么如何输入数学公式呢?数学公式比较特殊,得在数学公式块里才能正常渲染出结果,纯文本或者代码块是不行的。
在 Typora 中打开数学公式块的方法有:
Ctrl + Shift + M$$ ,然后回车 效果:出现了一个输入框,后续就在这里输入公式
注意:
直接看个例子,例如输入根号 2,语法为:
\sqrt{2}效果:
如果你想输入的公式比较少,可以在一行内搞定,可以使用内联公式。首先在 Typora 中启用该设置:
启用后,建议重启下 Typora。 内联公式示例:
来输入一个根号2:$\sqrt{2}$效果:来输入一个根号2:
如果你的 Markdown 编辑器不支持,但又想快速尝试下,可以使用 LaTex 在线编辑器,一搜一大堆,例如:https://www.latexlive.com
这里列出部分公式语法,更多的请参考文末的“参考资料”。
| 作用 | Markdown 代码 | 效果 |
|---|---|---|
| 上标 | x^2 | x2 |
| 下标 | y_1 | y1 |
| 分式 | \frac{1}{2} | |
| 省略号 | \cdots | |
| 矢量 | \vec{a} | |
| 积分 | \int{x}dx | |
| 积分(带范围) | \int_{1}^{2}{x}dx | |
| 极限 | \lim{a+b} | |
| 极限(带范围) | \lim_{n\rightarrow+\infty} | |
| 累加 | \sum{a} | |
| 累加(带范围) | \sum_{n=1}^{100}{a_n} | |
| 累乘 | \prod{x} | |
| 累乘(带范围) | \prod_{n=1}^{99}{x_n} | |
| 向下取整 | \lfloor x \rfloor | |
| 向上取整 | \lceil x \rceil |
| Markdown 代码 | 效果 |
|---|---|
\sin | |
\cos |
其他符号以此类推,就不一一列举了
| Markdown 代码 | 效果 |
|---|---|
\ln2 | |
\log_28 | |
\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 效果:
也可以用一个斜线表示空格(注意反斜线后面要有空格)。语法:
a \ b效果:
用两个反斜线表示换行(注意两个反斜线后面要有空格)。示例:
1 + 1 = 2
\\
2 + 2 = 4 效果:
注意:有些 Markdown 编辑器还未支持该语法,例如本博客使用的 MathJax。
我查了下文档,说是还未实现该功能,但是马上就会实现了。
示例:
c(u)=\begin{cases} \sqrt\frac{1}{N}, u=0\\ \sqrt\frac{2}{N}, u\neq0\end{cases} 效果:
| 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}效果:
带括号的矩阵:
\left[
\begin{matrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{matrix} \right]\tag{2} 效果:
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 节 数学公式