數(shù)學(xué)公式的編輯與顯示

數(shù)學(xué)公式的編輯與顯示

要將學(xué)習(xí)心得(尤其是數(shù)學(xué)公式等)寫成文檔在知乎、簡(jiǎn)書、微信公眾號(hào)以及網(wǎng)站的網(wǎng)頁(yè)上面展示出來,使用Markdown以及LaTex Math的結(jié)合我認(rèn)為是最佳的方法。

與LaTex文檔的比較
雖然很多數(shù)學(xué)學(xué)術(shù)論文整個(gè)文檔就像使用Markdown一樣是直接使用的LaTex語(yǔ)法來編輯的,但是仔細(xì)比對(duì)之后發(fā)現(xiàn)直接用LaTex語(yǔ)法來寫整個(gè)文檔來,它的效果和Markdown + LaTex Math 方式?jīng)]有太大的區(qū)別。
但是LaTex的語(yǔ)法、編輯器、配置、中文支持等都要比Markdown要復(fù)雜的多,而且也不及Markdown已經(jīng)非常成熟的生態(tài)(包括工具鏈、社區(qū)等)。

編輯器與插件
Markdown的編輯器非常多,對(duì)于很多初學(xué)者來說,個(gè)人比較推薦使用VS Code。

  • 一是VS Code漢化比較方便,想讓更多人學(xué)會(huì)使用Python來學(xué)數(shù)學(xué),有一個(gè)中文界面還是比較重要的;而且VS Code是跨平臺(tái)的,Mac、Windows都可以上手;
  • 二是VS Code是一款極為優(yōu)秀的代碼編輯器,說起優(yōu)秀,應(yīng)該算是目前最為推薦的編輯器之一(可能沒有之一);要用Python學(xué)數(shù)學(xué),就不能用純Markdown軟件,代碼編輯器是少不了的,使用VS Code編譯Python和Markdown都極為舒適;
  • 三是VS Code插件豐富,Python的編譯、Markdown的編寫與預(yù)覽、LaTex Math的顯示等工具鏈相當(dāng)完備。比如Python插件,只需要安裝插件集合Python Extension Pack,里面就包含了微軟官方插件Python、MagicPython、Jupyter等優(yōu)秀插件;而Markdown插件,推薦安裝Markdown All in One,以及Markdown+Math。

LaTex Math的語(yǔ)法

LaTex Math的語(yǔ)法多且雜,我們是沒法完全記住這些語(yǔ)法的,能記住也不提倡吧,我連Markdown語(yǔ)法都沒能全記住。查詢手冊(cè)在手,天下我有,這里比較推薦名校萊斯Rice大學(xué)的一個(gè)語(yǔ)法手冊(cè),萊斯大學(xué)LaTex Math在線PDF手冊(cè)。

當(dāng)然安裝了上述插件的VS Code也是有LaTex Math語(yǔ)法提示的。用英文字符反斜杠\就可以為你提示。下面我們就結(jié)合這個(gè)PDF里L(fēng)aTex Math的語(yǔ)法在Markdown里面進(jìn)行實(shí)戰(zhàn),以及對(duì)這些語(yǔ)法的使用進(jìn)行一些簡(jiǎn)單的講解。

希臘字母
使用$LaTex希臘字母語(yǔ)法$,也就是將LaTex的希臘字母語(yǔ)法用兩個(gè)美元符號(hào)圍住即可。比如以下案例:

$\Gamma$、$\iota$、$\sigma$、$\phi$、$\upsilon$、$\Pi$、$\Bbbk$、$\heartsuit$、$\int$、$\oint$

輸出的結(jié)果就是這樣子啦~
\gamma、\iota\sigma、\phi\upsilon、\Pi、\Bbbk\heartsuit、\int、\oint

值得注意的是希臘字母有大寫和小寫之分,這個(gè)大小寫是由LaTex的首字母是否大小寫來控制的。

三角函數(shù)、對(duì)數(shù)、指數(shù)
三角函數(shù)、對(duì)數(shù)、指數(shù)的寫法以及其他符號(hào)的語(yǔ)法和字母是一樣的,也是使用$LaTex符號(hào)$,也就是將LaTex的希臘字母語(yǔ)法用兩個(gè)美元符號(hào)圍住即可,我們來看下面的案例:

$\tan$、$\sin$、$\cos$、$\lg$、$\arcsin$、$\arctan$、$\min$、$\max$、$\exp$、$\log$

輸出的結(jié)果如下:
\tan\sin、\cos\lg、\arcsin、\arctan、\min\max、\exp\log

運(yùn)算符
運(yùn)算符的寫法也是如此,不過要注意的是加號(hào)、減號(hào)、等于號(hào)、大于、小于的寫法有點(diǎn)不同,是直接用符號(hào)即可,這個(gè)要注意一下。

$+$、$-$、$=$、$>$、$<$、$\times$、$\div$、$\equiv$、$\leq$、$\geq$、$\neq$  

輸出的結(jié)果就是:
+、-、=>、<\times、\div、\equiv、\leq\geq、\neq

