如何用 Markdown 寫論文

03-10

本文用簡明的樣例,介紹如何使用 Markdown 和自動化工具幫你處理數學公式、參考文獻引用、圖片交叉索引等學術論文寫作中常見的棘手問題。快來試試吧。

苦惱

自從我學會瞭如何在數字文檔上用紅筆寫寫畫畫,跟學生合寫文章和指導畢業論文的工作就變得輕松多瞭。

有的部分,學生會很快改完反饋給我。但是我發現每次對引言和文獻綜述部分做出調整要求,學生們的反饋都非常慢。

有的時候,學生甚至會求饒,「老師,參考文獻順序能不能不動?或者全文都確定下來再統一做?每次調整一個,就需要很長時間!」

我一時驚愕,為什麼需要那麼久?

後來才明白,他們居然是在 Word 中一條條手動插入尾註,來引用參考文獻的。尾註的內容有的直接搬過來,有的手動輸入,結果參考文獻列表的格式「豐富多彩」——有的信息不全,有的格式根本就不符合 GB/T 7714-2015 的規范。

在我的幫助下,許多學生學會瞭使用 NoteExpress、Endnote、Zotero 和 Mendeley 等工具,用自動化方式管理和引用參考文獻。

但即便是這樣,效率依然不夠高。尤其是跟別人協作的時候,參考文獻引用的修改就成瞭噩夢。

你可能需要每次都把 Mendeley 或者 Zotero 的文獻庫同步給對方,否則自動生成的引用標記就容易亂掉。

寫作學術論文時,你還不得不時常面對圖表交叉引用、數學公式和腳註等問題。如果方法不當,會把寶貴的時間和註意力耗散掉,勞而無功。

Word 編輯器用來寫學術論文,可能真的並不是最優方案。

但是沒辦法,國內學術界,尤其是人文社科領域,目前投稿模板還主要是 Word 的。

好消息是,即便是形成 Word 文稿,效率也是可挖掘的。

我平時寫作學術論文的時候,用的依然是讓人喜歡的標記語言—— Markdown。對,你沒聽錯,它不光可以幫你寫公眾號、做幻燈,也可以寫論文哦。

通過本文,我把自己用 Markdown 寫作學術論文的流程分享給你。希望看過之後,能幫助你提升效率,帶來更多愉悅的寫作體驗。

方案

我的方案,是采用 Markdown 來寫作內容。然後用文檔格式處理界的瑞士軍刀 Pandoc,把內容轉換成 Word 格式。

Pandoc 實在是黑科技。我曾經用它給你演示瞭 如何把思維導圖秒變成幻燈。還記得其中這張圖嗎?

圖中每一個節點,都是 Pandoc 支持的一種文檔格式。Markdown、Docx、PDF、LaTeX、ePub、HTML …… 基本上涵蓋瞭我們常見的發佈格式需求。

一次寫作,多種格式發佈。聽起來是不是很興奮呢?

要使用這一方案,我們需要安裝一些必要的工具。這就開始吧。

環境

我們需要安裝以下幾樣東西:

Python 運行環境;

Pandoc;

Atom 編輯器;

樣例文件夾。

下面我們一一介紹安裝方法和註意事項。

Python 環境

我們的演示中,需要用到 pip 等 Python 環境工具。最簡便的方法是安裝 Anaconda 套裝,這樣就不必對各種組件一一手動調整安裝瞭。

請到 這個網址 下載最新版的 Anaconda。下拉頁面,找到下載位置。根據你目前使用的系統,網站會自動推薦給你適合的版本下載。我使用的是 macOS,下載文件格式為 pkg。

下載頁面區左側是 Python 3.6 版,右側是 2.7 版。請選擇 2.7 版本。

雙擊下載後的 pkg 文件,根據中文提示一步步安裝即可。

Pandoc

請到 這個網址 下載 Pandoc。

根據你的操作系統,下載對應的版本。我在 macOS 下,需要下載其中的 pkg 擴展名安裝包,雙擊安裝。

為瞭處理圖形的交叉引用,我們需要添加一個 pandoc 插件。

在終端(macOS, Linux)或者命令行(Windows)下,執行:

pip install pandoc-fignos

正常安裝後,pandoc 就算準備好瞭。

Atom 編輯器

請到 這個地址 下載 Atom 編輯器。網站會根據你的操作系統,自動找到對應的版本供你下載。

