[转]Mathjax, LaTex与Ghost

声明!!!!

此文章的代码部分在简书中皆不能正常显示, 请去我的个人网站观看效果, 如果访问不了, 请翻墙试试!

本文为转载文章

原文为:

  1. 在Ghost Blog上尝试输出数学公式
  2. Mathjax与LaTex公式简介(貌似这个博主没域名费, 现在404)

配置 Mathjax

首先,我们需要在源码中引入js文件。在当前显示的主题文件上添加几行代码就可以了。所以可以通过一下两种方式使用MathJax:

  • ./content/themes/phantom/default.hbs添加引入,等于在全局使用MathJax;当我们只需要在每个博文显示时就
  • ./content/themes/phantom/post.hbs文件中添加引入。由于我是全局引用,在default.hbs内添加如下代码即可。
{{! Mathjax 数学公式 }}
<link href="http://cdn.bootcss.com/mathjax/2.5.3/MathJax.js?config=TeX-AMS-MML_HTMLorMML" rel="stylesheet">

config=TeX-AMS-MML_HTMLorMML为扩展,这个扩展为添加AMS数学环境以及出现错误和未定义宏的显示方式。

语法

基础

公式标记与查看公式

使用MathJax时,需要用一些适当的标记告诉MathJax某段文本是公式代码。此外,MathJax中的公式排版有两种方式,inline和displayed。inline表示公式嵌入到文本段中,displayed表示公式独自成为一个段落。例如,\(f(x)=3\times x\)是一个inline的公式,而下面\[f(x)=3\times x\]是一个displayed公式。

在MathJax中,默认的displayed公式分隔符有$$...$$\[...\],而默认的inline公式分隔符为 \(...\),当然这些都是可以自定义的,具体配置请参考文档。下文中,使用默认分隔符。

此外,可以在渲染完成的公式上方右键点击,唤出右键菜单。在菜单中提供了查看公式代码、设置显示效果和渲染模式的选项。

希腊字母

