如何使用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}$ 表示
  • 数学符号表

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容