因為我用的是 macOS,所以這裡網站提供的是蘋果版本 Atom。

下載之後,安裝運行。然後你需要安裝 1 個插件,幫你預覽 Markdown,叫做 markdown-preview-enhanced。

安裝方法如下:

使用 Cmd + , 呼叫配置菜單。註意我這裡說的是蘋果系統 macOS 上的操作。如果你用的是 Windows,請把所有出現的 Cmd 按鍵替換為 Ctrl 按鍵,或者查閱幫助文檔。

選擇左側邊欄的最後一項 + 號,用於安裝新的插件。

在搜索框中輸入該插件的名字:markdown-preview-enhanced,點擊搜索結果中該插件的 Install 按鈕。

很快,插件安裝好瞭。

這樣,我們就可以實時查看 Markdown 的預覽效果瞭。

樣例文件夾

我專門為這篇教程,準備瞭一個 github 項目。

請從 這個位置,下載壓縮包,之後解壓。

把其中的 demo.md 文件拖動到 Atom 編輯器中,就可以正式開始我們的探索之旅瞭。

基礎版本

Atom 編輯器裡,demo.md 文件顯示如下。

左側是 Markdown 源代碼,對應的預覽效果在右側顯示。

這裡我們隻包含瞭最簡單的文本和圖片。圖片在我們剛剛下載文件夾的 /assets 子目錄中。

到終端下,采用 cd 命令進入咱們的演示文件夾(我的在 ~/Downloads/demo-scholar-markdown-docx-master),執行:

pandoc demo.md -o demo.docx

可以看到,當前文件夾下,生成瞭 demo.docx 文件。

打開 Word 文件,內容是這樣的:

基礎版本的格式轉換,就是這麼簡單。下面我們就要添加一些內容,讓文稿變得愈加有學術色彩。

數學公式

我們嘗試插入數學公式。

在 Markdown 下,可以直接使用 LaTeX 數學公式。你隻需要負責鍵入符號,Pandoc 負責將其轉換成漂亮的公式顯示在 Word 中。

如果你對 LaTeX 數學公式的輸入不是很熟悉,不要緊,這裡有個小抄(cheatsheet),你可以參考。

我們打開 demo-math.md,可以看到這次除瞭剛剛的內容,還增加瞭一個新的部分,叫做「數學公式」。

內含一個經典物理學公式,還有相應的變量解釋。

在右側預覽區裡面,我們看到瞭公式預覽的效果。

回到終端下執行:

pandoc demo-math.md -o demo-math.docx

這次生成的 docx 文件如下圖所示:

轉換後的 word 文件裡,不論是獨立公式,還是行內數學符號,都顯示正常。

腳註

寫學術論文的時候,經常需要加入腳註。例如在首頁需要添加作者和基金支持信息之類。咱們也嘗試在本部分加入對應內容。

打開 demo-footnote.md,對比一下添加瞭哪些信息。

腳註用 [ ^1 ] 來表示。內容用同樣的符號,後接冒號,然後填寫具體信息。

這次的預覽中,我們看到瞭腳註的標註,但是腳註內容哪兒去瞭?

別擔心,拖拽右側的預覽窗口,我們就能看到腳註瞭。

但是轉換成 word 後,這腳註還在第一頁嗎?

我們到終端下,執行 pandoc 命令:

pandoc demo-footnote.md -o demo-footnote.docx

腳註如同我們需要的那樣,顯示在瞭首頁底部。本部分測試成功。

文獻引用

下面我們進入關鍵階段——文獻引用瞭。

我們打開百度學術,找幾篇跟大數據特性相關的文獻。

鍵入檢索主題詞「大數據 +3V+5V」,搜索後的結果如下:

點開第一篇,我們看看內容。

頁面下方有全文鏈接,我們選擇知網。

點擊 PDF 下載,查看全文。其中包含以下內容,跟咱們這篇文稿的主題相關。

我們決定引用這篇參考文獻。

回到百度學術的頁面,點擊引用按鈕。

在彈出頁面中,點擊下方藍色的「BibTex」。

如上圖所示,該文獻的 Bibtex 信息就是這樣的一段文本。我們將其拷貝下來,存儲到 .bib 文件裡。

依此類推,我們再下載其他兩份文獻的 Bibtex 信息。

