Pandoc can automatically generate citations and a bibliography in a number of styles. In order to use this feature, you will need to specify a bibliography file using the
bibliography metadata field in a YAML metadata section. For example:
--- title: "Sample Document" output: html_document bibliography: bibliography.json ---
The bibliography may have any of these formats:
CSL-JSON is the recommended format. This is the native format for Pandoc’s citation processor,
pandoc-citeproc. All other types are internally converted to CSL-JSON.
.bib can generally be used with both BibTeX and BibLaTeX files, but you can use
.bibtex to force BibTeX.
Alternatively you can use a
references field in the document’s YAML metadata. This should include an array of YAML-encoded references, for example:
--- references: - id: fenner2012a title: One-click science marketing author: - family: Fenner given: Martin container-title: Nature Materials volume: 11 URL: 'http://dx.doi.org/10.1038/nmat3283' DOI: 10.1038/nmat3283 issue: 4 publisher: Nature Publishing Group page: 261-263 type: article-journal issued: year: 2012 month: 3 ---
Bibliographies will be placed at the end of the document. Normally, you will want to end your document with an appropriate header:
last paragraph... # References
The bibliography will be inserted after this header.
Citations go inside square brackets and are separated by semicolons. Each citation must have a key, composed of ‘@’ + the citation identifier from the database, and may optionally have a prefix, a locator, and a suffix. Here are some examples:
Blah blah [see @doe99, pp. 33-35; also @smith04, ch. 1]. Blah blah [@doe99, pp. 33-35, 38-39 and *passim*]. Blah blah [@smith04; @doe99].
A minus sign (
-) before the
@ will suppress mention of the author in the citation. This can be useful when the author is already mentioned in the text:
Smith says blah [-@smith04].
You can also write an in-text citation, as follows:
@smith04 says blah. @smith04 [p. 33] says blah.
If you want to include items in the bibliography without actually citing them in the body text, you can define a dummy
nocite metadata field and put the citations there:
--- nocite: | @item1, @item2 ... @item3
In this example, the document will contain a citation for
item3 only, but the bibliography will contain entries for
By default, pandoc will use a Chicago author-date format for citations and references. To use another style, you will need to specify a CSL 1.0 style file in the
csl metadata field. For example:
--- title: "Sample Document" output: html_document bibliography: bibliography.bib csl: biomed-central.csl ---
A primer on creating and modifying CSL styles can be found at http://citationstyles.org/downloads/primer.html. A repository of CSL styles can be found at https://github.com/citation-style-language/styles. See also http://zotero.org/styles for easy browsing.
By default, citations are generated by the utility
pandoc-citeproc, and it works for all output formats. When the output is LaTeX/PDF, you can also use LaTeX packages (e.g.
natbib) to generate citations; see PDF documents for details.