参见下表:
<style type="text/css">
.tg {border-collapse:collapse;border-spacing:0;border-color:#ccc;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:1px 19px;border-style:solid;border-width:0px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#fff;border-top-width:1px;border-bottom-width:1px;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:1px 19px;border-style:solid;border-width:0px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#f0f0f0;border-top-width:1px;border-bottom-width:1px;}
.tg .tg-baqh{text-align:center;vertical-align:top}
.tg .tg-dzk6{background-color:#f9f9f9;text-align:center;vertical-align:top}
</style>
<table class="tg">
<tr>
<th class="tg-baqh">名称</th>
<th class="tg-baqh">大写</th>
<th class="tg-baqh">Tex</th>
<th class="tg-baqh">小写</th>
<th class="tg-baqh">Tex</th>
</tr>
<tr>
<td class="tg-baqh">alpha</td>
<td class="tg-dzk6">(A)</td>
<td class="tg-baqh">A</td>
<td class="tg-dzk6">(alpha)</td>
<td class="tg-baqh">\alpha</td>
</tr>
<tr>
<td class="tg-baqh">beta</td>
<td class="tg-dzk6">(B)</td>
<td class="tg-baqh">B</td>
<td class="tg-dzk6">(\beta)</td>
<td class="tg-baqh">\beta</td>
</tr>
<tr>
<td class="tg-baqh">gamma</td>
<td class="tg-dzk6">(Gamma)</td>
<td class="tg-baqh">\Gamma</td>
<td class="tg-dzk6">(\gamma)</td>
<td class="tg-baqh">\gamma</td>
</tr>
<tr>
<td class="tg-baqh">delta</td>
<td class="tg-dzk6">(\Delta)</td>
<td class="tg-baqh">\Delta</td>
<td class="tg-dzk6">(\delta)</td>
<td class="tg-baqh">\delta</td>
</tr>
<tr>
<td class="tg-baqh">epsilon</td>
<td class="tg-dzk6">(E)</td>
<td class="tg-baqh">E</td>
<td class="tg-dzk6">(\epsilon)</td>
<td class="tg-baqh">\epsilon</td>
</tr>
<tr>
<td class="tg-baqh">zeta</td>
<td class="tg-dzk6">(Z)</td>
<td class="tg-baqh">Z</td>
<td class="tg-dzk6">(\zeta)</td>
<td class="tg-baqh">\zeta</td>
</tr>
<tr>
<td class="tg-baqh">eta</td>
<td class="tg-dzk6">(H)</td>
<td class="tg-baqh">H</td>
<td class="tg-dzk6">(\eta)</td>
<td class="tg-baqh">\eta</td>
</tr>
<tr>
<td class="tg-baqh">theta</td>
<td class="tg-dzk6">(\Theta)</td>
<td class="tg-baqh">\Theta</td>
<td class="tg-dzk6">(\theta)</td>
<td class="tg-baqh">\theta</td>
</tr>
<tr>
<td class="tg-baqh">iota</td>
<td class="tg-dzk6">(I)</td>
<td class="tg-baqh">I</td>
<td class="tg-dzk6">(\iota)</td>
<td class="tg-baqh">\iota</td>
</tr>
<tr>
<td class="tg-baqh">kappa</td>
<td class="tg-dzk6">(K)</td>
<td class="tg-baqh">K</td>
<td class="tg-dzk6">(\kappa)</td>
<td class="tg-baqh">\kappa</td>
</tr>
<tr>
<td class="tg-baqh">lambda</td>
<td class="tg-dzk6">(\Lambda)</td>
<td class="tg-baqh">\Lambda</td>
<td class="tg-dzk6">(\lambda)</td>
<td class="tg-baqh">\lambda</td>
</tr>
<tr>
<td class="tg-baqh">mu</td>
<td class="tg-dzk6">(M)</td>
<td class="tg-baqh">M</td>
<td class="tg-dzk6">(\mu)</td>
<td class="tg-baqh">\mu</td>
</tr>
<tr>
<td class="tg-baqh">nu</td>
<td class="tg-dzk6">(N)</td>
<td class="tg-baqh">N</td>
<td class="tg-dzk6">(\nu)</td>
<td class="tg-baqh">\nu</td>
</tr>
<tr>
<td class="tg-baqh">xi</td>
<td class="tg-dzk6">(\Xi)</td>
<td class="tg-baqh">\Xi</td>
<td class="tg-dzk6">(\xi)</td>
<td class="tg-baqh">\xi</td>
</tr>
<tr>
<td class="tg-baqh">omicron</td>
<td class="tg-dzk6">(O)</td>
<td class="tg-baqh">O</td>
<td class="tg-dzk6">(\omega)</td>
<td class="tg-baqh">\omicron</td>
</tr>
<tr>
<td class="tg-baqh">pi</td>
<td class="tg-dzk6">(\Pi)</td>
<td class="tg-baqh">\Pi</td>
<td class="tg-dzk6">(\pi)</td>
<td class="tg-baqh">\pi</td>
</tr>
<tr>
<td class="tg-baqh">rho</td>
<td class="tg-dzk6">(P)</td>
<td class="tg-baqh">P</td>
<td class="tg-dzk6">(\rho)</td>
<td class="tg-baqh">\rho</td>
</tr>
<tr>
<td class="tg-baqh">sigma</td>
<td class="tg-dzk6">(\Sigma)</td>
<td class="tg-baqh">\Sigma</td>
<td class="tg-dzk6">(\sigma)</td>
<td class="tg-baqh">\sigma</td>
</tr>
<tr>
<td class="tg-baqh">tau</td>
<td class="tg-dzk6">(T)</td>
<td class="tg-baqh">T</td>
<td class="tg-dzk6">(\tau)</td>
<td class="tg-baqh">\tau</td>
</tr>
<tr>
<td class="tg-baqh">upsilon</td>
<td class="tg-dzk6">(\Upsilon)</td>
<td class="tg-baqh">\Upsilon</td>
<td class="tg-dzk6">(\upsilon)</td>
<td class="tg-baqh">\upsilon</td>
</tr>
<tr>
<td class="tg-baqh">phi</td>
<td class="tg-dzk6">(\Phi)</td>
<td class="tg-baqh">\Phi</td>
<td class="tg-dzk6">(\phi)</td>
<td class="tg-baqh">\phi</td>
</tr>
<tr>
<td class="tg-baqh">chi</td>
<td class="tg-dzk6">(X)</td>
<td class="tg-baqh">X</td>
<td class="tg-dzk6">(\chi)</td>
<td class="tg-baqh">\chi</td>
</tr>
<tr>
<td class="tg-baqh">psi</td>
<td class="tg-dzk6">(\Psi)</td>
<td class="tg-baqh">\Psi</td>
<td class="tg-dzk6">(\psi)</td>
<td class="tg-baqh">\psi</td>
</tr>
<tr>
<td class="tg-baqh">omega</td>
<td class="tg-dzk6">(\Omega)</td>
<td class="tg-baqh">\Omega</td>
<td class="tg-dzk6">(\omega)</td>
<td class="tg-baqh">\omega</td>
</tr>
</table>

上标与下标

上标和下标分别使用与_,例如x_i2:\(x_i2\)。默认情况下,上下标符号仅仅对下一个组起作用。一个组即单个字符或者使用{..}包裹起来的内容。也就是说,如果使用1010,会得到\(1010\),而10{10}才是\(10{10}\)。同时,大括号还能消除二义性,如x56将得到一个错误,必须使用大括号来界定的结合性,如{x5}6:\({x5}6\)或者 x{56}:\(x{56}\)。

括号

  1. 小括号与方括号:使用原始的( ),[ ]即可,如(2+3)[4+4]:\((2+3)[4+4]\)。
  2. 大括号:时由于大括号{}被用来分组,因此需要使用{和}表示大括号,也可以使用\lbrace 和\rbrace来表示。如\{a*b\}: \({a*b}\),\lbrace a*b \rbrace:\(\lbrace a*b \rbrace\)。
  3. 尖括号:用\langle和\rangle表示左右尖括号, 如\langle x \rangle: \(\langle x \rangle\)。
  4. 上取整:用\lceil和\rceil表示, 如\lceil x \rceil:\(\lceil x \rceil\)。
  5. 下取整:用\lfloor和\rfloor表示, 如\lfloor x \rfloor:\(\lfloor x \rfloor\)。
  6. 不可见括号用.表示

需要注意的是原始的扩考不会跟随公式的大小缩放, 可以使用\left(...\right)调整括号大小, 如,
$$\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_1n:\(\sum_1n\)。

\int 用来表示积分符号,同样的其上下标表示积分的上下限。如\int_1\infty:\(\int_1\infty\)。

以此类推的符号还有, \prod: \(\prod\),\bigcup: \(\bigcup\),\bigcap:\(\bigcap\),\iint:\(\iint\)。

分式与根式

分式的表示

  1. 使用\frac ab, \frac作用于其后的两个组a,b,结果为\(\frac ab\)。如果你的分子或分母不是单个字符,请使用{}来进行分组。
  2. 使用\over来分隔一个组的前后两部分,如{a+1 \over b+1}: \({a+1 \over b+1}\)。

根式用\sqrt来表示。如\sqrt[4]{\frac xy}: \(\sqrt[4]{\frac xy}\)。

字体

  1. 使用\mathbb或\Bbb显示黑板粗体字,此字体经常用来表示代表实数、整数、有理数、复数的大写字母。如\(\mathbb{CHNQRZ}\)
  2. 使用\mathbf显示黑体字,如\(\mathbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}\) \(\mathbf{abcdefghijklmnopqrstuvwxyz}\)
  3. 使用\mathtt显示打印机字体,如\(\mathtt{ABCDEFGHIJKLMNOPQRSTUVWXYZ}\) \(\mathtt{abcdefghijklmnopqrstuvwxyz}\)
  4. 使用\mathrm显示罗马字体,如\(\mathrm{ABCDEFGHIJKLMNOPQRSTUVWXYZ}\) \(\mathrm{abcdefghijklmnopqrstuvwxyz}\)
  5. 使用\mathscr显示手写体,如\(\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}\) \(\mathscr{abcdefghijklmnopqrstuvwxyz}\)
  6. 使用\mathfrak显示Fraktur字母(一种德国字体),如\(\mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ}\) \(\mathfrak{abcdefghijklmnopqrstuvwxyz}\)

