原文链接:http://mlworks.cn/posts/introduction-to-mathjax-and-latex-expression/#mjx-eqn-*
MathJax简介
MathJax是一款运行在浏览器中的开源的数学符号渲染引擎,使用MathJax可以方便的在浏览器中显示数学公式,不需要使用图片。目前,MathJax可以解析Latex、MathML和ASCIIMathML的标记语言。MathJax项目于2009年开始,发起人有American Mathematical Society, Design Science等,还有众多的支持者,个人感觉MathJax会成为今后数学符号渲染引擎中的主流,也许现在已经是了。本文接下来会讲述MathJax的基础用法,但不涉及MathJax的安装及配置。此外,推荐使用StackEdit学习MathJax的语法,它支持Markdown和MathJax,本文使用此编辑器撰写。
基础
公式标记与查看公式
使用MathJax时,需要用一些适当的标记告诉MathJax某段文本是公式代码。此外,MathJax中的公式排版有两种方式,inline和displayed。inline表示公式嵌入到文本段中,displayed表示公式独自成为一个段落。例如,
是一个displayed公式。
在MathJax中,默认的displayed公式分隔符有$$...$$
和\[…\]
,而默认的inline公式分隔符为 (…)
,当然这些都是可以自定义的,具体配置请参考文档。下文中,使用$$…$$
作为displayed分隔符,$…$
作为inline分隔符。
此外,可以在渲染完成的公式上方右键点击,唤出右键菜单。在菜单中提供了查看公式代码、设置显示效果和渲染模式的选项。
希腊字母
请参见下表:
名称 | 大写 | 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 |
上标与下标
上标和下标分别使用^与_,例如x_i^2:
。
括号
- 小括号与方括号:使用原始的( ),[ ]即可,如(2+3)[4+4]:
(2+3)[4+4]
- 。
- 不可见括号:使用.表示。
需要注意的是,原始符号并不会随着公式大小缩放。如,(\frac12):
可以看到,公式1.2中的括号是经过缩放的。
求和与积分
\sum用来表示求和符号,其下标表示求和下限,上标表示上限。如,\sum_1^n:
。
\int用来表示积分符号,同样地,其上下标表示积分的上下限。如,\int_1^\infty:
。
与此类似的符号还有,\prod:
。
分式与根式
分式的表示。第一种,使用\frac ab,\frac作用于其后的两个组a,b,结果为
。
根式使用\sqrt来表示。如,\sqrt[4]{\frac xy} :
字体
- 使用\mathbb或\Bbb显示黑板粗体字,此字体经常用来表示代表实数、整数、有理数、复数的大写字母。如,
CHNQRZ
- 。
特殊函数与符号
- 常见的三角函数,求极限符号可直接使用+缩写即可。如
sinx
- 。
使用Detexify,你可以在网页上画出符号,Detexify会给出相似的符号及其代码。这是一个方便的功能,但是不能保证它给出的符号可以在MathJax中使用,你可以参考supported-latex-commands确定MathJax是否支持此符号。
空间
通常MathJax通过内部策略自己管理公式内部的空间,因此a…b与a…….b(.表示空格)都会显示为
。
顶部符号
对于单字符,\hat:
。
结束
基础部分就是这些。需要注意的是一些MathJax使用的特殊字符,可以使用\转义为原来的含义。如\$
表示‘$‘,\_
表示下划线。
表格
使用$$\begin{array}{列样式}…\end{array}$$
这样的形式来创建表格,列样式可以是clr表示居中,左,右对齐,还可以使用|表示一条竖线。表格中 各行使用\\分隔,各列使用&分隔。使用\hline在本行前加入一条直线。例如,
$$
\begin{array}{c|lcr}
n & \text{Left} & \text{Center} & \text{Right} \\
\hline
1 & 0.24 & 1 & 125 \\
2 & -1 & 189 & -8 \\
3 & -20 & 2000 & 1+10i \\
\end{array}
$$
结果:
一个复杂的例子如下:
矩阵
基本用法
使用$$\begin{matrix}…\end{matrix}$$
这样的形式来表示矩阵,在\begin与\end之间加入矩阵中的元素即可。矩阵的行之间使用\\分隔,列之间使用&分隔。
例如
$$
\begin{matrix}
1 & x & x^2 \\
1 & y & y^2 \\
1 & z & z^2 \\
\end{matrix}
$$
结果:
加括号
如果要对矩阵加括号,可以像上文中提到的一样,使用\left与\right配合表示括号符号。也可以使用特殊的matrix。即替换\begin{matrix}…\end{matrix}
中的matrix为pmatrix,bmatrix,Bmatrix,vmatrix,Vmatrix.
省略元素
可以使用\cdots
来省略矩阵中的元素,如:
增广矩阵
增广矩阵需要使用前面的array来实现,如
$$ \left[
\begin{array}{cc|c}
1&2&3\\
4&5&6
\end{array}
\right]
$$
结果:
对齐的公式
有时候可能需要一系列的公式中等号对齐,如:
这需要使用形如\begin{align}…\end{align}
的格式,其中需要使用&来指示需要对齐的位置。请使用右键查看上述公式的代码。
分类表达式
定义函数的时候经常需要分情况给出表达式,可使用\begin{cases}…\end{cases}
。其中,使用\来分类,使用&指示需要对齐的位置。如:
上述公式的括号也可以移动到右侧,不过需要使用array来实现,如下:
最后,如果想分类之间的垂直间隔变大,可以使用\[2ex]代替\来分隔不同的情况。(3ex,4ex也可以用,1ex相当于原始距离)。
数学符号查询
一般而言,从一个巨大的符号表中查询所需要的特定符号是一件令人沮丧的事情。在此向大家介绍一个
手写符号识别系统,如下图:
尽情享用吧~ Detexify²。
空间问题
在使用Latex公式时,有一些不会影响公式正确性,但却会使其看上去很槽糕的问题。
不要在再指数或者积分中使用 \frac
在指数或者积分表达式中使用\frac会使表达式看起来不清晰,因此在专业的数学排版中很少被使用。应该使用一个水平的/来代替,效果如下:
使用 \mid 代替 | 作为分隔符
符号|作为分隔符时有排版空间大小的问题,应该使用\mid代替。效果如下:
多重积分
对于多重积分,不要使用\int\int此类的表达,应该使用\iint \iiint等特殊形式。效果如下:
此外,在微分前应该使用\,来增加些许空间,否则
会将微分紧凑地排列在一起。如下:
连分数
书写连分数表达式时,请使用\cfrac代替\frac或者\over两者效果对比如下:
方程组
使用\begin{array} … \end{array}
与\left{…\right.
配合,表示方程组,如:
同时,还可以使用\begin{cases}…\end{cases}
表达同样的方程组,如:
对齐方程组中的 = 号,可以使用 \being{aligned} .. \end{aligned}
,如:
如果要对齐 = 号 和项,可以使用\being{array}{列样式} .. \end{array}
,如:
颜色
命名颜色是浏览器相关的,如果浏览器没有定义相关的颜色名称,则相关文本将被渲染为黑色。以下颜色是HTML4与CSS2标准中定义的一些颜色,其应该被大多数浏览器定义了。
此外,HTML5与CSS3也定义了一些颜色名称,参见。同时,颜色也可以使用#rgb的形式来表示,r、g、b分别表示代表颜色值得16进制数,如:
公式标记与引用
使用\tag{yourtag}来标记公式,如果想在之后引用该公式,则还需要加上\label{yourlabel}在\tag之后,如:
\eqref{rlabel}
,如:
可以看到,通过超链接可以跳转到被引用公式位置。
Written with StackEdit.