集合符號(hào)
集合是高中數(shù)學(xué)就會(huì)學(xué)習(xí)的知識(shí),也是非常重要的基礎(chǔ)概念,集合的符號(hào)也比較多,所以會(huì)特地把它們單獨(dú)列出來,雖然它們的語(yǔ)法和上面沒有區(qū)別。

$\cup$、$\cap$、$\in$、$\notin$、$\ni$、$\subset$、$\subseteq$、$\supset$、$\supseteq$、$\infty$

輸出的結(jié)果就是:
\cup\cap、\in\notin、\ni、\subset\subseteq、\supset、\supseteq、\infty

數(shù)學(xué)符號(hào)非常多,這里只是列舉了一些常用的符號(hào),更多符號(hào)細(xì)節(jié)既可以查看萊斯大學(xué)的PDF。

數(shù)學(xué)公式與Markdown Math

前面只是介紹了單一的數(shù)學(xué)符號(hào)顯示問題,但是一段完整的數(shù)學(xué)公式則包含多個(gè)數(shù)學(xué)符號(hào)、數(shù)值,在介紹數(shù)學(xué)公式之前,我們需要先來了解一下內(nèi)聯(lián)與塊狀的概念。
內(nèi)聯(lián)輸出與塊狀輸出
前面我們?cè)谳敵雒總€(gè)符號(hào)的時(shí)候,都用兩個(gè)美元符號(hào)$$,這種方式就是內(nèi)聯(lián),所謂內(nèi)聯(lián)就是我們可以把數(shù)學(xué)符號(hào)嵌入到文字段落里面,比如:

函數(shù)式:$f(x)=\frac{P(x)}{Q(x)}$  

函數(shù)式:f(x)=\frac{P(x)}{Q(x)}

,我們可以看到這段公式在文字段落里面。
如果我們需要輸出的數(shù)學(xué)公式比較復(fù)雜,或者我們需要凸出并獨(dú)立顯示公式,這個(gè)時(shí)候我們就需要使用到公式的塊狀輸出,塊狀輸出的語(yǔ)法使用4個(gè)美元符號(hào)$$數(shù)學(xué)公式$$,我們來看案例。

$$f(x)=\frac{P(x)}{Q(x)}$$ 

使用塊狀輸出,函數(shù)會(huì)居中顯示,值得一提的是我們?cè)谑褂脡K狀輸出數(shù)學(xué)公式時(shí),在Markdown里需要換行來寫公式。
f(x)=\frac{P(x)}{Q(x)}

簡(jiǎn)單的四則運(yùn)算
我們先來看簡(jiǎn)單的四則運(yùn)算怎么用Markdown Math編寫,

$2x - 5y =  8$  
$3x + 9y =  -12$
$7x \times 2y \neq 3z$

注意這里的\times是乘號(hào),\neq是不等于,輸出的效果如下:
2x - 5y = 8
3x + 9y = -12
7x \times 2y \neq 3z

指數(shù)輸出
Markdown Math的指數(shù)運(yùn)算符是^,這個(gè)在Python里位運(yùn)算符,Python的指數(shù)運(yùn)算符是**,這個(gè)注意區(qū)別即可。

$x^3+x^9$  
$x^y$  

輸出的結(jié)果為:
x^3+x^9
x^y

n次方根輸出
\sqrt{}是開平方,注意數(shù)值使用大括號(hào){}圍住,而開n次方的語(yǔ)法是\sqrt[n]{},n次方的n用中括號(hào)[]圍住,我們來看下面的案例:

$\sqrt{3x-1}+\sqrt[5]{2y^5-4}$

輸出的結(jié)果是:
\sqrt{3x-1}+\sqrt[5]{2y^5-4}

三角公式
三角公式通常括號(hào)、字母、符號(hào)、運(yùn)算符混雜的比較厲害,所以書寫的時(shí)候要特別注意,我們來看下面的例子:

$$\cos (2\theta) = \cos^2 \theta - \sin^2 \theta$$

輸出的結(jié)果如下:
\cos (2\theta) = \cos^2 \theta - \sin^2 \theta

輸出分?jǐn)?shù)
輸出帶有分子分母的分?jǐn)?shù)的語(yǔ)法為\frac{分子}{分母},使用大括號(hào)把分子、分母都圍住。

$$\frac{x}{2y} +\frac{x-y}{x+y} $$

輸出的結(jié)果如下:
\frac{x}{2y} +\frac{x-y}{x+y}

求和輸出
求和公式比較復(fù)雜,會(huì)涉及到上標(biāo)和下標(biāo),在輸出指數(shù)^時(shí)我們可以把它看成是上標(biāo),使用_來輸出下標(biāo),我們來看具體案例:

$$\sum_{n=1}^\infty k$$

輸出的結(jié)果如下:
\sum_{n=1}^\infty k

極限的輸出
在我們了解了上下標(biāo)的概念之后,輸出極限就會(huì)使用到下標(biāo),

$$\lim\limits_{x \to \infty} \exp(-x) = 0$$

輸出的結(jié)果:
\lim\limits_{x \to \infty} \exp(-x) = 0

階乘的輸出

$$\frac{n!}{k!(n-k)!} = \binom{n}{k}$$

