如何用Markdown寫論文?

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

如何用Markdown寫論文?

苦惱

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

如何用Markdown寫論文?

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

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

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

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

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

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

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

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

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

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

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

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

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

方案

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

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

如何用Markdown寫論文?

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

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

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

環境

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

  • Python 運行環境;

  • Pandoc;

  • 樣例文件夾。

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

Python環境

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

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

如何用Markdown寫論文?

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

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

如何用Markdown寫論文?

Pandoc

請到這個網址下載Pandoc。

如何用Markdown寫論文?

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

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

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

pip install pandoc-fignos

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

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

如何用Markdown寫論文?

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

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

安裝方法如下:

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

如何用Markdown寫論文?

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

如何用Markdown寫論文?

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

很快,插件安裝好了。

如何用Markdown寫論文?

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

樣例文件夾

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

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

如何用Markdown寫論文?

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

基礎版本

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

如何用Markdown寫論文?

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

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

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

pandoc demo.md -o demo.docx

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

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

如何用Markdown寫論文?

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

數學公式

我們嘗試插入數學公式。

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

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

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

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

如何用Markdown寫論文?

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

回到終端下執行:

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

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

如何用Markdown寫論文?

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

腳註

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

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

如何用Markdown寫論文?

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

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

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

如何用Markdown寫論文?

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

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

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

如何用Markdown寫論文?

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

文獻引用

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

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

如何用Markdown寫論文?

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

如何用Markdown寫論文?

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

如何用Markdown寫論文?

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

如何用Markdown寫論文?

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

如何用Markdown寫論文?

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

如何用Markdown寫論文?

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

如何用Markdown寫論文?

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

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

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

如何用Markdown寫論文?

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

打開demo-citation.md。

如何用Markdown寫論文?

引用的時候,我們使用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,看看效果。

如何用Markdown寫論文?

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

參考文獻列表呢?

我們翻動頁面到文末。

如何用Markdown寫論文?

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

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

圖片引用

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

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

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

如何用Markdown寫論文?

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

引用的時候,採用

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

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

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

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

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

如何用Markdown寫論文?

我們執行以下的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裡面,圖片自動加上了編號。

如何用Markdown寫論文?

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

如何用Markdown寫論文?

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

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

小結

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

  • 數學公式;

  • 腳註;

  • 文獻引用;

  • 圖片引用。

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

如何用Markdown寫論文?

是不是很有成就感呢?

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

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

討論

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

如果你對我的文章感興趣,歡迎點贊,並且關注我的專欄,以便收到後續作品更新通知。

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


分享到:


相關文章: