Open SamBuckman opened 3 years ago
knitr::write_bib
appears to get a citation for the package derived from the DESCRIPTION file + use any citations from an optional CITATION file
whereas write.bib
here does not generate the @Manual
citation since if there's a CITATION file in the package, then utils::citation
only gets the citation in that file
Wonder if bibtex
should change to follow what knitr::write_bib
does or not
One option would be to give bibtex::write.bib()
an additional argument ...
and pass that to
bibs <- sapply(pkgs, function(x) try(citation(x, ...)), simplify = FALSE)
Then you can do
bibtex::write.bib("testthat", auto = TRUE)
which generates the "auto" citation from the DESCRIPTION file
@Manual{testthat,
title = {testthat: Unit Testing for R},
author = {Hadley Wickham},
year = {2021},
note = {R package version 3.0.4},
url = {https://CRAN.R-project.org/package=testthat},
}
Some of the packages in R have multiple citations associated with them. For example
knitr::write_bib("testthat")
returns@Manual{R-testthat, title = {testthat: Unit Testing for R}, author = {Hadley Wickham}, year = {2021}, note = {R package version 3.0.2}, url = {https://CRAN.R-project.org/package=testthat}, }
@Article{testthat2011, author = {Hadley Wickham}, title = {testthat: Get Started with Testing}, journal = {The R Journal}, year = {2011}, volume = {3}, pages = {5--10}, url = {https://journal.r-project.org/archive/2011-1/RJournal_2011-1_Wickham.pdf}, }
The first one is the citation for the package, so it's the one I want. But
bibtex::write.bib("testthat")
gives the second one, and doesn't warn that it's doing it.