Markdown 學習筆記

這裡我們要介紹 markdown 這個語言. 它非常簡單易學, 有時我們只是想打個小文件, 就幾頁而已不想要開 latex 或是 word 之類的文字編輯軟體, 這時候就非常適合以 markdown 來編寫. 另外其實越來越多的程式語言也支援 markdown 編寫. 比如這個網頁裡的 post 就都是以 markdown 做的.


Markdown 安裝

  • 我自己是使用 mac, 我用的是 MacDown 這個軟體.

    • 安裝完 Macdown 之後需要到 Preference/Rendering 中標選 tex-like math 以及他下一行的 use dollar sign as xxxx, 才可使用 tex 語法.
  • 最近我用的是 Typora 這個軟體, 它支援各作業系統, 不管 mac 或 windows 都可以用.

    • Typora 主要特色是他所見即所得, 所以邊寫邊看自己打出來的版面怎樣. 比較乾淨, 不需要將畫面切分成左右兩半一半程式一半預覽. 學起來也很簡單.
    • 安裝完 Typora 之後到 Preference/Markdown 中標選 inline math, 才可使用 tex 語法.
  • 如果平常會寫各式程式語言, 也可以考慮使用 atom 編輯器. 它是 github 開發的免費編輯器, 不管 Mac, windows 或是 Linux 都有支援. 我自己也有使用 atom 來寫 julia, fortran, html 等.

  • 如果連安裝都不想的話我推薦 hackmd 這個線上編輯器. 這個還能多人共筆編輯, 適合寫作業交作業.

  • 另一個線上編輯器: markdown notes . 它支援線上即時編寫, 可以線上存檔, 也可以下載成 markdown 以及 PDF.

  • 另一個線上編輯器: upmath, 一樣支援線上即時編寫, 可以存成 html 直接幫你產生網頁.

不過我要稍微說明一下, 不管使用哪種編輯器, markdown 主要語法都差不多, 只是在輸出上會有一些細微的差異. 這點就要自己使用後才會感受得到差別.


Markdown 語法教學

以下列舉一些 markdown 教學的線上資源

markdown 有一個很酷的語法是可以做 diagram, 在 typora 這個編輯器有支援: Draw Diagrams With Markdown.

  • 不過要稍微注意一下, 不要直接複製貼上介紹網頁裡的 diagram 程式到 typora 裡, 會跑不出來. 正確做法是, 比如說要做以下這個 sequence diagram, 那在 typora 裡打 ```sequence, 然後就會跑出一個框框讓你把程式貼進去. 程式貼入後圖就跑出來了.

我自己所使用的 macdown 也號稱有支援, 不過其實只有某些特別的版本能用而已, 有點可惜.

如果是用 atom 的話則是要安裝 markdown-preview-enhanced 這個 package. 我自己試過, 支援各種 diagram, 非常棒.


Markdown 語法補充

  • 在 markdown 文字間插入空白無法單純使用空白鍵, 在 mac 裡是 option+space, 其他可見 Use non-breaking spaces
  • 在 markdown 裡將文字置中只能用 html 語法 Centered Text

Latex 語法教學

Markdown 一個很重要功能(至少對我而言)就是它支援 $\LaTeX$ 語法. Latex 數學排版系統是科學界中非常重要的一種系統. 它使得研究員在撰寫學術文章時能輕易地做好排版. 尤其是科學文章中常有大量數學符號, 這些符號的編排以及顯示是 Latex 系統一大強項.

如果只是要以 Markdown 來寫一些簡單包含數學符號的文章, 還不需要學整個 Latex 系統. 我們只要會一些語法就好. 以下整理一些線上資源供參考

所有介於兩個 $ 字元之間的內容將會被視為 TeX 數學公式處理。開頭的 $ 右側必須立刻接上任意文字,而結尾 $ 的左側同樣也必須緊挨著文字。如果使用兩個$$則會將數學公式換行居中. 例如以下 markdown 程式碼

$$\frac{\sin(x)}{x}$$

顯示為 $$\frac{\sin(x)}{x}$$


Avatar
Te-Sheng Lin (林得勝)
Professor

The focus of my research is concerned with the development of analytical and computational tools, and further to communicate with scientists from other disciplines to solve engineering problems in practice.