Provides the ability to create dynamic citations in which the bibliographic information is pulled from the web rather than having to be entered into a local database such as 'bibtex' ahead of time. The package is primarily aimed at authoring in the R 'markdown' format, and can provide outputs for web-based authoring such as linked text for inline citations. Cite using a 'DOI', URL, or 'bibtex' file key. See the package URL for details.
knitcitations is an R package designed to add dynamic citations to dynamic documents created with Yihui's knitr package.
Install the development version directly from Github
Or install the current release from your CRAN mirror with
Start by loading the library. It is usually good to also clear the bibliographic environment after loading the library, in case any citations are already stored there:
Set pandoc as the default format:
options("citation_format" = "pandoc")
(Note: The old method will eventually be depricated. For documents using
knitcitations <= 0.5 it will become necessary to set this as
Cite an article by DOI and the full citation information is gathered automatically. By default this now generates a citation in pandoc-flavored-markdown format. We use the inline command
citep("10.1890/11-0011.1") to create this citation [@Abrams_2012].
An in-text citation is generated with
citet, such as
citet("10.1098/rspb.2013.1372") creating the citation to @Boettiger_2013.
Not all the literature we may wish to cite includes DOIs, such as arXiv preprints, Wikipedia pages, or other academic blogs. Even when a DOI is present it is not always trivial to locate. With version 0.4-0,
knitcitations can produce citations given any URL using the Greycite API. For instance, we can use the call
citep("http://knowledgeblog.org/greycite") to generate the citation to the Greycite tool [@greycite2739].
We can also use
bibentry objects such as R provides for citing packages (using R's
citep(citation("knitr") produces [@Xie_2014; @Xie_2013; @Xie_2014a]. Note that this package includes citations to three objects, and pandoc correctly avoids duplicating the author names. In pandoc mode, we can still use traditional pandoc-markdown citations like
@Boettiger2013 which will render as @Boettiger2013 without any R code, provided the citation is already in the
.bib file we name (see below).
When the citation is called, a key in the format
FirstAuthorsLastName_Year is automatically created for this citation, so we can now continue to cite this article without remembering the DOI, using the command
citep("Abrams_2012") creates the citation [@Abrams_2012] without mistaking it for a new article.
At the end of the document, include a chunk containing the command:
Use the chunk options
message=FALSE to hide the chunk command and output.
This creates a Bibtex file with the name given. Pandoc can then be used to compile the markdown into HTML, MS Word, LaTeX, PDF, or many other formats, each with the desired journal styling. Pandoc is now integrated with RStudio through the rmarkdown package. Pandoc appends these references to the end of the markdown document automatically. In this example, we have added a yaml header to our Rmd file which indicates the name of the bib file being used, and the optional link to a CSL stylesheet which formats the output for the ESA journals:
---bibliography: "references.bib"csl: "ecology.csl"output:html_document---
rmarkdown::render("tutorial.Rmd") from R on the tutorial compiles the output markdown, with references in the format of the ESA journals.
For more fine-grained list of changes or to report a bug, consult
Releases will be numbered with the following semantic versioning format:
And constructed with the following guidelines:
For more information on SemVer, please visit http://semver.org/.
rmarkdownand pandoc (see #67)
cite_optionsthat was causing many options to be ignored. (See #63)
This version is a ground-up rewrite of knitcitations, providing a more powerful interface while also streamlining the back end, mostly by relying more on external libraries for knitty gritty. While an effort has been made to preserve the most common uses, some lesser-used functions or function arguments have been significantly altered or removed. Bug reports greatly appreciated.
citep now accept more options. In addition to the four previously supported options (DOI, URL, bibentry or bibkey (of a previously cited work)), these now accept a plain text query (used in a CrossRef Search), or a path to a PDF file (which attempts metadata extraction).
Citation key generation is now handled internally, and cannot be configured just by providing a named argument to
cite function is replaced by
bib_metadata. This function takes any argument to
citep as before (including the new arguments), see docs.
Linked inline citations now use the configuration: cite_options(style="markdown", hyperlink="to.doc") provides a link to the DOI or URL of the document, using markdown format.
Support for cito and tooltip have been removed. These may be restored at a later date. (The earlier implementation did not appropriately abstract the use of these features from the style/formatting of printing the citation, making generalization hard.
bibliography now includes CSL support directly for entries with a DOI using the
style= argument. No need to provide a CSL file itself, just the name of the journal (or rather, the name of the corresponding csl file: full journal name, all lower case, spaces as dashes). See https://github.com/cboettig/knitcitations/issues/38
bibliography formatting has otherwise been completely rewritten, and no longer uses print_markdown, print_html, and print_rdfa methods. rdfa is no longer available, and other formats are controlled through cite_options. For formal publication pandoc mode is recommended instead of
citepmethod (caused by missing
.Rmdfiles remain as before, importing citation data on the fly with
citettaking DOIs, URLs, or bibentries as arguments, but render in pandoc's markdown. The citations used are written to a bibtex file and the user must use pandoc (either directly or through RStudio's rmarkdown) to format the citations appropriately. See the updated vignette & README. This method has to be enabled with
options(citation_format = "pandoc")at present, otherwise compatibility mode is enabled by default. (see #57)
citet(see issue #32)
bib_formatmethod to change order of citation elements in reference list
linked=FALSEto the calls to
cite_options, to toggle certain settings such as tooltips, linked inline text,
citeis now exported to the namespace. Useful to return a bibentry object given a DOI or URL.
bibliographycan print with method 'rdfa' to provide RDFa enhanced HTML bibliography data, and citations can take cito arguments as an option. (Closes issues #16 and #17)
bibliographynow takes more options to match the
citeptake an optional argument for formating the citation, defaulting to
authoryearformat. Future versions may move this into an option.
newbib()function initializes and clears existing cache files.
options("bibtex_data" = TRUE).
print(bibliography, "html"), one can simply call
bibliography("html"). Sort is still an option, other options that were for internal use (
remove_duplicates) are removed as they are no longer necessary.
bibliography()now takes style as an option (html, text, bibtex output)