摘要:如果我們需要輸出的數(shù)學公式比較復雜,或者我們需要凸出并獨立顯示公式,這個時候我們就需要使用到公式的塊狀輸出,塊狀輸出的語法使用個美元符號數(shù)學公式,我們來看案例。
現(xiàn)在大數(shù)據(jù)、人工智能、數(shù)據(jù)分析等很多技術(shù)崗位都對數(shù)學有一定的要求,數(shù)學越來越重要,很多人也開始嘗試學習數(shù)學,腦子里突然就有了結(jié)合Python編程來學習數(shù)學的想法。在網(wǎng)絡(luò)上搜索了很多相關(guān)資料,看到非常多不錯的嘗試,但是國內(nèi)在這方面的資料卻比較少,于是就想到開一個技術(shù)專欄。
實踐出一整套便于互聯(lián)網(wǎng)傳播分享的數(shù)學公式跨平臺編輯、跨環(huán)境顯示是非常有必要的,如果還是停留在Word或PDF時代,那數(shù)學就會被限制在文檔或圖片里而無法通過最流行的網(wǎng)頁方式進行傳播,而且Word、PDF等文件處理軟件里的數(shù)學公式編輯既麻煩,而且最重要的是與編程脫節(jié)。
數(shù)學公式的編輯與顯示要將學習心得(尤其是數(shù)學公式等)寫成文檔在知乎、簡書、微信公眾號以及網(wǎng)站的網(wǎng)頁上面展示出來,使用Markdown以及LaTex Math的結(jié)合我認為是最佳的方法。
與LaTex文檔的比較
雖然很多數(shù)學學術(shù)論文整個文檔就像使用Markdown一樣是直接使用的LaTex語法來編輯的,但是仔細比對之后發(fā)現(xiàn)直接用LaTex語法來寫整個文檔來,它的效果和Markdown + LaTex Math 方式?jīng)]有太大的區(qū)別。
但是LaTex的語法、編輯器、配置、中文支持等都要比Markdown要復雜的多,而且也不及Markdown已經(jīng)非常成熟的生態(tài)(包括工具鏈、社區(qū)等)。
編輯器與插件
Markdown的編輯器非常多,對于很多初學者來說,個人比較推薦使用VS Code。
一是VS Code漢化比較方便,想讓更多人學會使用Python來學數(shù)學,有一個中文界面還是比較重要的;而且VS Code是跨平臺的,Mac、Windows都可以上手;
二是VS Code是一款極為優(yōu)秀的代碼編輯器,說起優(yōu)秀,應該算是目前最為推薦的編輯器之一(可能沒有之一);要用Python學數(shù)學,就不能用純Markdown軟件,代碼編輯器是少不了的,使用VS Code編譯Python和Markdown都極為舒適;
三是VS Code插件豐富,Python的編譯、Markdown的編寫與預覽、LaTex Math的顯示等工具鏈相當完備。比如Python插件,只需要安裝插件集合Python Extension Pack,里面就包含了微軟官方插件Python、MagicPython、Jupyter等優(yōu)秀插件;而Markdown插件,推薦安裝Markdown All in One,以及Markdown+Math。
LaTex Math的語法LaTex Math的語法多且雜,我們是沒法完全記住這些語法的,能記住也不提倡吧,我連Markdown語法都沒能全記住。查詢手冊在手,天下我有,這里比較推薦名校萊斯Rice大學的一個語法手冊,萊斯大學LaTex Math在線PDF手冊。
當然安裝了上述插件的VS Code也是有LaTex Math語法提示的。用英文字符反斜杠就可以為你提示。下面我們就結(jié)合這個PDF里LaTex Math的語法在Markdown里面進行實戰(zhàn),以及對這些語法的使用進行一些簡單的講解。
希臘字母
使用$LaTex希臘字母語法$,也就是將LaTex的希臘字母語法用兩個美元符號圍住即可。比如以下案例:
$Gamma$、$iota$、$sigma$、$phi$、$upsilon$、$Pi$、$Bbbk$、$heartsuit$、$int$、$oint$
輸出的結(jié)果就是這樣子啦~
$Gamma$、$iota$、$sigma$、$phi$、$upsilon$、$Pi$、$Bbbk$、$heartsuit$、$int$、$oint$
值得注意的是希臘字母有大寫和小寫之分,這個大小寫是由LaTex的首字母是否大小寫來控制的。
三角函數(shù)、對數(shù)、指數(shù)
三角函數(shù)、對數(shù)、指數(shù)的寫法以及其他符號的語法和字母是一樣的,也是使用$LaTex符號$,也就是將LaTex的希臘字母語法用兩個美元符號圍住即可,我們來看下面的案例:
$ an$、$sin$、$cos$、$lg$、$arcsin$、$arctan$、$min$、$max$、$exp$、$log$
輸出的結(jié)果如下:
$ an$、$sin$、$cos$、$lg$、$arcsin$、$arctan$、$min$、$max$、$exp$、$log$
運算符
運算符的寫法也是如此,不過要注意的是加號、減號、等于號、大于、小于的寫法有點不同,是直接用符號即可,這個要注意一下。
$+$、$-$、$=$、$>$、$<$、$ imes$、$div$、$equiv$、$leq$、$geq$、$ eq$
輸出的結(jié)果就是:
$+$、$-$、$=$、$>$、$<$、$ imes$、$div$、$equiv$、$leq$、$geq$、$
eq$
集合符號
集合是高中數(shù)學就會學習的知識,也是非常重要的基礎(chǔ)概念,集合的符號也比較多,所以會特地把它們多帶帶列出來,雖然它們的語法和上面沒有區(qū)別。
$cup$、$cap$、$in$、$ otin$、$ i$、$subset$、$subseteq$、$supset$、$supseteq$、$infty$
輸出的結(jié)果就是:
$cup$、$cap$、$in$、$
otin$、$
i$、$subset$、$subseteq$、$supset$、$supseteq$、$infty$
數(shù)學符號非常多,這里只是列舉了一些常用的符號,更多符號細節(jié)既可以查看萊斯大學的PDF。
數(shù)學公式與Markdown Math前面只是介紹了單一的數(shù)學符號顯示問題,但是一段完整的數(shù)學公式則包含多個數(shù)學符號、數(shù)值,在介紹數(shù)學公式之前,我們需要先來了解一下內(nèi)聯(lián)與塊狀的概念。
內(nèi)聯(lián)輸出與塊狀輸出
前面我們在輸出每個符號的時候,都用兩個美元符號$$,這種方式就是內(nèi)聯(lián),所謂內(nèi)聯(lián)就是我們可以把數(shù)學符號嵌入到文字段落里面,比如:
函數(shù)式:$f(x)=frac{P(x)}{Q(x)}$
函數(shù)式:$f(x)=frac{P(x)}{Q(x)}$ ,我們可以看到這段公式在文字段落里面。
如果我們需要輸出的數(shù)學公式比較復雜,或者我們需要凸出并獨立顯示公式,這個時候我們就需要使用到公式的塊狀輸出,塊狀輸出的語法使用4個美元符號$$數(shù)學公式$$,我們來看案例。
$$f(x)=frac{P(x)}{Q(x)}$$
使用塊狀輸出,函數(shù)會居中顯示,值得一提的是我們在使用塊狀輸出數(shù)學公式時,在Markdown里需要換行來寫公式。
$$f(x)=frac{P(x)}{Q(x)}$$
簡單的四則運算
我們先來看簡單的四則運算怎么用Markdown Math編寫,
$2x - 5y = 8$ $3x + 9y = -12$ $7x imes 2y eq 3z$
注意這里的 imes是乘號,
eq是不等于,輸出的效果如下:
$2x - 5y = 8$
$3x + 9y = -12$
$7x imes 2y
eq 3z$
指數(shù)輸出
Markdown Math的指數(shù)運算符是^,這個在Python里位運算符,Python的指數(shù)運算符是**,這個注意區(qū)別即可。
$x^3+x^9$ $x^y$
輸出的結(jié)果為:
$x^3+x^9$
$x^y$
n次方根輸出
sqrt{}是開平方,注意數(shù)值使用大括號{}圍住,而開n次方的語法是sqrt[n]{},n次方的n用中括號[]圍住,我們來看下面的案例:
$sqrt{3x-1}+sqrt[5]{2y^5-4}$
輸出的結(jié)果是:
$sqrt{3x-1}+sqrt[5]{2y^5-4}$
三角公式
三角公式通常括號、字母、符號、運算符混雜的比較厲害,所以書寫的時候要特別注意,我們來看下面的例子:
$$cos (2 heta) = cos^2 heta - sin^2 heta$$
輸出的結(jié)果如下:
$$cos (2 heta) = cos^2 heta - sin^2 heta$$
輸出分數(shù)
輸出帶有分子分母的分數(shù)的語法為frac{分子}{分母},使用大括號把分子、分母都圍住。
$$frac{x}{2y} +frac{x-y}{x+y} $$
輸出的結(jié)果如下:
$$frac{x}{2y} +frac{x-y}{x+y} $$
求和輸出
求和公式比較復雜,會涉及到上標和下標,在輸出指數(shù)^時我們可以把它看成是上標,使用_來輸出下標,我們來看具體案例:
$$sum_{n=1}^infty k$$
輸出的結(jié)果如下:
$$sum_{n=1}^infty k$$
極限的輸出
在我們了解了上下標的概念之后,輸出極限就會使用到下標,
$$limlimits_{x o infty} exp(-x) = 0$$
輸出的結(jié)果:
$$limlimits_{x o infty} exp(-x) = 0$$
階乘的輸出
$$frac{n!}{k!(n-k)!} = inom{n}{k}$$
輸出的結(jié)果如下:
$$frac{n!}{k!(n-k)!} = inom{n}{k}$$
Markdown Math輸出矩陣
使用egin{matrix}和end{matrix}圍住即可輸出矩陣,矩陣之間用$來空格,用來換行。
$$ egin{matrix} 1 & 2 & 3 4 & 5 & 6 7 & 8 & 9 end{matrix} $$
輸出的結(jié)果是:
$$ egin{matrix} 1 & 2 & 3 4 & 5 & 6 7 & 8 & 9 end{matrix} $$
復雜數(shù)學公式分段函數(shù)的編寫
分段函數(shù)是非常復雜的,這時候會用到LaTex的cases語法,用egin{cases}和end{cases}圍住即可,中間則用來分段,具體我們來看下面的例子。
$$ X(m,n)= egin{cases} x(n), x(n-1) x(n-1) end{cases} $$
分段函數(shù)輸出的結(jié)果如下:
$$ X(m,n)= egin{cases} x(n), x(n-1) x(n-1) end{cases} $$
Markdown Math也就是LaTex語法輸出數(shù)學公式的基本用法,我們先介紹到這里,后面我們會在學習過程中接觸到時再來研究。
Markdown Math的跨平臺顯示讓數(shù)學公式可以在知乎、簡書、公眾號等自媒體平臺以及網(wǎng)頁和博客系統(tǒng)Wordpress上優(yōu)雅的顯示,這樣才有利于數(shù)學公式的閱讀與傳播。
知乎、簡書、掘金上顯示數(shù)學公式
簡書的Markdown編輯器可以比較完美的支持Markdown語法以及Markdown Math語法,可以直接把用VS Code寫的Markdown文件里的內(nèi)容復制粘貼過去,然后進行一些簡單的修改就可以了。
而知乎自帶數(shù)學公式的插入,如果直接導入Markdown文件顯示會出現(xiàn)一些問題,需要把數(shù)學公式用知乎自帶的Tex編輯器重新書寫,只需要把$$刪除即可。
在網(wǎng)頁上顯示數(shù)學公式
由于我們的網(wǎng)頁可以不用Markdown,用HTML替換Markdown排版語法就可以,所以我們只需要專注于如何在網(wǎng)頁上顯示數(shù)學公式即可。比較完美的解決方案是使用mathjax,我們只需要在標簽內(nèi)插入mathjaxjs即可。
比如下面的案例,大家只需要把下面的代碼復制下來并保存為html文件即可,不過要注意的是內(nèi)聯(lián)式的語法會有些不同,不再是$符號與公式$,而是:(符號與公式)
當 (a e 0)時, (ax^2 + bx + c = 0) 會有兩個解,它們是: $$x = {-b pm sqrt{b^2-4ac} over 2a}.$$
數(shù)學公式在公眾號上的顯示
微信公眾號封閉且奇葩,美化微信公眾號的排版雖然用的是html和css語法,但是有很多需要注意的地方,因此排版也相對來說比較麻煩,相比知乎、簡書等自媒體平臺來說,公眾號的排版也可以做到更美觀。不過要想讓數(shù)學公式在公眾號上顯示就比較麻煩,微信公眾號是不支持LaTex語法的,所以需要把公式做成圖片,其他不支持LaTex的自媒體平臺也可以這么處理。
公眾號顯示數(shù)學公式有一個比較簡單好用的方法就是[Md2All]http://md.aclickall.com/,可以直接把VS Code編輯的Markdown文檔粘貼到里面,還能進行精美的排版,但是這個方法有兩個問題,一個是生成的圖片比較模糊,有礙觀瞻;第二就是如果數(shù)學公式過多,就需要用七牛云的CDN,配置的方法也比較簡單,總體來說Md2All綜合效果最佳的方案,相比于其他方法更方便,也能一梭子把Markdown文檔以及數(shù)學公式進行優(yōu)雅的公眾號排版。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43383.html
摘要:使用將公式轉(zhuǎn)為,兼容使用在前端頁面中加入該引用使用方法默認的數(shù)學分隔符是和用于顯示數(shù)學,而用于行內(nèi)數(shù)學。請?zhí)貏e注意默認情況下不使用行內(nèi)分隔符這是因為美元符號在非數(shù)學設(shè)置中經(jīng)常出現(xiàn),這可能導致某些文本被意外地視為數(shù)學。 在學習線性代數(shù),需要寫博客,遇到復雜的數(shù)學公式如向量、矩陣、微積分公式?jīng)]法用普通的方法打印,所以,使用LaTeX解決了這個問題。 一、什么是LaTeX LaTeX, 是一...
摘要:微積分微積分的課程我們也同樣是推薦和的課程。還有一個斯坦福大學的統(tǒng)計學習入門英文字幕相當不錯。所以,除了繪制數(shù)學圖形外,學習數(shù)學就應該完全與編程有機結(jié)合。 無論是三大數(shù)學軟件Matlab(通信、控制等工程例外)、Maple、Mathematica,還是三大統(tǒng)計軟件Spass、Stata、SAS,這些可視化的軟件本身就是編程的一個體現(xiàn),它們在一定程度上降低了我們使用數(shù)學的門檻,但另一方面...
摘要:兩分鐘提高的書寫體驗對于程序員來說時常溫故知新寫博客是十分有益的成為眾多程序員寫作的新寵不僅簡潔而且優(yōu)雅這里推薦一些提高書寫效率并且美化排版的工具雖然說是兩分鐘也可以解決啦直接看下面文中插件插件名作用測試版本支持自定義預覽樣式以風格預覽支 兩分鐘提高vscode的markdown書寫體驗 對于程序員來說,時常溫故知新,寫博客是十分有益的,markdown成為眾多程序員寫作的新寵,不僅簡...
摘要:當你完成了一篇文章的寫作在上方工具欄找到文章導出,生成一個文件或者文件進行本地保存。導入如果你想加載一篇你寫過的文件或者文件,在上方工具欄可以選擇導入功能進行對應擴展名的文件導入,繼續(xù)你的創(chuàng)作。 @TOC 歡迎使用Markdown編輯器 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,了解一下Mark...
閱讀 1550·2021-11-24 09:38
閱讀 3396·2021-11-18 10:02
閱讀 3289·2021-09-22 15:29
閱讀 2974·2021-09-22 15:15
閱讀 1079·2021-09-13 10:25
閱讀 1893·2021-08-17 10:13
閱讀 2042·2021-08-04 11:13
閱讀 2005·2019-08-30 15:54