特殊函数与符号

  1. 常见的三角函数,求极限符号可直接用缩写即可,如\(\sin x\),\(\arctan x\),\(\lim_{1\to\infty}\)
  2. 比较运算符:\lt \gt \le \ge \neq: \(\lt \gt \le \ge \neq\)。可以在这些运算符前面加上\not,如\not\lt: \(\not\lt\)
  3. \times \div \pm \mp 表示: \(\times \div \pm \mp\),\cdot表示居中的点,如x\cdot y: \(x\cdot y\)
  4. 集合关系与运算:\cup \cap \setminus \subset \subseteq \subsetneq \supset \in \notin \emptyset \varnothing: \(\cup \cap \setminus \subset \subseteq \subsetneq \supset \in \notin \emptyset \varnothing\)
  5. 表示排列使用{n+1 \choose 2k} 或 {\binom{n+1}{2k}}, \({n+1 \choose 2k}\)
  6. 箭头: \to \rightarrow \leftarrow \Rightarrow \Leftarrow \mapsto: \(\to \rightarrow \leftarrow \Rightarrow \Leftarrow \mapsto\)
  7. 逻辑运算符:\land \lor \lnot \forall \exists \top \bot \vdash \vDash:\(\land \lor \lnot \forall \exists \top \bot \vdash \vDash\)
  8. \star \ast \oplus \circ \bullet:\(\star \ast \oplus \circ \bullet\)
  9. \approx \sim \cong \equiv \prec:\(\approx \sim \cong \equiv \prec\)
  10. \infty \aleph_0 \nabla \partial \lm \Re:\(\infty \aleph_0 \nabla \partial \Im \Re\)
  11. 模运算 \pmod 如a\equiv b\pmod n:\(a\equiv b\pmod n\)
  12. 省略符,\ldots与\cdots,其区别是dots的位置不同,ldots位置稍低,cdots位置居中,如\(a_1 + a_2 + \ldots + a_n\),\(a_1 + a_2 + \cdots + a_n\)
  13. 一些希腊字母具有变体形式,如 \epsilon \varepsilon:\(\epsilon \varepsilon\),\phi \varphi:\(\phi \varphi\)

