技能GET: 30分鐘學(xué)會(huì)寫(xiě)出優(yōu)雅的數(shù)學(xué)公式

簡(jiǎn)書(shū)不支持 MathJax 顯示數(shù)學(xué)公式蚀狰,較完整的閱讀體驗(yàn)請(qǐng)移步這里手销。

在書(shū)寫(xiě)數(shù)值計(jì)算類(lèi)文章苫幢,特別是機(jī)器學(xué)習(xí)相關(guān)算法時(shí)访诱,難免需要插入復(fù)雜的數(shù)學(xué)公式。一種是用圖片在網(wǎng)頁(yè)上展示韩肝,另外一種是使用 MathJax 來(lái)展示復(fù)雜的數(shù)學(xué)公式触菜。它直接使用 Javascript 使用矢量字庫(kù)或 SVG 文件來(lái)顯示數(shù)學(xué)公式。優(yōu)點(diǎn)是效果好哀峻,比如在 Retina 屏幕上也不會(huì)變得模糊涡相。并且可以直接把公式寫(xiě)在 Markdown 文章里。本文介紹使用 MathJax 在 Markdown 文件里直接插入數(shù)學(xué)公式剩蟀。并且附帶一個(gè)簡(jiǎn)單的書(shū)寫(xiě)數(shù)學(xué)公式的 LaTex 教程催蝗。

工具

配置 Markdown Preview 來(lái)支持 MathJax

使用 Sublime + Markdown Preview 插件來(lái)寫(xiě)博客時(shí)。需要開(kāi)啟 Markdown Preview 對(duì) MathJax 的支持育特,這樣在預(yù)覽界面才能正確地顯示數(shù)學(xué)公式丙号。方法是打開(kāi)在 Markdown Preview 的用戶(hù)配置文件 (Package Settings -> Markdown Preview -> Setting - User) 里添加如下內(nèi)容:

"enable_mathjax": true

配置 Pelican 主題模板來(lái)支持 MathJax

我使用的主題是 foundation-default-colours,它默認(rèn)是支持 MathJax 的。我們可以在模板 base.html 找到如下內(nèi)容:

<!-- mathjax config similar to math.stackexchange -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
    jax: ["input/TeX", "output/HTML-CSS"],
    tex2jax: {
        inlineMath: [ ['$', '$'] ],
        displayMath: [ ['$$', '$$']],
        processEscapes: true,
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    messageStyle: "none",
    "HTML-CSS": { preferredFont: "TeX", availableFonts: ["STIX","TeX"] }
});
</script>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

如果模板不支持犬缨,也可以直接添加上面的腳本來(lái)支持 MathJax喳魏。

LaTex 簡(jiǎn)明教程

例子

先來(lái)看個(gè)例子:

$$
J(\theta) = \frac 1 2 \sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2
$$

上面用 LaTex 格式書(shū)寫(xiě)的數(shù)學(xué)公式經(jīng)過(guò) MathJax 展示后效果如下:

$$
J(\theta) = \frac 1 2 \sum_{i=1}^m (h_\theta(x{(i)})-y{(i)})^2
$$

這個(gè)公式是線(xiàn)性回歸算法里的成本函數(shù)。

規(guī)則

關(guān)于在 Markdown 書(shū)寫(xiě) LaTex 數(shù)學(xué)公式有幾個(gè)規(guī)則常用規(guī)則需要記妆槌摺:

行內(nèi)公式
行內(nèi)公式使用 $ 號(hào)作為公式的左右邊界截酷,如 $h(x) = \theta_0 + \theta_1 x$ 公式的 LaTex 內(nèi)容如下

$h(x) = \theta_0 + \theta_1 x$

行間公式
公式需要獨(dú)立顯示一行時(shí),使用 $$ 來(lái)作為公式的左右邊界乾戏,如

$$
\theta_i = \theta_i - \alpha\frac\partial{\partial\theta_i}J(\theta)
$$

的 LaTex 代碼為:

$$
\theta_i = \theta_i - \alpha\frac\partial{\partial\theta_i}J(\theta)
$$

常用 LaTex 代碼
需要記住的幾個(gè)常用的符號(hào)迂苛,這樣書(shū)寫(xiě)起來(lái)會(huì)快一點(diǎn)

編碼 說(shuō)明 示例
\frac 分子分母之間的橫線(xiàn) $\frac1x$
_ 用下劃線(xiàn)來(lái)表示下標(biāo) $x_i$
^ 次方運(yùn)算符來(lái)表示上標(biāo) $x^i$
\sum 累加器,上下標(biāo)用上面介紹的編碼來(lái)書(shū)寫(xiě) $\sum$
\alpha 希臘字母 alpha $y := \alpha x$

記住這幾個(gè)就差不多了鼓择,倒回去看一下線(xiàn)性回歸算法的成本函數(shù)的公式及其 LaTex 代碼三幻,對(duì)著練習(xí)個(gè)10分鐘基本就可以掌握常用公式的寫(xiě)法了。要特別注意公式里空格和 {} 的運(yùn)用規(guī)則呐能∧畎幔基本原則是,空格可加可不加摆出,但如果會(huì)引起歧義朗徊,最好加上空格。{} 是用來(lái)組成群組的偎漫。比如寫(xiě)一個(gè)分式時(shí)爷恳,分母是一個(gè)復(fù)雜公式時(shí),可以用 {} 包含起來(lái)象踊,這樣整個(gè)復(fù)雜公式都會(huì)變成分母了温亲。

幾個(gè)非常有用的資源

  • Github 上有個(gè)在線(xiàn) Markdown MathJax 編輯器,可以在這里練習(xí)杯矩,平時(shí)寫(xiě)公式時(shí)也可以在這里先寫(xiě)好再拷貝到文章里
  • 這是 LaTex 完整教程栈虚,包含完整的 LaTex 數(shù)學(xué)公式的內(nèi)容,包括更高級(jí)的格式控制等
  • 這是一份PDF 格式的 MathJax 支持的數(shù)學(xué)符號(hào)表史隆,當(dāng)需要書(shū)寫(xiě)復(fù)雜數(shù)學(xué)公式時(shí)魂务,一些非常特殊的符號(hào)的轉(zhuǎn)義字符可以從這里查到

好啦,這樣差不多就可以寫(xiě)出優(yōu)美的數(shù)學(xué)公式啦泌射。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末头镊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子魄幕,更是在濱河造成了極大的恐慌,老刑警劉巖颖杏,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纯陨,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)翼抠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)咙轩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人阴颖,你說(shuō)我怎么就攤上這事活喊。” “怎么了量愧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵钾菊,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我偎肃,道長(zhǎng)煞烫,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任累颂,我火速辦了婚禮滞详,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘紊馏。我一直安慰自己料饥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布朱监。 她就那樣靜靜地躺著岸啡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赌朋。 梳的紋絲不亂的頭發(fā)上凰狞,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音沛慢,去河邊找鬼赡若。 笑死,一個(gè)胖子當(dāng)著我的面吹牛团甲,可吹牛的內(nèi)容都是我干的逾冬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼躺苦,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼身腻!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起匹厘,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嘀趟,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后愈诚,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體她按,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡牛隅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了酌泰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片媒佣。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖陵刹,靈堂內(nèi)的尸體忽然破棺而出默伍,到底是詐尸還是另有隱情,我是刑警寧澤衰琐,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布也糊,位于F島的核電站,受9級(jí)特大地震影響碘耳,放射性物質(zhì)發(fā)生泄漏显设。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一辛辨、第九天 我趴在偏房一處隱蔽的房頂上張望捕捂。 院中可真熱鬧,春花似錦斗搞、人聲如沸指攒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)允悦。三九已至,卻和暖如春虑啤,著一層夾襖步出監(jiān)牢的瞬間隙弛,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工狞山, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留全闷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓萍启,卻偏偏與公主長(zhǎng)得像总珠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子勘纯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容