2013年9月25日 星期三

在文件中放入程式碼 --- minted 套件庫

之前寫過 在文件中放入程式碼(1)(2)(3)(4), 這篇也是要介紹在文件中放程式碼,但不像前四篇文章,全部都是使用 listings 套件庫,這裡要介紹的是使用 minted 套件庫。

使用 minted 套件庫,最大的優點就是可以排出顏色層次比 listings 套件庫還豐富的樣式。例如一段 C++ 語言的程式碼,下圖就可以明顯看出差異。

使用 minted 與 listings 套件庫編排同一程式碼
不過好看的背後,還是需要一點代價,也就是安裝步驟會稍微麻煩一點。

根據 minted 的套件說明文件,這個套件庫必須使用 Python 的一個程式, 稱作 Pygments。因此, 電腦內需要有至少 Python 2.6 版, 以及 Pygments 這個程式才能用 minted.

在 Ubuntu 下安裝很容易, 只要開啟終端機,輸入以下安裝指令:
 $ sudo apt-get install python-pygments 
這樣就裝完 Pygments 這個程式了。

至於 Windows 下該如何安裝,我就真的沒研究了,有興趣的人請直接看 minted 套件說明文件。(使用 Win 7 的人,也要注意文件中的 Known Issue)

安裝好之後,如果是撰寫 .tex 文件,編譯時的命令,需要多加個 -shell-escape 讓 latex 可以執行 Python 的程式,因此命令為:
$ latex -shell-escape filename.tex

但如果是 LyX 文件的話,這時候就需要修改一下編譯程式的設定值後,才能夠正確編譯。

開啟 LyX 之後,選 Tools > Preferences... 跳出一個如下圖的視窗。先在左側選到 File Handling, 接著在右側的 Converter Definitions 裡挑選到 LaTeX (pdflatex) -> PDF (pdflatex)。
再下方 Converter: 的文字框中,多加個 -shell-escape, 再按 Modify 確認修改。
接著就可以按 Apply,或是按 Save 永久存下。


至於 minted 套件庫的使用方法,可以直接參考說明文件,裡面都有很詳細的解說。自己試一下後,就會發現這個套件庫似乎比 listings 還容易使用了。

最後,當然還是要說一下目前發現到 minted 的缺點,就是程式碼中無法加入中文註解。就算設定了 texcl=true, 還是無法處理 CJK 的中文文件。文件中說,可以使用 XeLaTeX,不過我沒有測試, 所以下次真有需要再測試。

minted 套件測試檔案: minted_demo.zip


沒有留言:

張貼留言