使用Detexify,你可以下网页上画出符号,Detexify会给出相似的符号及其代码,这是一个很方便的功能,但是不能保证它给出的符号都已在MathJax中使用,你可以参考supported-latex-commands确定MathJax是否支持此符号。

空间

通常MathJaz通过内部策略自己管理公式的内部空间,因此{a}b与{a b}都会显示为ab。通过在ab间加入\,增加些许间隙,; 增加较宽间隙,\quad与\qquad会增加更大的间隙,如\(a\qquad b\)

顶部符号

对于单字符,\hat:\(\hat{x}\),多字符可以使用\widehat:\(\widehat{xy}\),类似的还有\hat \overline \vec \overrightarrow \dot \ddot:\(\hat{x} \; \overline{xyz} \; \vec{a} \; \overrightarrow{x} \; \dot{x} \; \ddot{x}\)

结束

基础部分就是这些。需要注意的是一些MathJax使用的特殊字符\转义为原来的含义。如:

  1. 在markdown中使用分隔符要记得使用转义符号,比如\[...\]要变成\\[...\\]
  2. \\ 表示\,\_表示_,\$表示$等等

当你写完但是看不到效果的时候,看一下这些特殊符号有没有用\转义

表格

使用 $$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{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}
$$

一个复杂的例子:

$$
% outer vertical array of arrays
\begin{array}{c}
% inner horizontal array of arrays
\begin{array}{cc}
% inner array of minimum values
\begin{array}{c|cccc}
\text{min} & 0 & 1 & 2 & 3\\
\hline
0 & 0 & 0 & 0 & 0\\
1 & 0 & 1 & 1 & 1\\
2 & 0 & 1 & 2 & 2\\
3 & 0 & 1 & 2 & 3
\end{array}
&
% inner array of maximum values
\begin{array}{c|cccc}
\text{max}&0&1&2&3\\
\hline
0 & 0 & 1 & 2 & 3\\
1 & 1 & 1 & 2 & 3\\
2 & 2 & 2 & 2 & 3\\
3 & 3 & 3 & 3 & 3
\end{array}
\end{array}
\\
% inner array of delta values
\begin{array}{c|cccc}
\Delta&0&1&2&3\\
\hline
0 & 0 & 1 & 2 & 3\\
1 & 1 & 0 & 1 & 2\\
2 & 2 & 1 & 0 & 1\\
3 & 3 & 2 & 1 & 0
\end{array}
\end{array}

结果:

$$
% outer vertical array of arrays
\begin{array}{c}
% inner horizontal array of arrays
\begin{array}{cc}
% inner array of minimum values
\begin{array}{c|cccc}
\text{min} & 0 & 1 & 2 & 3\\
\hline
0 & 0 & 0 & 0 & 0\\
1 & 0 & 1 & 1 & 1\\
2 & 0 & 1 & 2 & 2\\
3 & 0 & 1 & 2 & 3
\end{array}
&
% inner array of maximum values
\begin{array}{c|cccc}
\text{max}&0&1&2&3\\
\hline
0 & 0 & 1 & 2 & 3\\
1 & 1 & 1 & 2 & 3\\
2 & 2 & 2 & 2 & 3\\
3 & 3 & 3 & 3 & 3
\end{array}
\end{array}
\\
% inner array of delta values
\begin{array}{c|cccc}
\Delta&0&1&2&3\\
\hline
0 & 0 & 1 & 2 & 3\\
1 & 1 & 0 & 1 & 2\\
2 & 2 & 1 & 0 & 1\\
3 & 3 & 2 & 1 & 0
\end{array}
\end{array}
$$

矩阵

基本用法

使用$$\begin{matrix}... \end{matrix}$$这样的形式来表示矩阵,在\bigen与\end之间加入矩阵中的元素即可。矩阵的行之间用\分隔,列之间用&分隔。
如:

$$
        \begin{matrix}
        1 & x & x^2 \\
        1 & y & y^2 \\
        1 & z & z^2 \\
        \end{matrix}
$$

结果:

$$
\begin{matrix}
1 & x & x^2 \\
1 & y & y^2 \\
1 & z & z^2 \\
\end{matrix}
$$

加括号

如果要对矩阵加括号,可以向上文中提到的一样,使用\left与\right配合表示括号符号。也可以使用特殊的matrix。替换matrix为pmatrix,bmatrix,Bmatrix,vmatrix,Vmatrix,如pmatrix:\(\begin{pmatrix}1&2\\3&4\\ \end{pmatrix}\) bmatrix:\(\begin{bmatrix}1&2\\3&4
\\ \end{bmatrix}\) Bmatrix:\(\begin{Bmatrix}1&2\\3&4\\ \end{Bmatrix}\) vmatrix:\(\begin{vmatrix}1&2\\3&4\ \end{vmatrix}\) Vmatrix:\(\begin{Vmatrix}1&2\\3&4\\ \end{Vmatrix}\)

省略元素

可以使用\cdots \(\cdots\) \ddots \(\ddots\) \vdots \(\vdots\)来省略矩阵中的元素,如:
$$
\begin{pmatrix}
1 & a_1 & a_1^2 & \cdots & a_1^n \\
1 & a_1 & a_1^2 & \cdots & a_1^n \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
1 & a_m & a_m^2 & \cdots & a_m^n \\
\end{pmatrix}
$$

增广矩阵

增广矩阵需要利用前面的array来实现,如:

$$
\left[
  \begin{array}{cc|c}
    1&2&3 \\\\
    4&5&6
  \end{array}
\right]
$$

结果:

$$
\left[
\begin{array}{cc|c}
1&2&3 \\
4&5&6
\end{array}
\right]
$$

对齐的公式

有时候可能需要一些列的公式中等号对齐,如:
$$
\begin{align}
\sqrt{37} & = \sqrt{{73^2 - 1} \over {12^2}} \\
& = \sqrt{{73^2 \over 12^2} \cdot {{73^2 - 1} \over 73^2}}\\
& = \sqrt{73^2 \over 12^2} \sqrt{{73^2 - 1} \over 73^2}\\
& = {73 \over 12} \sqrt{1 - {1 \over 73^2}} \\
& \approx {73 \over 12} \left({ 1 - {1 \over {2 \cdot 73^2}} }\right)
\end{align}
$$
这需要使用形式如\begin{align}...\end{align}的格式,其中需要使用&来指示需要对齐的位置。上边的格式代码为:

$$
\begin{align}
\sqrt{37} & = \sqrt{{73^2 - 1} \over {12^2}} \\
             & = \sqrt{{73^2 \over 12^2} \cdot {{73^2 - 1} \over 73^2}}\\
             & = \sqrt{73^2 \over 12^2} \sqrt{{73^2 - 1} \over 73^2}\\
             & = {73 \over 12} \sqrt{1 - {1 \over 73^2}} \\
             & \approx {73 \over 12} \left({ 1 - {1 \over {2 \cdot 73^2}} }\right)
\end{align}
$$

分类表达式

