MathJax基础教程与快速参考

MathJax是一个JavaScript显示引擎,用来在浏览器上显示数学公式。正如它的口号:Beautiful math in all browsers,MathJax提供优美的数学公式展现。

A JavaScript display engine for mathematics that works in all browsers

Stackexchange上有一篇关于MathJax的基础教程与快速参考的文章:MathJax basic tutorial and quick reference,本文根据这篇文章翻译整理而成。

查看公式

如果需要查看MathJax公式是如何编写的,在公式上点击右键,选择Show Math As(数学显示形式)、TeX Commands(TeX命令)即可。

公式编写的代码将会在新窗口弹出,弹出的公式不会包含MathJax的定界符$

行内与块状

MathJax的行内公式语法为使用一对$作为定界符;块状公式则的定界符为$$

For inline formulas, enclose the formula in $...$. For displayed formulas, use $$...$$.

示例:

爱因斯坦质能方程$E=mc^2$

自然数求和公式
$$ \sum_{i=1}^n i=n\cdot(n+1)/2 $$

希腊字母

对于小写字母,\alpha\beta,……,\omega:$\alpha, \beta, … \omega$。

对于大写字母,\Gamma\Delta,……,\Omega:$\Gamma, \Delta, …, \Omega$。

希腊字母MathJax表格:

名称 大写 MathJax 小写 MathJax
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

上标与下标

上标使用^,下标使用_。如x_i^2:$x_i^2$,\log_2 x:$\log_2 x$。

分组与界定

在上标、下标和其他操作中,操作对象仅对下一个“组”有效。这个“组”可以是一个单个符号,或者使用花括号{...}包裹起来的内容。

对于10的10次方这样的一个公式,如果使用10^10,将会得到$10^10$。对后面的10使用花括号包裹即可:10^{10},$10^{10}$。

对于连续上标或者下标的情形,同样需要使用花括号进行定界,x^5^6是一个错误的公式。

{x^y}^z:${x^y}^z$,x^{y^z}:$x^{y^z}$,注意区分两者的不同。

注意区分这两个公式:x_i^2,$x_i^2$ 和x_{i^2},$x_{i^2}$。

括号组

圆括号和方括号使用符号()[]即可:$(2+3)[4+4]$。

由于花括号{}被用来作为分组符号,故而使用\{\}来表示:$\{\}$。也可以使用\lbrace\rbrace来表示:$\lbrace\rbrace$。

尖括号<>使用\langle\rangle来表示:$\langle x \rangle$。

需要注意的是,括号组的符号在使用时不会根据内容进行缩放。如果需要自适应缩放,请使用\left\right

示例:

  • 公式(\frac{\sqrt x}{y^3})展示为$(\frac{\sqrt x}{y^3})$。
  • 带自适应效果时:$\left(\frac{\sqrt x}{y^3}\right)$

自适应效果除了上面提到的几组括号外,同样可以应用在| $|x|$、\vert $\vert x \vert$、\Vert $\Vert x \Vert$、向上取整\lceil\rceil $\lceil x \rceil$、向下取整\lfloor\rfloor $\lfloor x \rfloor$。

括号组可以只保留一边,在自适应情形下,另一边使用数点代替即可。示例:\left.\frac12\right\rbrace,$\left.\frac12\right\rbrace$。

求和与积分

使用\sum表示求和$\sum_1^n$,\int表示积分$\int_1^\infty$。上标为上限,下标为下限。如果上限与下限包含多个符号,请注意使用花括号进行界定。

同样的操作符还有:\prod $\prod$, \bigcup $\bigcup$, \bigcap $\bigcap$, \iint $\iint$。

注意:双重积分与三重积分并非\int\int$\int\int$和\int\int\int$\int\int\int$,而是\iint$\iint$和\iiint$\iiint$。

分数

有两个方式进行分数的表示。

第一种为\frac,如\frac xy $\frac xy$。分子和分母分别跟在后面即可,同样注意花括号的使用。

第二种为\over,如{a+1\over b+1} ${a+1\over b+1}$。分子和分母位于两边。通常在公式很复杂采用。

