如何使用jupyter编写数学公式(译)

文章原地址:A Primer on Using LaTeX in Jupyter Notebooks

jupyter notebooks 工具在数据科学领域被广泛使用,该工具使你可以将代码、文本、数学公式、图片都写在同一个文档中。并且,这些文档通过共享,其他人可以非常简单地重复分析过程,比如说通过LIGO发现引力波。Jupyter Notebooks也能被作为在线文档工具。

我非常喜欢的一个功能是它的 LaTeX 编辑功能,直接在文本中包含数学符号,通过 MathJax 渲染出数学公式。LaTeX 是排版技术和科学文档的标准,通过LaTeX,你不仅能够写出任何的文档,还能够在其中加入数学公式与符号。

MathJax将LaTeX符号进行渲染,直接在浏览器中显示出来。

这是Jupyter非常有用的功能,但是,许多人由于缺乏LaTeX的使用经验而不能享受这一功能,实在让人惋惜。我打算对如何使用LaTeX编辑数学公式写一个入门,内容将不会覆盖LaTeX的所有内容,只是关于LaTeX的基础部分,让你能够快速地在文档中编写数学公式。

数学排版基础

在编写LaTeX时,有两种模式:行内模式(inline mode) 和 展示模式(display mode).行内模式也称为随文模式,是将公式镶嵌在普通文段内,跟文字排在一起。 展示模式是将公式独立成一行,并且居中显示。

模式不同,数学公式的渲染方式也不同。

为了在行内编写数学公式,你需要使用单$符, 比如:$y=mx+b$,在 $符之间的所有内容,都将被视为数学符号进行渲染。

为了创建显示模式的表达式,使用 $$符。

例如 $$P(A \mid B) = \frac{ P(B \mid A) P(A) }{ P(B) }$$,其效果如下:

贝叶斯公式

上标和下标

指数上标通过一个脱字符^表示,例如 $$x^2$$ 表示

上标

有时候,你希望幂的指数是一个乘法组成的式子,你可能使用表达式 $$e^2x$$ ,但是该表达式显示的却是

而通过大括号将指数包裹起来,如$$e^{2x}$$ 将被渲染为


相似的,你可以使用下划线来引出下标部分,例如 $$x_i$$ 就表示


当然,下划线也可以出现在最前面,例如 $$_{10}C_5$$ 表示


下标还可以出现在正中间,例如 \\underset{k}{argmax} 表示

命令

特定的符号和形式通过命令进行编写,每一个命令以反斜杠开始,一个命令名紧随其后。比如说,创建一个平方根的表达式 $$ \sqrt{2\pi} $$ 显示为

大括号将根号下的内容全部包括,\pi 渲染为希腊字符π。

命令frac用于显示分数,它需要两个输入,一个是分子部分,一个是分母部分,两个用大括号包裹起来,紧随 \frac 。

符号

符号也是以反斜杠开头,反斜杠之后跟符号名。在LaTeX存在大量的符号:

  • 希腊字母如 \alpha, \beta, \gamma :

你也能使用大写希腊字母,如 \Phi, \Lambda, \Gamma :

注意,beta的大写形式是 B ,而不是 \Beta 。

  • 比如乘、正负、并集、卷积符号为 \times, \pm, \cup, \oplus :
  • 三角函数像 \sin, \cosh, \arctan 表示 sin、cosh、arctan,你如果希望使用这些命令,不要仅仅在公式中写 sin, 否则,你得到的是

    而不是
  • 关系运算,例如 \leq, \geq, \approx, \neq :
  • 3点符号例如:\cdots, \ldots, \ddots :
  • 其他的变量符,如:\infty, \nabla, \partial :

口音

  • 在符号上面加个帽子: $$\hat x$$ ,显示为

    如果在多个字符上加帽子,可以使用\widehat ,如 $$widehat{abs}$$ 显示为


  • 为了显示平均数,通常需要在变量上面添加一条线,通过 \bar x ,显示为

    如果是多个字符,可以使用 \overline{abs},显示为
  • 导数通过点表示,如 \dot x 和 \ddot x ,显示为
  • 箭头为 \vec{x}, \overrightarrow{AB} ,显示为

括号

圆括号和其他括号都不是 “富有弹性的”,也就是说,表达式的高度变长,包裹该表达式的括号并不会随之变高,例如 : $$z=(\frac{dx}{dy})^{1/3}$$ 显示为:

为了让括号能够拉伸,使用 \left 和 \right ,比如 $$z=\left(\frac{dx}{dy}\right)^{1/3}$$ ,将显示为

