介绍一下 mathjax 在 vscode,hexo,gitbook
中的使用以及 LaTeX 中数学公式书写的基本规则
MathJax 简介
MathJax 是一款运行在浏览器中的开源的数学符号渲染引擎,使用 MathJax 可以方便的在浏览器中显示数学公式,不需要使用图片。目前,MathJax 可以解析 Latex、MathML 和 ASCIIMathML 的标记语言。
顺便安利一款软件 ,可以直接截图将图片公式转化为 LaTeX 代码
Mathpix Snipping Tool
VScode
在 VScode 中进行实施浏览,我使用的是Markdown+Math
这个插件,安装好之后直接在 markdown 中进行书写公式就可以非常方便得进行转化
Hexo
我使用的是 Hexo博客
的 next
主题,非常贴心地在主题的配置文件中给出了是否打开的选项。在 blog/themes/next/_config.yml
中进行修改,将 math
选项打开,我这里对于 per_page
的选项选择的是 true
(我觉得并不是每一篇文章都需要显示数学公式,让每一页都加载对应的 CSS 之类的反而比较臃肿)
对于需要的文章,在文章开头的部分添加 mathjax: true
即可。在使用 hexo g
和 hexo s
之后就可以看到对应的公式了。
Gitbook
Gitbook 官方插件地址 -> https://plugins.gitbook.com/
Gitbook 里面当然也有对应的插件了。有两种插件 katex
和 mathjax
,我还是先选择了 mathjax
。在官网上katex上写的是比 mathjax
更快,但是我选择 mathjax
还有的一个点是因为可以在网页上右键非常方便得显示出 MathML 格式的代码和 LaTeX 格式的代码。
首先对 book.json 进行编辑,在 plugins
中加入对应的插件名字(去掉插件则是加个 -
,如何 -search
)
1 | { |
然后在该目录下面进行gitbook install
就会自动安装所需要的插件
基本效果
1 | $2_{X1}*1^1$ |
显示出来的效果是
在公式上右键可以查看该公式的 MathML 的写法和 LaTeX 的写法
LaTeX 公式书写
上面说了一堆安装使用的方法,最重要的当然还是怎么进行公式的书写。
公式标记
使用$
来进行公式的表标记
$...$
表示行内公式$$...$$
表示整行公式
希腊字母表
名称 | 大写 | Tex | 小写 | Tex |
---|---|---|---|---|
alpha | A | \alpha | ||
beta | B | \beta | ||
gamma | \Gamma | \gamma | ||
delta | \Delta | \delta | ||
epsilon | E | \epsilon | ||
zeta | Z | \zeta | ||
eta | H | \eta | ||
theta | \Theta | \theta | ||
iota | I | \iota | ||
kappa | K | \kappa | ||
lambda | \Lambda | \lambda | ||
mu | M | \mu | ||
nu | N | \nu | ||
xi | \Xi | \xi | ||
omicron | O | \omicron | ||
pi | \Pi | \pi | ||
rho | P | \rho | ||
sigma | \Sigma | \sigma | ||
tau | T | \tau | ||
upsilon | \Upsilon | \upsilon | ||
phi | \Phi | \phi | ||
chi | X | \chi | ||
psi | \Psi | \psi | ||
omega | \Omega | \omega |
注:此表的 markdown 形式是alpha | $A$ | A | $\alpha$ | \alpha
如果想要进行摘录复制,只能复制三列的话(网页复制下来是alpha A \alpha
)可以存到文件中使用 awk 进行转换,awk '{print $1,"$"$2"$",$2,"$"$3"$",$3}' in.txt
,可得到alpha $A$ A $\alpha$ \alpha
上标与下标
- 上标和下标分别使用^与_
- 例如
x_i^2
显示的效果就是 - 使用大括号{}括起来表示一个单元,同时可以消除二义性
括号
- 小括号与方括号: 使用原始的
(),[]
即可,如(2+3)[4+4]
的显示效果就是 - 大括号: 由于大括号
{}
被用来分组,因此需要使用\{ 和 \}
表示大括号,也可以使用\lbrace
和\rbrace
来表示。如\{a*b\}
的显示效果为${ab}$,\lbrace a*b \rbrace
的效果也为$\lbrace ab \rbrace$。 - 尖括号:使用
\langle
和\rangle
表示左尖括号和右尖括号。如\langle x \rangle
将表示为 。 - 上取整:使用
\lceil
和\rceil
表示。 如,\lceil x \rceil
: 。 - 下取整:使用
\lfloor
和\rfloor
表示。如,\lfloor x \rfloor
: 。 - 不可见括号:使用.表示。
- 需要注意的是,原始符号并不会随着公式大小缩放。如,
(\frac12)
: 。可以使用\left( … \right)
(\left\lbrave...\right\rbrace
,可以理解成\left,\right
是对括号的修饰词)来自适应的调整括号大小。如下,
1 | $$\lbrace \sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}\rbrace \tag{1.1}$$ |
可以看到,公式 1.2 中的括号是经过缩放的。
求和与积分
- \sum 用来表示求和符号,其下标表示求和下限,上标表示上限。如,
\sum_1^n
: 。 - \int 用来表示积分符号,同样地,其上下标表示积分的上下限。如,
\int_1^\infty
: 。 - 与此类似的符号还有,
\prod
: ,\bigcup
: ,\bigcap
: ,\iint
: 。
分式与根式
- 分式的表示。第一种,使用
\frac ab
,\frac
作用于其后的两个组 a,b,结果为 。如果你的分子或分母不是单个字符,请使用{..}
来分组。第二种,使用\over 来分隔一个组的前后两部分,如{a+1\over b+1}
: 。 - 根式使用
\sqrt
来表示。如,\sqrt[4] {\frac xy}
:
字体
- 使用\mathbb 或\Bbb 显示黑板粗体字,此字体经常用来表示代表实数、整数、有理数、复数的大写字母。如,
- 使用\mathbf 显示黑体字,如
- 使用\mathtt 显示打印机字体,如
- 使用\mathrm 显示罗马字体,如
- 使用\mathscr 显示手写体,如
- 使用\mathfrak 显示 Fraktur 字母(一种德国字体),
特殊函数与符号
- 常见的三角函数,求极限符号可直接使用+缩写即可。如
\sin x
表示为 ,\arctan
表示为 ,lim_{1\to\infty}
表示为 。 - 比较运算符:
\lt \gt \le \ge \neq
: 。 - 可以在这些运算符前面加上
\not
,如\not\lt
: 。 \times \div \pm \mp
表示: ,\cdot
表示居中的点 ,x \cdot y
: 。- 集合关系与运算:
\cup \cap \setminus \subset \subseteq \subsetneq \supset \in \notin \emptyset \varnothing
: . - 表示排列使用
{n+1 \choose 2k}
或\binom{n+1}{2k}
, 。 - 箭头:
\to \rightarrow \leftarrow \Rightarrow \Leftarrow \mapsto
: 。 - 逻辑运算符:
\land \lor \lnot \forall \exists \top \bot \vdash \vDash
: 。 \star \ast \oplus \circ \bullet
: 。\approx \sim \cong \equiv \prec
: 。\infty \aleph_0
\nabla \partial
\Im \Re
: 。- 模运算
\pmode
, 如,a\equiv b\pmod n
: 。 \ldots与\cdots
,其区别是 dots 的位置不同,ldots 位置稍低,cdots 位置居中。 , 。- 一些希腊字母具有变体形式,如
\epsilon \varepsilon
: ,\phi \varphi
: 。
空间
通常 MathJax 通过内部策略自己管理公式内部的空间,因此 a…b 与 a…….b(.表示空格)都会显示为。可以通过在 ab 间加入,增加些许间隙,;增加较宽的间隙,\quad 与 \qquad
会增加更大的间隙,如a\qquad b
:
顶部符号
对于单字符,\hat x
:\widehat xy
: \hat x \quad \overline {xyz} \quad \vec a \quad \overrightarrow {x} \quad \dot x \quad \ddot x
:
特殊字符
特殊字符可以使用\转义为原来的含义。如\$
表示 $$$,\_
表示下划线
v1.4.14