字体

  • 使用\mathbb或者\Bbb来表示黑板粗体blackboard bold
    $\mathbb{CHNQRZ}$.
  • 使用\mathbf表示黑体
    $\mathbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathbf{abcdefghijklmnopqrstuvwxyz}$.
  • 使用\mathtt表示打印机字体
    $\mathtt{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathtt{abcdefghijklmnopqrstuvwxyz}$.
  • 使用\mathrm表示罗马字体
    $\mathrm{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathrm{abcdefghijklmnopqrstuvwxyz}$.
  • 使用\mathsf表示无衬线字体
    $\mathsf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathsf{abcdefghijklmnopqrstuvwxyz}$.
  • 使用\mathcal表示书法体
    $\mathcal{ ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
  • 使用\mathscr表示手写体
    $\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
  • 使用\mathfrak表示Fraktur字体(一款德文黑体字):
    $\mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \mathfrak{abcdefghijklmnopqrstuvwxyz}$.

根号

使用\sqrt表示根号。如\sqrt2,$\sqrt2$。

多次方根在后面使用[]指定即可。如\sqrt[n^2]{\frac xy},$\sqrt[3]{\frac xy}$。

函数

对于特殊函数,如sinlimmaxln等,会自动识别,将以常规罗马字体代替斜体进行显示。如正弦函数表示为:\sin x$\sin x$,并非sin x$sin x$。

极限函数下标跟在后面即可:\lim: \lim_{x\to 0} $$\lim_{x\to 0}$$

特殊符号

MathJax支持大量特殊符号,这里罗列一部分,更多请参考:this shorter listingthis exhaustive listing

  • 比较判断符,\lt \gt \le \ge \neq $\lt\, \gt\, \le\, \ge\, \neq$.
    你可以在这些操作符前加入\not表示相反的意思: \not\lt $\not\lt$,然而并不好看
  • 四则运算符,\times \div \pm \mp $\times\, \div\, \pm\, \mp$
    +-直接使用即可
    \cdot表示一个居中的乘点: $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} ${n+1 \choose 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 \simeq \cong \equiv \prec $\approx\, \sim \, \simeq\, \cong\, \equiv\, \prec$.
  • 无穷与阿列夫零,\infty \aleph_0 $\infty\, \aleph_0$
  • 劈形运算符与取部分运算符,\nabla \partial $\nabla\, \partial$
  • 复数的虚部与实部,\Im \Re $\Im\, \Re$
  • 模运算符,\pmoda\equiv b\pmod n $a\equiv b\pmod n$.
  • 多点符,\ldots的点的位置偏下:$a_1, a_2, \ldots ,a_n$;\cdots点的位置居中:$a_1+a_2+\cdots+a_n$
  • 一些具有变体的希腊字母符号: \epsilon \varepsilon $\epsilon\, \varepsilon$, \phi \varphi $\phi\, \varphi$等等
  • 字母l的手写体\ell $\ell$

Detexify上你可以画出符号,Detexify会自动识别并给出相似的符号及其代码。但并不能保证该符号在MathJax中可用,你可以参考MathJax的官方文档list of currently supported $\LaTeX$ commands以确定该符号是否可用。也可以参考Dr. Carol JVF Burns’s编写的页面:$\TeX$ Commands Available in MathJax

空格

通常情况下MathJax会忽略常规的空格。

空格的表述方式:

  • \,表示一个细微的空格$a\,b$
  • \;稍大一点的空格$a\;b$
  • \quad\qquad表示更大的空格$a\quad b$, $a\qquad b$

\text{...}表示的文本中,空格将会保留。你可以在公式中嵌入\text{...}

顶部标记

\hat表示这样一个简单的符号:$\hat x$,\widehat表示一个长公式$\widehat{xy}$。

同样的有\bar $\bar x$和\overline $\overline{xyz}$,以及\vec $\vec x$ 和\overrightarrow $\overrightarrow{xy}$、\overleftrightarrow $\overleftrightarrow{xy}$

使用\dot\ddot可以将圆点放在上面,如$\frac d{dx}x\dot x = \dot x^2 + x\ddot x$。

转义与换行

如果在公式中需要直接使用特殊符号,使用\进行转义即可。如\$$\$$、\_$\_$。

如果要使用\符号本身,由于\\表示的是换行,故而使用\backslash $\backslash$。

参考资料