定义函数的时候经常需要分情况给出表达式,可使用\begin{cases} ... \end{cases}。其中,使用\来分类,使用,使用&指示需要对齐的位置,如:

$$
f(n) = 
\begin{cases}
n \over 2, & \text{if n is even} \\\\
3n+1,      & \text{if n is odd}
\end{cases}
$$

$$
f(n) =
\begin{cases}
n \over 2, & \text{if \(n\) is even} \\
3n+1, & \text{if \(n\) is odd} \\
\end{cases}
$$
上述公式的括号也可以移动到右侧,不过要使用array来实现,如下:

$$
\left.
\begin{array}{l}
\text{if \\(n\\) is even:} & n/2\\\\
\text{if \\(n\\) is odd:} & 3n+1
\end{array}
\right\}
=f{n}
$$

$$
\left.
\begin{array}{l}
\text{if \(n\) is even:} & n/2\\
\text{if \(n\) is odd:} & 3n+1
\end{array}
\right\}
=f(n)
$$
最后,如果想风雷之间的垂直间隔变大,可以使用[2ex] 代替 \ 来分隔不同的情况。(3ex,4ex也可以用,1ex相当于原始的距离)。

数学符号查询

一般而言,从一个巨大的符号表中查询所需要的特定符号是一件令人沮丧的事情。在此向大家介绍一个LaTex手写符号识别系统,如下图:


尽情享用吧:Detexify

空间问题

在使用Latex公式时,有一些不会影响公式正确性,但却会使其看上去很糟糕的问题。

不要再在指数或者积分中使用\frac

在指数或者积分表达式中使用\frac会使表达式看起来不清晰,因此在专业的数学排版中很少被使用。应该使用一个水平的/来代替,效果如下:
$$
\begin{array}{c}
Bad & Better \\
\hline
e^{i{\pi \over 2}} \quad e^{{i\pi} \over 2} & e^{i\pi / 2} \\
\int_{-{\pi \over 2}}^{\pi \over 2} \sin x\mathrm{d}x & \int_{-\pi/2}^{\pi/2}\sin x\mathrm{d}x
\end{array}
$$

使用\mid 代替 | 作为分隔符

符号|作为分隔符时有排版空间大小的问题,应该使用\mid代替。如下:
$$
\begin{array}{c}
Bad & Better \\
\hline
\{ x|x^2 \in \mathbb{z} \} & \{x \mid x^2 \in \mathbb{z} \}
\end{array}
$$

多重积分

对于多重积分,不要使用\int\int此类的表达,应使用\iint,\iiint等特殊表达式。效果如下:
$$
\begin{array}{c}
Bad & Better \\
\hline
\int\int_s f(x)\mathrm{d}y\mathrm{d}x & \iint_sf(x)\mathrm{d}x\mathrm{d}y\\
\int\int\int_v f(x)\mathrm{d}z\mathrm{d}y\mathrm{d}x & \iiint_v f(x)\mathrm{d}z\mathrm{d}y\mathrm{d}x
\end{array}
$$

此外,在微分前用该使用\,来增加些许空间,否则会被紧凑的排列在一起。如下:
$$
\begin{array}{c}
Bad & Better \\
\hline
\iiint_v f(x)\mathrm{d}z\mathrm{d}y\mathrm{d}x & \iiint_v f(x)\mathrm{d}z \ \mathrm{d}y \ \mathrm{d}x
\end{array}
$$

连分数

书写连分数表达式时,请使用\cfrac代替\frac或者\over,两者效果对比如下:
$$
x = a_0 + \cfrac{1^2}{a_1
+ \cfrac{2^2}{a_2
+ \cfrac{3^2}{a_3 + \cfrac{4^4}{a_4 + \cdots}}}} \tag{\cfrac}
$$
$$
x = a_0 + \frac{1^2}{a_1
+ \frac{2^2}{a_2
+ \frac{3^2}{a_3 + \frac{4^4}{a_4 + \cdots}}}} \tag{\frac}
$$

方程组

