Markdown解決方案

Markdown解決方案

為了記錄自己的學習歷程以及建立一些筆記,一直在尋求良好Markdown寫作環境,後來還是發覺Visual Studio Code最上手,但還是碰到諸多問題、花了許多時間解決,希望由本文可以幫助到有需要的人

本文主要建置環境為Mac

MARKDOWN寫作用途與需求

  • 因為主力是資料科學相關,所以要可以支援程式碼高亮與數學公式
  • 正確轉成PDF
  • 可以跨平台觀看

問題1:手機裝置不支援latex等數學公式

我找了很久,在ios上幾乎沒有支持latex的markdown閱讀器,byword、1writer都試過了,後來發覺一個妙招

在md文檔前面加入

1
2
3
4
5
<script
type="text/javascript"
src="http://cdn.mathjax.org/
mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

1writer的Preview竟然就可以神奇的顯示數學公式,後來發覺可能是因為有支援html,才可以直接調用Mathjax的函式庫

不用擔心,這些程式碼在Markdown Preview的時候也不會被顯示出來

本人還滿推薦這個app,只要150元,介面也很簡明


問題2:MD轉PDF的困難

有時候不是人人都有MD,還是有要轉成PDF的需求

VSC有一個Markdown PDF的套件可以使用,不過我覺得這個套件對於中文的支援不太好(轉出來不太好看),數學公式的顯示依然失效,會變回原本的

這時候就要出動Pandoc了,這又是神奇的工具,各種文件類型可以透過這個東西互轉,推薦使用homebrew來安裝

1
brew install pandoc

接著還需要安裝Mac上latex的相關套件,有兩個解決方案,一個是Mactex,一個是BasicTex

前者很完整,但是超級肥大(破2G),後者不到100mb,Pandoc官方是建議裝basictex然後再安裝需要的,但是Mactex的官網中Basictex的載點卻死去了,所以再次感恩讚嘆homebrew

1
brew cask install basictex

接著請將basictex的路徑加入環境變數

1
2
# pdftex
export PATH="/Library/TeX/texbin/:$PATH"

問題還沒解決呢!Pandoc建議我們安裝一些必要套件

1
sudo tlmgr install collection-fontsrecommended

好啦,那我們來試著把Markdown轉成PDF吧
先嘗試看看

1
pandoc test.md -o test.pdf

然後就會出現以下訊息

1
2
! Package inputenc Error: Unicode char 解 (U+89E3)
(inputenc) not set up for use with LaTeX.

查很久才發現latex不支持中文,所以要改用xelatex,並且要調用中文字型

1
2
pandoc --pdf-engine=xelatex 
CJKmainfont="STSongti-TC-Light" test.md -o test.pdf

想要加上程式碼區塊的背景,改成這樣即可

1
2
pandoc --pdf-engine=xelatex --highlight-style zenburn
-V CJKmainfont="STSongti-TC-Light" test.md -o test.pdf

調用Mac上的中文字形,這樣就可以正確轉出來了,至於怎麼正確指定字型,可以在字體簿查PostScript 名稱(這個也查超久,天啊)

img

如果報錯說! LaTeX Error: File 'sometihng.sty' not found.

只要就去CTAN找一下他是什麼套件,然後sudo tlmgr install yourpackage就好了,yourpackage是你要裝的套件

但是在vsc如果邊開MD預覽邊用中文打,可能會有一點小bug,會出現奇怪的空白字元導致pdf沒有辦法轉

到vsc設定改"editor.renderControlCharacters": true 這樣奇怪的字元會直接顯示出來,把它刪掉即可


VCS快速轉PDF

如果只有一般需求的話,那VSC裡面的Markdown PDF就可以快速完成MD轉pdf的工作,但是我們辛辛苦苦建立的pandoc,也是可以用在VSC裡面

vs-pandoc可以讓我們很方便的在VSC利用pandoc轉檔,裝好插件之後到使用者設定更改我們要的參數

1
2
"pandoc.pdfOptString":"--pdf-engine=xelatex --highlight-style tango
-V CJKmainfont=STSongti-TC-Light"

就跟剛剛的設定差不多,這樣VSC會自動調用這些設定來幫你轉檔,然後只要按cmd + shift + P然後打pandoc,出現pandoc render 選PDF就可以輕鬆轉成PDF

公式另外的解決方案

只要在這個API打上latex公式,會自動幫你生成公式的png,超棒的!

1
http://latex.codecogs.com/gif.latex?x=1

or google chart

1
http://chart.apis.google.com/chart?cht=tx&chl=m_0c^2

就像這樣

eq

eq

總結

連假搞了那麼久,終於搞好了
如果不想搞得這麼囉哩八唆,那typora也是很棒的選擇

如果我的文章有幫到你的話,歡迎用街口支付給我一些鼓勵