介绍一下 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$ |
显示出来的效果是
$2_{X1}*1^1$
在公式上右键可以查看该公式的 MathML 的写法和 LaTeX 的写法
LaTeX 公式书写
上面说了一堆安装使用的方法,最重要的当然还是怎么进行公式的书写。
公式标记
使用$
来进行公式的表标记
$...$
表示行内公式$$...$$
表示整行公式
希腊字母表
名称 | 大写 | Tex | 小写 | Tex |
---|---|---|---|---|
alpha | $A$ | A | $\alpha$ | \alpha |
beta | $B$ | B | $\beta$ | \beta |
gamma | $\Gamma$ | \Gamma | $\gamma$ | \gamma |
delta | $\Delta$ | \Delta | $\delta$ | \delta |
epsilon | $E$ | E | $\epsilon$ | \epsilon |
zeta | $Z$ | Z | $\zeta$ | \zeta |
eta | $H$ | H | $\eta$ | \eta |
theta | $\Theta$ | \Theta | $\theta$ | \theta |
iota | $I$ | I | $\iota$ | \iota |
kappa | $K$ | K | $\kappa$ | \kappa |
lambda | $\Lambda$ | \Lambda | $\lambda$ | \lambda |
mu | $M$ | M | $\mu$ | \mu |
nu | $N$ | N | $\nu$ | \nu |
xi | $\Xi$ | \Xi | $\xi$ | \xi |
omicron | $O$ | O | $\omicron$ | \omicron |
pi | $\Pi$ | \Pi | $\pi$ | \pi |
rho | $P$ | P | $\rho$ | \rho |
sigma | $\Sigma$ | \Sigma | $\sigma$ | \sigma |
tau | $T$ | T | $\tau$ | \tau |
upsilon | $\Upsilon$ | \Upsilon | $\upsilon$ | \upsilon |
phi | $\Phi$ | \Phi | $\phi$ | \phi |
chi | $X$ | X | $\chi$ | \chi |
psi | $\Psi$ | \Psi | $\psi$ | \psi |
omega | $\Omega$ | \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
显示的效果就是$x_i^2$ - 使用大括号{}括起来表示一个单元,同时可以消除二义性
括号
- 小括号与方括号: 使用原始的
(),[]
即可,如(2+3)[4+4]
的显示效果就是$(2+3)[4+4]$ - 大括号: 由于大括号
{}
被用来分组,因此需要使用\{ 和 \}
表示大括号,也可以使用\lbrace
和\rbrace
来表示。如\{a*b\}
的显示效果为${ab}$,\lbrace a*b \rbrace
的效果也为$\lbrace ab \rbrace$。 - 尖括号:使用
\langle
和\rangle
表示左尖括号和右尖括号。如\langle x \rangle
将表示为$\langle x \rangle$。 - 上取整:使用
\lceil
和\rceil
表示。 如,\lceil x \rceil
:$\lceil x \rceil$。 - 下取整:使用
\lfloor
和\rfloor
表示。如,\lfloor x \rfloor
:$\lfloor x \rfloor$。 - 不可见括号:使用.表示。
- 需要注意的是,原始符号并不会随着公式大小缩放。如,
(\frac12)
:$(\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}$$ |
$$\lbrace \sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}\rbrace \tag{1.1}$$
$$\left\lbrace \sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}\right\rbrace \tag{1.2}$$
可以看到,公式 1.2 中的括号是经过缩放的。
求和与积分
- \sum 用来表示求和符号,其下标表示求和下限,上标表示上限。如,
\sum_1^n
:$\sum_1^n$。 - \int 用来表示积分符号,同样地,其上下标表示积分的上下限。如,
\int_1^\infty
:$\int_1^\infty$。 - 与此类似的符号还有,
\prod
:$\prod$,\bigcup
:$\bigcup$,\bigcap
:$\bigcap$,\iint
:$\iint$。
分式与根式
- 分式的表示。第一种,使用
\frac ab
,\frac
作用于其后的两个组 a,b,结果为$\frac ab$。如果你的分子或分母不是单个字符,请使用{..}
来分组。第二种,使用\over 来分隔一个组的前后两部分,如{a+1\over b+1}
:${a+1\over b+1}$。 - 根式使用
\sqrt
来表示。如,\sqrt[4] {\frac xy}
:$\sqrt[4] {\frac xy}$
字体
- 使用\mathbb 或\Bbb 显示黑板粗体字,此字体经常用来表示代表实数、整数、有理数、复数的大写字母。如,
$$\mathbb{CHNQRZ}$$
- 使用\mathbf 显示黑体字,如
$$\mathbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$$
$$\mathbf{abcdefghijklmnopqrstuvwxyz}$$
- 使用\mathtt 显示打印机字体,如
$$\mathtt{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$$
$$\mathtt{abcdefghijklmnopqrstuvwxyz}$$
- 使用\mathrm 显示罗马字体,如
$$\mathrm{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$$
$$\mathrm{abcdefghijklmnopqrstuvwxyz}$$
- 使用\mathscr 显示手写体,如
$$\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$$
- 使用\mathfrak 显示 Fraktur 字母(一种德国字体),
$$\mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$$
$$\mathfrak{abcdefghijklmnopqrstuvwxyz}$$
特殊函数与符号
- 常见的三角函数,求极限符号可直接使用+缩写即可。如
\sin x
表示为$\sin x$,\arctan
表示为$\arctan$,lim_{1\to\infty}
表示为$lim_{1\to\infty}$。 - 比较运算符:
\lt \gt \le \ge \neq
:$\lt \gt \le \ge \neq$。 - 可以在这些运算符前面加上
\not
,如\not\lt
:$\not\lt$。 \times \div \pm \mp
表示:$\times \div \pm \mp$,\cdot
表示居中的点$\cdot$,x \cdot y
: $x \cdot y$。- 集合关系与运算:
\cup \cap \setminus \subset \subseteq \subsetneq \supset \in \notin \emptyset \varnothing
:$\cup \cap \setminus \subset \subseteq \subsetneq \supset \in \notin \emptyset \varnothing$. - 表示排列使用
{n+1 \choose 2k}
或\binom{n+1}{2k}
,$\binom{n+1}{2k}$。 - 箭头:
\to \rightarrow \leftarrow \Rightarrow \Leftarrow \mapsto
: $\to \rightarrow \leftarrow \Rightarrow \Leftarrow \mapsto$。 - 逻辑运算符:
\land \lor \lnot \forall \exists \top \bot \vdash \vDash
:$\land \lor \lnot \forall \exists \top \bot \vdash \vDash$。 \star \ast \oplus \circ \bullet
:$\star \ast \oplus \circ \bullet$。\approx \sim \cong \equiv \prec
:$\approx \sim \cong \equiv \prec$。\infty \aleph_0
$\infty \aleph_0$\nabla \partial
$\nabla \partial$\Im \Re
: $\Im \Re$。- 模运算
\pmode
, 如,a\equiv b\pmod n
:$a\equiv b\pmod n$。 \ldots与\cdots
,其区别是 dots 的位置不同,ldots 位置稍低,cdots 位置居中。$a_1+a_2+\cdots+a_n$,$a_1, a_2, \ldots ,a_n$。- 一些希腊字母具有变体形式,如
\epsilon \varepsilon
: $\epsilon \varepsilon$,\phi \varphi
: $\phi \varphi$。
空间
通常 MathJax 通过内部策略自己管理公式内部的空间,因此 a…b 与 a…….b(.表示空格)都会显示为。可以通过在 ab 间加入,增加些许间隙,;增加较宽的间隙,\quad 与 \qquad
会增加更大的间隙,如a\qquad b
: $a\qquad b$。
顶部符号
对于单字符,\hat x
:$\hat x$,多字符可以使用\widehat xy
: $\widehat xy$.类似的还有\hat x \quad \overline {xyz} \quad \vec a \quad \overrightarrow {x} \quad \dot x \quad \ddot x
: $\hat x \quad \overline {xyz} \quad \vec a \quad \overrightarrow {x} \quad \dot x \quad \ddot x$。
特殊字符
特殊字符可以使用\转义为原来的含义。如\$
表示 $$$,\_
表示下划线 $_$。