Skip to contents

Export R objects representing citations to specific file formats:

  • cff_write_bib() creates a .bib file.

  • cff_write_citation() creates an R citation file as described in Section 1.9 of Writing R Extensions (R Core Team 2023).

Usage

cff_write_bib(
  x,
  file = tempfile(fileext = ".bib"),
  append = FALSE,
  verbose = TRUE,
  ascii = FALSE,
  ...
)

cff_write_citation(
  x,
  file = tempfile("CITATION_"),
  append = FALSE,
  verbose = TRUE,
  ...
)

Arguments

x

A bibentry or a cff object.

file

Name of the file to be created. If NULL, the lines are displayed instead.

append

Logical. Should entries be appended to an existing file?

verbose

Logical. Display informative messages.

ascii

Logical. Should entries be written using ASCII characters only?

...

Arguments passed on to as_bibentry.cff, as_bibentry.cff_ref, as_bibentry.cff_ref_lst

what

Fields to extract from a full cff object. The value could be:

  • preferred: Create a single entry with the main citation information of the package (key preferred-citation).

  • references: Extract all entries of the references key.

  • all: Extract both the preferred-citation and references keys.

See vignette("r-cff", package = "cffr").

Value

Writes the corresponding file specified on the file argument.

Details

When x is a cff object, it is converted to BibTeX using toBibtex.cff().

For security reasons, if the file already exists, the function creates a backup copy in the same directory.

References

See also

vignette("bibtex-cff", package = "cffr"), knitr::write_bib() and the following packages:

Other functions for working with BibTeX format: as_bibentry(), cff_read(), cff_read_bib_text(), encoded_utf_to_latex()

Other functions for creating external files: cff_write()

Examples


bib <- bibentry("Misc",
  title = "My title",
  author = "Fran Pérez"
)

my_temp_bib <- tempfile(fileext = ".bib")

cff_write_bib(bib, file = my_temp_bib)
#>  Writing 4 entries ...
#>  Results written to /tmp/RtmpeL55uT/file5d745aa76ba.bib.

cat(readLines(my_temp_bib), sep = "\n")
#> @Misc{,
#>   title = {My title},
#>   author = {Fran Pérez},
#> }

cff_write_bib(bib, file = my_temp_bib, ascii = TRUE, append = TRUE)
#>  Creating a backup of /tmp/RtmpeL55uT/file5d745aa76ba.bib in /tmp/RtmpeL55uT/file5d745aa76ba.bib.bk1.
#>  Writing 4 entries ...
#>  Results written to /tmp/RtmpeL55uT/file5d745aa76ba.bib.

cat(readLines(my_temp_bib), sep = "\n")
#> @Misc{,
#>   title = {My title},
#>   author = {Fran Pérez},
#> }
#> @Misc{,
#>   title = {My title},
#>   author = {Fran P{\'e}rez},
#> }

# Create a CITATION file

# Use a system file
f <- system.file("examples/preferred-citation-book.cff", package = "cffr")
a_cff <- cff_read(f)

out <- file.path(tempdir(), "CITATION")
cff_write_citation(a_cff, file = out)
#>  Writing 1 entry ...
#>  Results written to /tmp/RtmpeL55uT/CITATION.

# Check by reading, use meta object
meta <- packageDescription("cffr")
meta$Encoding <- "UTF-8"

utils::readCitationFile(out, meta)
#> To cite package ‘cffr’ in publications use:
#> 
#>   Bueler E (2021). _PETSc for Partial Differential Equations: Numerical
#>   Solutions in C and Python_. SIAM Press, Philadelphia. ISBN
#>   978111976304. <https://github.com/bueler/p4pdes>.
#> 
#> A BibTeX entry for LaTeX users is
#> 
#>   @Book{bueler:2021,
#>     title = {PETSc for Partial Differential Equations: Numerical Solutions in C and Python},
#>     author = {Ed Bueler},
#>     year = {2021},
#>     publisher = {SIAM Press},
#>     address = {Philadelphia},
#>     isbn = {978111976304},
#>     url = {https://github.com/bueler/p4pdes},
#>   }