为知笔记MathJax使用教程

时间:2024-02-20 14:44:43

基本数学公式语法(MathJax)

概述

为知笔记中markdown中支持数学公式LaTex语法。在书写数值计算类文章,特别是机器学习相关算法时,难免需要插入复杂的数学公式。一种是用图片在网页上展示,另外一种是使用 MathJax 来展示复杂的数学公式。它直接使用 Javascript渲染成矢量字库或 SVG 文件来显示数学公式。
优点是效果好,比如在 Retina 屏幕上也不会变得模糊。并且可以直接把公式写在 Markdown 文章里。

基本语法

呈现位置

  • 正文(inline)中的LaTeX公式用$...$定义
    • 语句为$\sum_{i=0}^N \int_{a}^{b}g(t,i)\text{d}t$
    • 显示为 \(\sum_{i=0}^N \int_{a}^{b}g(t,i)\text{d}t\)
  • 单独显示(display)的LaTeX公式用$$...$$定义,此时公式居中并放大显示
    • 语句为$$ \sum_{i=0}^N\int_{a}^{b}g(t,i)\text{d}t$$
    • 显示为$$ \sum_{i=0}N\int_{a}{b}g(t,i)\text{d}t$$
  • 下列描述语句中若非特别指出均省略$...$
显示 命令 显示 命令
$\alpha $ \alpha \(\beta\) \beta
\(\gamma\) \gamma \(\delta\) \delta
\(\epsilon\) \epsilon \(\zeta\) \zeta
\(\eta\) \eta \(\theta\) \theta
\(\iota\) \iota \(\kappa\) \kappa
\(\lambda\) \lambda \(\mu\) \mu
\(\nu\) \nu \(\xi\) \xi
\(\pi\) \pi \(\rho\) \rho
\(\eta\) \eta \(\eta\) \eta
\(\sigma\) \sigma \(\tau\) \tau
\(\upsilon\) \upsilon \(\phi\) \phi
\(\chi\) \chi \(\psi\) \psi
\(\omega\) \omega
  • 若需要大写希腊字母,将命令首字母大写即可。
  • \Gamma 呈现为$ \Gamma$
  • 若需要斜体希腊字母,将命令前加上var前缀即可。
  • \varGamma呈现为\(\varGamma\)

字母修饰

上下标

  • 上标:^
  • 下标:_
  • 举例:C_n^2呈现为$ C_n^2$

矢量

  • \vec a 呈现为$ \vec a $
  • \overrightarrow{xy} 呈现为$ \overrightarrow{xy}$

分组

  • 使用{}将具有相同等级的内容扩入其中,成组处理
  • 举例:10{10}呈现为$10^{10}$,而1010呈现为\(10^10\)

$ [J_\alpha(x)=\sum_{m=0}^\infty \frac{(-1)^m}{m!\Gamma(m+ \alpha +1)}{\left({\frac{x}{2}}\right)}^{2m+\alpha}] $

括号

  • 小括号:()呈现为\(()\)
  • 中括号:[]呈现为\([]\)
  • 使用\left(或者\right)使符号大小与邻近的公式相适应;该语句适用于素有括号类型
    • (\frac{x}{y})呈现为\((\frac{x}{y})\)
    • 而\left(\frac{x}{y}\right)呈现为\(\left(\frac{x}{y}\right)\)

求和、极限与积分

  • 求和:\sum
    • 举例:\sum_{i=1}^n{a_i}呈现为 \(\sum_{i=1}^n{a_i}\)
  • 极限:\lim_{x\to 0}呈现为$ \lim_{x\to 0}$
  • 积分:\int
    • 举例:\int_0^\infty{f(x)dx} 呈现为$ \int_0^\infty{f(x)dx}$

分式与根式

  • 分式(fractions):\frac{公式1}{公式2}呈现为\(\frac{公式1}{公式2}\)
    -根式:\sqrt[x]{y}呈现为\(\sqrt[x]{y}\)

特殊函数

  • \函数名
  • 举例:\sin x,\ln x,\max(A,B,C)呈现为\(\sin x\),\(\ln x\),\(\max(A,B,C)\)
显示 命令
\(\infty\) \infty
\(\cup\) \cup
\(\cap\) \cap
\(\subset\) \subset
\(\subseteq\) \subseteq
\(\supset\) \supset
\(\in\) \in
\(\notin\) \notin
\(\varnothing\) \varnothing
\(\forall\) \forall
\(\exists\) \exists
\(\lnot\) \lnot
\(\nabla\) \nabla
\(\partial\) \partial

空格

  • LaTeX语法本身会忽略空格的存在
  • 小空格 a\ b呈现为\(a\ b\)
  • 4格空格:a\quad b 呈现为\(a\quad b\)

矩阵

基本语法

  • 起始标记\begin{matrix},结束标记\end{matrix}
  • 每一行末尾标记\\,行间元素之间以&分隔
  • 举例
$$ \begin{matrix}
 1&0&0\\
 0&1&1\\
 0&1&1\\
 \end{matrix}$$

呈现为:

\[ \begin{matrix} 1&0&0\\ 0&1&1\\ 0&1&1\\ \end{matrix}\]

矩阵边框

  • 在起始、结束标记处用下列词替换matrix
    • pmatrix:小括号边框
    • bmatrix:中括号边框
    • Bmatrix:大括号边框
    • vmatrix:单竖线边框
    • Vmatrix:双竖线边框

省略元素

  • 横省略号:\cdots
  • 竖省略号:\vdots
  • 斜省略号:\ddots
  • 举例
$$\begin{bmatrix} 
{a_{11}}&{a_{12}}&{\cdots}&{a_{1n}}\\ 
{a_{21}}&{a_{22}}&{\cdots}&{a_{2n}}\\ 
{\vdots}&{\vdots}&{\ddots}&{\vdots}\\ 
{a_{m1}}&{a_{m2}}&{\cdots}&{a_{mn}}\\ 
\end{bmatrix}$$

呈现为:

\[\begin{bmatrix} {a_{11}}&{a_{12}}&{\cdots}&{a_{1n}}\\ {a_{21}}&{a_{22}}&{\cdots}&{a_{2n}}\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ {a_{m1}}&{a_{m2}}&{\cdots}&{a_{mn}}\\ \end{bmatrix}\]

线性回归算法里的成本函数

$$ J(\theta) = \frac 1 2 \sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2 $$

上面用 LaTex 格式书写的数学公式经过 MathJax 展示后效果如下:

\[J(\theta) = \frac 1 2 \sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2 \]

几个非常有用的资源

  • Github 上有个在线 Markdown MathJax 编辑器,可以在这里练习,平时写公式时也可以在这里先写好再拷贝到文章里
  • 这是 LaTex 完整教程,包含完整的 LaTex 数学公式的内容,包括更高级的格式控制等
  • 这是一份PDF 格式的 MathJax 支持的数学符号表,当需要书写复杂数学公式时,一些非常特殊的符号的转义字符可以从这里查到