使用\begin{array}...\end{array}\left{...\right.配合,表示方程组,如:
$$
\left\{
\begin{array}
a_1x + b_1y + c_1z = d_1 \\
a_2x + b_2y + c_2z = d_2 \\
a_2x + b_2y + c_2z = d_2 \\
\end{array}
\right.
$$

同时,还可以使用\begin{cases}...\end{cases}表达同样的方程组,如:
$$
\begin{cases}
a_1x + b_1y + c_1z = d_1 \\
a_2x + b_2y + c_2z = d_2 \\
a_2x + b_2y + c_2z = d_2 \\
\end{cases}
$$

对齐方程中的 = 号,可以使用\begin{align}...\end{align},如:
$$
\left\{
\begin{align}
a_1x + b_1y + c_1z &= d_1 + e_1 \\
a_2x + b_2y &= d_2 \\
a_2x + b_2y + c_2z &= d_2 \\
\end{align}
\right.
$$

如果要对齐 = 号 和项,可以使用\begin{array}{列样式}...\end{array},如:
$$
\left\{
\begin{array}{ll}
a_1x + b_1y + c_1z &= d_1 + e_1 \\
a_2x + b_2y &= d_2 \\
a_2x + b_2y + c_2z &= d_2 \\
\end{array}
\right.
$$

颜色

命名颜色是浏览器相关的,如果浏览器没有定义相关颜色的名称,则相关文本被渲染为黑色.以下颜色:
$$
\begin{array}{|rc|}
\hline
\verb+\color{black}{text}+ & \color{black}{text} \\
\verb+\color{gray}{text}+ & \color{gray}{text} \\
\verb+\color{silver}{text}+ & \color{silver}{text} \\
\verb+\color{white}{text}+ & \color{white}{text} \\
\hline
\verb+\color{maroon}{text}+ & \color{maroon}{text} \\
\verb+\color{red}{text}+ & \color{red}{text} \\
\verb+\color{yellow}{text}+ & \color{yellow}{text} \\
\verb+\color{lime}{text}+ & \color{lime}{text} \\
\verb+\color{olive}{text}+ & \color{olive}{text} \\
\verb+\color{green}{text}+ & \color{green}{text} \\
\verb+\color{teal}{text}+ & \color{teal}{text} \\
\verb+\color{aqua}{text}+ & \color{aqua}{text} \\
\verb+\color{blue}{text}+ & \color{blue}{text} \\
\verb+\color{navy}{text}+ & \color{navy}{text} \\
\verb+\color{purple}{text}+ & \color{purple}{text} \\
\verb+\color{fuchsia}{text}+ & \color{magenta}{text} \\
\hline
\end{array}
$$

此外,HTML5与CSS3也定义了一些颜色名称。同时,颜色也可以用rgb的形式表示,r、g、b分别表示颜色值的16进制数,如:
$$
\begin{array}{|rrrrrrrr|}\hline
\verb+#000+ & \color{#000}{text} & & &
\verb+#00F+ & \color{#00F}{text} & & \\
& & \verb+#0F0+ & \color{#0F0}{text} &
& & \verb+#0FF+ & \color{#0FF}{text}\\
\verb+#F00+ & \color{#F00}{text} & & &
\verb+#F0F+ & \color{#F0F}{text} & & \\
& & \verb+#FF0+ & \color{#FF0}{text} &
& & \verb+#FFF+ & \color{#FFF}{text}\\
\hline
\end{array}
$$

HTML色彩快速参考手册

公式标记与引用

使用\tag{标记名称}来标记公式,如果想在以后引用该公式则还需要加上\(label){标记名称}在\tag之后,如:

$$
a := x2-y3 \tag{a} \label{a}
$$

为了引用公式,可以使用\eqref{标记名称},如:

$$
a+y^3 \stackrel{\eqref{a}}= x^2
$$

可以看到通过超链接可以跳转到被引用公式位置。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 11,460评论 0 33
  • $ \LaTeX{} $历史 $\LaTeX{}$(/ˈlɑːtɛx/,常被读作/ˈlɑːtɛk/或/ˈleɪtɛ...
    大只若于阅读 4,137评论 0 4
  • 又到一年放榜时,无非又是几家欢喜几家愁,通过考试了的在朋友圈欢天喜地地晒成绩(刚才点赞点到手软),而没过的自己一个...
    多多君皇阅读 331评论 5 7
  • 听,落花声,归于尘土中,离开枝头缓缓坠下,不知何时才能再看见那一抹浅浅的绿色影子,不知何时才能再闻到那一阵淡...
    莘九阅读 103评论 0 1
  • 转一位大神的文章【iOS_Development】iOS沙盒目录简述
    KODIE阅读 314评论 0 0