Skip to main content

Using Pandoc for Doing Citation and Bibliography in Markdown

Markdown is a simple formatting syntax that allows you to do common formatting with ease. Pandoc is a feature rich interpreter that helps you convert documents from one format to anther. If you are writing homework, research papers, or anything that needs citation and a bibliography, you can totally use Markdown and Pandoc to achieve that.

Below is a set of instructions that you can follow to generate a document with in-text citation and bibliography.

First, install Pandoc and the extension for creating citation (pandoc-citeproc). 


There are several ways to install Pandoc, you can choose one of them recommended on the official website. On Mac, one way is to install Homebrew, a package manager, and then use Homebrew to install Pandoc and the extension. For Windows users, please refer the official website on how to install Pandooc and extension.

Here I will show how to install Pandoc and the extension for citation through Homebrew.

After installing homebrew, you can execute the following commands in your terminal to install Pandoc and the extension.

brew install pandoc
brew install pandoc-citeproc

Second, prepare the following three files and put them in the same folder.

1. Your writing in Markdown syntax (.md).


writeup.md

2. The desirable citation style definition (.csl).


There are multiple citation styles that are used by people from various disciplines. For instance, APA is a common style recommended by the American Psychological Association (APA). You can choose APA if you do not have a preference as it is one of the most popular citation styles. You don't need to write the citation style definition by yourself, as you are very likely to find the style provided by some of the popular citation managers. For instance, Zotero provides a repository of citation styles that you can download.

writeup.csl

3. The references (e.g., .bib).


This is the file that you list all the information for the references. One of the common formats is the .bib (BibTex) format, which you can download it from Google Scholar when you find a reference. Each entry in the .bib file will look similar to the following one.


@misc{this_is_the_article_id,
...
}

Pandoc supports different formats. Here I will use .bib (BibTex) format to demonstrate how to create a bibliography.

writeup.bib

Third, insert in-text citation. 


Here is an example of how to do it. For a BibTex entry that looks like the above example, you can insert in-text citation by inserting the article_id preceded with an @ and then surround it in square brackets. For instance,


I will cite right here [@this_is_the_article_id].

Lastly, generate the output document with in-text citation and bibliography.


After you finished doing all the in-text citation, you can type the following command to generate the resulting document with in-text citations and the bibliography.


pandoc writeup.md --filter pandoc-citeproc 
--csl=writeup.csl --bibliography=writeup.bib -o writeup.pdf

That's it! You can then find your output document with in-text citation and bibliography at the end of the writeup.pdf file.

If you want the output in some other format (e.g., docx) instead of pdf, just change the file extension and Pandoc will do it for you (if suppored).

Hope this help!

Comments

Popular posts from this blog

Setting MySQL to Use UTF-8 on MAMP (MySQL 5.5.9, or 5+)

I wanted to setup MySQL to use utf-8 on the MAMP installation on my Mac. I tried the instructions from this article: http://cameronyule.com/2008/07/configuring-mysql-to-use-utf-8/ However, I kept getting error messages that are similar to this one [ERROR] /Applications/MAMP/Library/bin/mysqld: unknown variable 'default-collation=utf8_general_ci' I did some search and realized that several variables are deprecated. Reference: http://dev.mysql.com/doc/refman/5.1/en/server-options.html Therefore, I added the following lines into /Applications/MAMP/conf/my.cnf [mysql] character-set-server=utf8 [client] character-set-server=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci init-connect='SET NAMES utf8' I restarted the server and mysql run successfully with relevant variables being set correctly. In the "Variables" tab under phpMyAdmin interface (ex. http://localhost:8888/MAMP/?language=English) character set c...

ngrok, a service to help you get a public URL for your local webserver

If you are looking for options to test your web app hosted on your own machine (e.g., laptop) remotely with someone, I recommend using a service called ngrok. https://ngrok.com/ It has many usages, but in the context of testing an app hosted on your own machine, the most important part is giving you a public URL that will redirect all the requests to your local webserver (e.g., Apache, Nginx, or whatever server you are running). You can give this URL to a testing participant without the need to host the app on a remote server. For instance, if you are testing your app using a sever on your machine, typically you can access your app in a URL like:  http://localhost:3000/?study=11 Using ngrok, you will have a dynamically generated URL like the following: https://3ebe3c019867.ngrok.io/ The service will redirect requests to https://3ebe3c019867.ngrok.io to http://localhost:3000 You can then share the following link with your testing participant for the participant to use your app. http...

線上筆記本、便利貼整理 Online Note Taking Service (Especially Sticky Note) List

Some of the note taking service I have tried! Sticky Note lino it Comment: 精美、除了沒有辦法 download as file + print  之外,應該是這個  list  中的  best choice 中文資料儲存沒有問題,不會變亂碼 無法 double click create note, 但是可以用拖拉方式產生 可以 share, send link, embed, rss, 可用 email post, 無法存檔 無法 double click to edit,但是跳出視窗的速度還 OK、可直接 drag & drop 有 public(group) vs. private 的設定 不能 print(應該說 print 的時候內容不會出現) 有 Task 功能 無法download as file (應該沒有可以的) squareleaf Comment: 比較不  fancy  ,但是簡單可愛 中文資料儲存沒有問題,不會變亂碼 可用 browser print, 但是排版沒有很好 可直接點選編輯(不用等跳出小視窗後再 input) 無法在空白地方 double click 產生新 Note 無法 share, 無法download as file postica Comment: 精簡,稍微制式 中文資料儲存沒有問題,不會變亂碼 點選編輯的時候很慢,反應遲鈍 可以 Print, 但是中文編碼要選 UTF-8 可以 drag & drop 無法 download as file, 無法 share wall wisher Comment: 精美 中文儲存有問題 雙擊 create note, 可以拖拉 每個 note 有 160 character 的限制 文字沒有 Format,無法調整大小, 顏色 可 share, send link, rss fee...