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}$。
函数
对于特殊函数,如sin、lim、max、ln等,会自动识别,将以常规罗马字体代替斜体进行显示。如正弦函数表示为:\sin x$\sin x$,并非sin x$sin x$。
极限函数下标跟在后面即可:\lim: \lim_{x\to 0} $$\lim_{x\to 0}$$
特殊符号
MathJax支持大量特殊符号,这里罗列一部分,更多请参考:this shorter listing和this 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$ - 模运算符,
\pmod,a\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$。