輸出的結(jié)果如下:
\frac{n!}{k!(n-k)!} = \binom{n}{k}

Markdown Math輸出矩陣
使用\begin{matrix}\end{matrix}圍住即可輸出矩陣,矩陣之間用$來空格,用\\來?yè)Q行。

$$
  \begin{matrix}
   1 & 2 & 3 \\
   4 & 5 & 6 \\
   7 & 8 & 9
  \end{matrix} 
$$

輸出的結(jié)果是:
\begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix}

復(fù)雜數(shù)學(xué)公式

分段函數(shù)的編寫
分段函數(shù)是非常復(fù)雜的,這時(shí)候會(huì)用到LaTex的cases語(yǔ)法,用\begin{cases}\end{cases}圍住即可,中間則用\\來分段,具體我們來看下面的例子。

$$
X(m,n)=
\begin{cases}
x(n),\\
x(n+1),\\
x(n-1)
\end{cases}
$$

分段函數(shù)輸出的結(jié)果如下:
X(m,n)= \begin{cases} x(n),\\ x(n+1),\\ x(n-1) \end{cases}

Markdown Math也就是LaTex語(yǔ)法輸出數(shù)學(xué)公式的基本用法,我們先介紹到這里,后面我們會(huì)在學(xué)習(xí)過程中接觸到時(shí)再來研究。

Markdown Math的跨平臺(tái)顯示

讓數(shù)學(xué)公式可以在知乎、簡(jiǎn)書、公眾號(hào)等自媒體平臺(tái)以及網(wǎng)頁(yè)和博客系統(tǒng)Wordpress上優(yōu)雅的顯示,這樣才有利于數(shù)學(xué)公式的閱讀與傳播。
知乎、簡(jiǎn)書、掘金上顯示數(shù)學(xué)公式
簡(jiǎn)書的Markdown編輯器可以比較完美的支持Markdown語(yǔ)法以及Markdown Math語(yǔ)法,可以直接把用VS Code寫的Markdown文件里的內(nèi)容復(fù)制粘貼過去,然后進(jìn)行一些簡(jiǎn)單的修改就可以了。
而知乎自帶數(shù)學(xué)公式的插入,如果直接導(dǎo)入Markdown文件顯示會(huì)出現(xiàn)一些問題,需要把數(shù)學(xué)公式用知乎自帶的Tex編輯器重新書寫,只需要把$$刪除即可。

在網(wǎng)頁(yè)上顯示數(shù)學(xué)公式
由于我們的網(wǎng)頁(yè)可以不用Markdown,用HTML替換Markdown排版語(yǔ)法就可以,所以我們只需要專注于如何在網(wǎng)頁(yè)上顯示數(shù)學(xué)公式即可。比較完美的解決方案是使用mathjax,我們只需要在<head>標(biāo)簽內(nèi)插入mathjaxjs即可。
比如下面的案例,大家只需要把下面的代碼復(fù)制下來并保存為html文件即可,不過要注意的是內(nèi)聯(lián)式的語(yǔ)法會(huì)有些不同,不再是$符號(hào)與公式$,而是:\(符號(hào)與公式\)

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
  <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>
<body>
<p>
  當(dāng) \(a \ne 0\)時(shí),  \(ax^2 + bx + c = 0\) 會(huì)有兩個(gè)解,它們是:
  $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
</p>
</body>
</html>

當(dāng) a \ne 0時(shí), ax^2 + bx + c = 0 會(huì)有兩個(gè)解,它們是:
x = {-b \pm \sqrt{b^2-4ac} \over 2a}.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 現(xiàn)在大數(shù)據(jù)、人工智能、數(shù)據(jù)分析等很多技術(shù)崗位都對(duì)數(shù)學(xué)有一定的要求,數(shù)學(xué)越來越重要,很多人也開始嘗試學(xué)習(xí)數(shù)學(xué),腦子里...
    李東bbsky閱讀 20,190評(píng)論 1 20
  • 現(xiàn)在大數(shù)據(jù)、人工智能、數(shù)據(jù)分析等很多技術(shù)崗位都對(duì)數(shù)學(xué)有一定的要求,數(shù)學(xué)越來越重要,很多人也開始嘗試學(xué)習(xí)數(shù)學(xué),腦子里...
    李東bbsky閱讀 2,352評(píng)論 0 0
  • Markdown與數(shù)學(xué)公式 1 基本語(yǔ)法 Markdown數(shù)學(xué)公式的表達(dá)形式包括兩種類型:行內(nèi)公式(inline)...
    胡博麟閱讀 4,315評(píng)論 0 11
  • 1. 基本語(yǔ)法 1.1 行內(nèi)公式 正文(inline)中的LaTeX公式用$...$定義 語(yǔ)句為$\sum_{i=...
    ruizuo007閱讀 14,029評(píng)論 0 15
  • 最近為男朋友的考研數(shù)學(xué)答疑班打數(shù)學(xué)公式,本來想用Typora來編輯公式的,它支持Mathjax渲染,然而團(tuán)隊(duì)其他人...
    九楨閱讀 16,681評(píng)論 3 25

友情鏈接更多精彩內(nèi)容