Provides tools for importing and working with bibliographic references. It greatly enhances the 'bibentry' class by providing a class 'BibEntry' which stores 'BibTeX' and 'BibLaTeX' references, supports 'UTF-8' encoding, and can be easily searched by any field, by date ranges, and by various formats for name lists (author by last names, translator by full names, etc.). Entries can be updated, combined, sorted, printed in a number of styles, and exported. 'BibTeX' and 'BibLaTeX' '.bib' files can be read into 'R' and converted to 'BibEntry' objects. Interfaces to 'NCBI Entrez', 'CrossRef', and 'Zotero' are provided for importing references and references can be created from locally stored 'PDF' files using 'Poppler'. Includes functions for citing and generating a bibliography with hyperlinks for documents prepared with 'RMarkdown' or 'RHTML'.
RefManageR
provides tools for importing and working with
bibliographic references. It greatly enhances the bibentry
class by
providing a class BibEntry
which stores BibTeX
and BibLaTeX
references,
supports UTF-8
encoding, and can be easily searched by any field, by date
ranges, and by various formats for name lists (author by last names,
translator by full names, etc.). Entries can be updated, combined, sorted,
printed in a number of styles, and exported. BibTeX
and BibLaTeX
.bib
files
can be read into R
and converted to BibEntry
objects. Interfaces to
NCBI Entrez
, CrossRef
, and Zotero
are provided for importing references and
references can be created from locally stored PDF
files using Poppler
. Includes
functions for citing and generating a bibliography with hyperlinks for
documents prepared with RMarkdown
or RHTML
.
Please see the vignette for an introduction and NEWS for the latest changes.
To install the latest version from GitHub
:
install.packages("devtools")
devtools::install_github("ropensci/RefManageR")
NEW FEATURES
+.BibEntry
and merge.BibEntry
gain an argument ignore.case,
which defaults to BibOptions()$ignore.case
(TRUE
) so that case is
ignore when checking for duplicate fields (h/t Justin Calabrese #47)BibOptions()$check.entries == "warn"
(h/t Justin
Calabrese #48)BUG FIXES
ReadBib
PrintBibliography
gains parameters "start" and "end"
to allow for printing only a subset of all cited entries from
a BibEntry object (h/t Joseph Casillas #45, #46)BUG FIXES
GetDOIs
to use httpsReadPDFs
BUG FIXES
WriteBib
(h/t Stephane Plaisance)ReadBib
won't add an attribute "strings" if there
are none present in read bib file (h/t Stephane Plaisance)BUG FIXES
ReadCrossRef
(h/t Ben Raymond)NEW FEATURES
BUG FIXES
GetBibEntryWithDOI
is now decoded properlyBibEntry
objectsNEW FEATURES
BUG FIXES
BibOptions(style = 'yaml)
c.BibEntry
throws an error if not all objects are bibentry
objectsBUG FIXES
BUG FIXES
LaTeX
macros added in package version 0.12.0 can only be used
for R 3.3.z and higher; this corrects cause of failed checks on R 3.2.zBUG FIXES
ReadPubMed
, GetPubMedByID
, etc.
to use https as now required by NCBI (h/t Dale Steele and Anthony Crane)ReadPubMed
is updated to reflect that the default number of
entries returned (controlled by the argument retmax
) is 20 (h/t Dale Steele)NEW FEATURES
LaTeX
macros unknown to R are now defined as macros in the package, and will
be parsed using macros
arg in tools::parse_Rd
(assuming getRversion() >= "3.2.0"
Note: corrected in 0.13.1 to be getRversion() >= "3.3.0"
)BUG FIXES
LaTeX
macro \textquotesingle
in author names (h/t Bill Denney)NEW FEATURES
ReadCrossRef
now uses the newer CrossRef API and gains arguments
filter
and offset
to use with the new API; an
additional argument use.old.api
is added if the user wishes to use the old API
(h/t Carl Boettiger)ReadCrossRef
now parses the results returned by CrossRef to
create the BibEntry
object when using the new API; for the old API (and hence, older
versions of the package) the query only returns DOIs and ReadCrossRef
would then
use the DOIs to request the corresponding BibTeX entries from CrossRef (i.e. less
HTTP requests when using the new API)BUG FIXES
tools::latexToUtf8
(PR#17138) that
is occasionally encountered when that function processes an unknown
macro (h/t Eric Bryant)BibOptions()$check.entries
is not set to "error" (default is "error")BUG FIXES
BUG FIXES
ReadPDFs
due to changed URL (h/t Kurt Hornik)as.data.frame.BibEntry
works for length one BibEntry with multiple
authors (h/t Dale Steele)httr::GET
to fix ReadGS
test-authors.R
owing to changes to person
classReadCrossRef
tests and error messageBibEntry
are
now properly parsed when specified as they would be in BibTeX/BibLaTeX;
e.g. author = "Smith, Bob A. and Doe, Jane"
.BibEntry
objects is now always enforced to be uniqueas.data.frame.BibEntry
is faster and now works if duplicate keys are
present; keys in (h/t Dale Steele)ReadCrossRef
if downloaded BibTeX had leading whitespace (h/t Carl
Boettiger)useBytes = TRUE
used for all calls to grep
, sub
, etc. (h/t HI&RH Lord Ripley of England)lubridate::new_interval
bibtex >= 0.4.0.9000
function do_read_bib
to avoid .External
call and
R check
note (request of HI&RH Lord Ripley of England)NEW FEATURES
ReadPDFs
Cite
family of functions can now be pandoc
style, e.g. [@abibkey]
by setting BibOptions(cite.style = "pandoc")
(h/t Dale Steele)ReadBib
help
page (h/t Dieter Menne)BUG FIXES
BibEntry
objects by multiple fields when no duplicatesopen.BibEntry
fixed to not use partial matching of field names; e.g. an error would occur if the
specified entry had a 'urldate' field, but no 'url' fieldopen.BibEntry
will message
and not throw error if entry cannot be openedReadPDFs
when argument use.metadata
is FALSE
ReadPDFs
when when reading one file which is a JSTOR pdfBibOptions(sorting = "anyvt")
and BibOptions(sorting = "nyvt")
BibOptions()sorting
equal to "anyvt" or "anyt")GetBibEntryWithDOI.R
will not stop
if an error occurs downloading any of the DOIs (e.g.,
if one entry in the doi
vector has a typo and the rest are valid)NEW FEATURES
GetPubMedByID
: Now returns some additional fields including 'month' and 'issn' for
articles; will print a warning if PubMed does not return the complete list
of authors; will use the name of a collective if one is available and the individual
authors are missing (h/t Dale Steele)BUG FIXES
ReadBib
: If a name list field in an entry cannot be parsed in the bib file, the
entry will be ignored, but the rest of the file will still be processed and
returned. In the past, this caused an error and no output would be returned.GetPubMedByID
(h/t Dale Steele)BUG FIXES
ReadCrossRef
now correctly handles the small number of cases where BibTeX information
cannot be obtained for a particular DOI, which resulted in 'stack imbalance' warnings
and no results being returned (h/t Norman L Guinasso Jr).ReadGS
fixed to account for changes to Google "API" (h/t Norman L Guinasso Jr).style = "html"
would not always add an opening tag
when bib.style = "numeric"
or bib.style = "alphabetic"
(h/t Henrik Bengtsson).format.BibEntry
would ignore the .style
argument if called directly by the user.
Note, this function should normally not need to be called directly. (h/t Henrik Bengtsson)NEW FEATURES
GetDOIs
function (h/t Erich Studerus)month = jun # "/" # jul
, month = "20~" # jan
,
month = "20--25~" # dec
, month = "10~" # jan # "/" # feb
(request of Stephen Eglen)ReadZotero
for specifying a groupID to query a group library instead of a
user library (h/t Greg Blomquist).BUG FIXES
print.BibEntry
with BibOptions(style = "Biblatex")
fixed (h/t Artem Klevtsov)unlist.BibEntry
and RelistBibEntry
now retains @strings
and mheader
and
mfooter
attributes (see ?BibEntry) if they are presentNEW FEATURES
GetDOIs
which searches CrossRef for DOIs for the citations stored in
a BibEntry
objectBUG FIXES
ReadCrossRef
fixed to account for change to CrossRef API endpoint. (h/t Carl Boettiger)NEW FEATURES
BUG FIXES
print.BibEntry
with BibOptions(style = "citation")
now works properlyNEW FEATURES
as.BibEntry
will create entry key if given a bibentry
object with no key. Useful when citing
packages with citation
.bibentry
objects in addition to
BibEntry
objects.$<-.BibEntry
will now accept a single person object, so that a single author in a multi-author entry
may be updated. An example may be found at help("$<-.BibEntry")
. (h/t Carl Boettiger)BUG FIXES
WriteBib
that occasionally failed checkBUG FIXES
ReadGS
when argument check.entries
is FALSE or "warn" (h/t Francisco Rodriguez Sanchez)NEW FEATURES
BUG FIXES
names<-.BibEntry
print.BibEntry
when entry has urldate field but no url fieldbatch.mode = FALSE
in GetPubMedRelated
LookupPubMedID
when index
argument specifiedopen.BibEntry
now works properlytoBibtex.BibEntry
WriteBib
with biblatex
argumentNEW FEATURES