还存在一些特殊的括号:

  • 直线 | 或写为 \vert ,\mid 显示效果和 \vert 非常相似,但 \mid 宽度比 \vert 大。

  • 尖括号,例如 $$ {\langle} {\phi} \mid {\psi} {\rangle} $$ 显示为
  • 矩阵括号,如 $$\left[\begin{matrix}a & b \cr c & d\end{matrix}\right]$$ 显示为
    方括号包围的矩阵

    或者是:$$\left\lgroup\begin{matrix}a & b \cr c & d\end{matrix}\right\rgroup$$
    圆括号包围的矩阵

字体及其选项

  • 比如非斜体罗马文本,使用 \textrm{abcdefghijklmn123456} 或者 \rm{abcdefghijklmn123456},效果为
  • 斜体字母 \mathit{abcdefghijklmn123456} ,效果为
  • Sans serif 字体 \mathsf{abcdefghijklmn123456} ,效果为
  • Typerwriter 字体 \mathtt{abcdefghijklmn123456} ,效果为
  • Calligraphic 字体 \mathcal{abcdefghijklmn123456} ,效果为
  • Blackborad bold 字体 \mathbb{abcdefghijklmn123456} ,效果为
  • Boldsymbol 字体加粗 \boldsymbol{A\cdot x}=\lambda\cdot v,效果为:

空格

在LaTeX中,符号之间的空格会被自动移除,所以$$ \int f(x) dx $$ 显示为

函数和 dx 之间没有空格,你能通过 \,\:\;添加空格,其空格宽度分别为从小到大。所以 $$\int f(x) ; dx$$ 显示为:

对于更大的间隔,可以使用 \quad 和 \qquad 。第一个为 1em 的距离,第二个为 2em 的距离;

转义字符

如果你需要使用特殊的字符,比如 { 或 _ ,你必须通过反斜杠进行转义,例如 { ,_ ,$ 分别表示 { 、 _ 、 $ ,\ 的转义为 \\ 。

等式对齐

通过 \\ 断开两个或多个等式,可实现等式中部对齐,例如:

$$
a_1=b_1+c_1 \\
a_2=b_2+c_2+d_2 \\
a_3=b_3+c_3
$$

显示为:

如果希望是左对齐,可以是:

$$
\begin{align}
a_1&=b_1+c_1 \\
a_2&=b_2+c_2+d_2 \\
a_3&=b_3+c_3
\end{align}
$$

显示如下

如果需要对方程进行编号,可以 使用 \tag ,例如:

$$
\begin{align}
a_1&=b_1+c_1 \tag{1}\\
a_2&=b_2+c_2+d_2 \tag{2}\\
a_3&=b_3+c_3 \tag{3}
\end{align}
$$

显示为:


分段函数

例如需要些符号函数sign:

$$
sign(x)=\begin{cases}
1,&x>0 \\ 0,&x=0 \cr -1,&x<0
\end{cases}
$$

显示如下:


上述语法中的 \\ 等价于 \cr,表示换行到新的 case。

总结

  • 命令

    1. 指数和下标可以用^和_后,跟相应字符实现。例如 $a^3$ 表示 a^3 , $a_3$ 表示

    2. 平方根的为\sqrt, n次方根为\sqrt[n]。例如 $\sqrt{a}$ 表示 \sqrt{a} ,$\sqrt[3]{a}$ 表示

    3. 命令 \overline 和 \underline 表示表达式上的上、下坊给出以水平大括号。例如:$\overline{m+n}$ 表示

      $\underline{m+n}$ 表示
    4. 命令 \overbrace 和 \underbrace 在表达式的上、下方给出一水平的大括号,例如 $\underbrace{a+b+\cdots+j}_{10}$ 表示
    5. 向量(Vector)通常用于上方有小箭头的变量表示,可以有\vec得到,例如 $\vec a$ 表示


      $\overrightarrow{AB}$ 表示 \overrightarrow{AB} ,$\overleftarrow{AB}$ 表示

    6. 分数(fraction) 使用 \frac{...}{...} 排版,一般来说,1/2 这种形式更受欢迎,以为对于少量的分式,它看起来更好些。 $\frac{-b\pm\sqrt{b^2-4ac}}{2a}$ 表示
    7. 积分运算符(integral operator) 用 \int 来生成,例如 $\int_{0}^{\pi}{\tan x}$ 表示
    8. 求和运算符(sum operator) 用 \sum 来生成,例如 $\sum_{i=0}^{n}{i}$ 表示
    9. 乘积运算符(product operator) 用 \prod 生成,例如 $\prod_{i=1}^{9}{i}$ 表示
  • 数学符号表

推荐阅读更多精彩内容