On Thu, 23 Oct 2008, ONKELINX, Thierry wrote:
Dear all,
Is there an elegant way to add citations of packages when using Sweave?
Ideally I'd like a function which creates a Bibtex-file with the
packagenames as keys. The idea is to use \cite{packagename} or \cite{R}
in LaTeX.
I know you can get the Bibtex entry with
toBibtex(citation("packagename")). But after updating R or a package one
needs to update the bib-file too. When trying to automate this I came up
with the code below. It generates a Bibtex-file, but without keys for
each item. So I have to add those manually. Another problem is that I
get multiple entrys for R it self.
Suggestions are welcome.
Thierry,
How 'bout:
cite.by.name <- function(x){
res <- toBibtex(citation(x))
if (is.list(res)) res <- res[[1]]
res[1] <- sub("{",paste("{",x,sep=''),res[1],fixed=TRUE)
res
}
cite.by.name("MASS")
@Book{MASS,
title = {Modern Applied Statistics with S},
author = {W. N. Venables and B. D. Ripley},
publisher = {Springer},
edition = {Fourth},
address = {New York},
year = {2002},
note = {ISBN 0-387-95457-0},
url = {http://www.stats.ox.ac.uk/pub/MASS4},
}
Then
sapply( .packages(TRUE), function(x) try( cite.by.name(x) ) )
should be close to what you want.
HTH,
Chuck
Thierry
sink("Rpackages.bib")
tmp <- sapply(.packages(), function(x){
entry <- toBibtex(citation(x))
if(class(entry) == "Bibtex"){
print(entry)
} else {
tmp <- sapply(entry, print)
}
})
sink()
[snip]
Charles C. Berry (858) 534-2098
Dept of Family/Preventive Medicine
E mailto:[EMAIL PROTECTED] UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.