你可以打開演示目錄內的 myref.bib 文件查看,內容如下圖所示:

下面我們就要引用這些文獻瞭。

打開 demo-citation.md。

引用的時候,我們使用 Bibtex 中每條文獻信息大括號內的第一個字段,前面加上 @ 符號,用方括號擴起來。需要引用多條文獻的時候,在方括號內,對不同文獻標記用分號區隔。

我們很容易就發現,參考文獻的預覽信息是不正確的。

下面我們看看 Pandoc 能否幫助我們將其轉換成為正確的 Word 內容。

註意這次需要使用的參數比較多。因為我們不光需要指定參考文獻的格式,還得告訴 Pandoc,參考文獻數據存儲在瞭哪裡(myref.bib)。

pandoc --filter pandoc-citeproc --bibliography=myref.bib --csl=chinese-gb7714-2005-numeric.csl demo-citation.md -o demo-citation.docx

打開轉換後的 word,看看效果。

Pandoc 正確地幫我們把文獻的引用標記信息轉換成為瞭上角標,根據出現的順序自動編排序號。對於多個文獻的引用情況,也做瞭對應的處理。

參考文獻列表呢?

我們翻動頁面到文末。

參考文獻列表已經根據 GB/T 7714-2015 的規范自動生成。

將來無論是對文獻引用作增刪、移動、修改,都可以通過執行上面的一條命令自動更新。非常方便。

圖片引用

寫作長篇學術論文(例如畢業論文)時,圖片可能會有很多。引用起來如果手動編號,將來插入新的圖片,就得手動重排許多後續內容,很麻煩。

下面我們嘗試在 Markdown 裡插入圖片標題,並且在文中作交叉引用。

請打開 demo-figref.md,內容如下:

註意這裡圖片使用時,加入瞭一些新的信息。前面的方括號裡面,加上瞭圖標題;後面的大括號,使用 #fig:id 的方式,加入瞭圖的標記。

引用的時候,采用 {@fig:id} 的方式,分別引用每個圖形。

註意右側的預覽區,圖標記都是原封不動顯示的。

為瞭能夠讓圖片引用的時候使用「圖」,而不是「Figure」,我們在文件首部插入 4 行內容:

--- fignos-cleveref: On fignos-plus-name: 圖 …

預覽中,這部分也出現在瞭文章首部,很難看。

我們執行以下的 pandoc 命令,註意此次加入瞭圖片引用處理要求。

pandoc --filter pandoc-fignos --filter pandoc-citeproc --bibliography=myref.bib --csl=chinese-gb7714-2005-numeric.csl demo-figref.md -o demo-figref.docx

這次生成的 Word 裡面,圖片自動加上瞭編號。

第二張圖,序號也符合我們的預期。

註意,目前這個圖片自動編號的功能對於中文支持還有些問題。例如標題中依然顯示為「Figure」,而非我們想要的「圖」。不過我們隻需要調整替換圖標題即可,所有的引用都是正常的。

如果你的學術論文裡面有數十或上百張圖片,你會立即體會到這種引用方式的好處。

小結

本文我們用一個最小化的樣例,介紹瞭如何在學術論文寫作時,利用 Markdown 和 Pandoc 處理以下格式信息:

數學公式;

腳註;

文獻引用;

圖片引用。

此時再來看我們生成的 Word 文稿,已經變成瞭這個樣子:

是不是很有成就感呢?

舉一反三,你也�可以把這些技巧和方法應用於其他學術文稿的寫作中,它們包括而不限於開題報告、結項報告,甚至是科研項目申請書。

希望這些展示,能對你寫作學術文稿效率的提升,起到促進作用。

討論

你平時經常寫學術論文嗎?用的是什麼工具?效率如何?除瞭本文介紹的方法外,有沒有更好的工具和流程推薦給大傢?歡迎留言,分享你的思考和經驗,我們一起交流討論。

如果你對我的文章感興趣,歡迎點贊,並且微信關註和置頂我的公眾號「玉樹芝蘭」 ( nkwangshuyi ) 。

如果本文可能對你身邊的親友有幫助,也歡迎你把本文通過微博或朋友圈分享給他們。讓他們一起參與到我們的討論中來。

少數派,匯聚數字時代願意思考的人。

精彩圖片
文章評論 相關閱讀
© 2016 看看新聞 http://www.kankannews.cc/