WARNING: A change of the default for argument direct
of
readBib()
is planned for rbibutils v3.0 (from FALSE
to
TRUE
). If you really want direct = FALSE
, please state that
explicitly. Note that for most users direct = TRUE
is superior
(better handling of maths, additional capabilities). Still, direct = FALSE
has some features that may be desirable for some
applications.
:TODO: the documentation needs improving to describe the above.
added completion for bibentryExtra
objects. Useful for interactive use. For
example in an R session if be
is a bibentryExtra
object, typing be$bi
then 'be$bibtype
. Also, be$
then '
corrected some typo's in the draft vignette.
now using bibentrydirectout_write
also in 'bibentryout.c'.
bibentryout_write
was not in sync with changes in bibentrydirectout_write
.
some long standing unnoticed bugs or shortcomings of the processing
in readBib()
and convert()
in the case direct = FALSE
have
been fixed.
:TODO: argument texChars
is not supported when direct = FALSE
but maybe after these fixes it can be done.
the class of the object returned by readBibentry()
, readBib()
, and
bibtexImport()
is now always c("bibentryExtra", "bibentry")
(unless
argument fbibentry
is supplied). Previously "bibentryExtra"
was added only
when there were bib items with non-standard type and extra = TRUE
. An option
to return just "bibentry"
may be considered.
non-standard bibtypes are lowercased.
consolidated the subsetting operators for 'bibentryExtra' objects and the documentation for them.
new function bibentryExtra()
creates 'bibentryExtra' objects. It accepts
arbitrary Bibtex entry types and takes the same arguments as bibentry()
.
the default bib style for the bibentryExtra
method for format()
is now
"JSSextra".
refactored and streamlined writeBibentry()
(the original version didn't use
the format
method).
new generic function as.bibentryExtra
.
new 'bibentryExtra' method for c()
.
bib style "JSSextra" now knows how to render 'online' bibtype. It is a biblatex (not bibtex) field but very useful these days.
bib style "JSSextra" now knows how to render a few more non-standard bib types.
print(be, style = "R")
, where be
is an object from class "bibentryExtra"
no longer includes the, effectively, internal for rbibutils
field
truebibtype
.
first draft of a vignette.
now bibstyle 'JSSextra' creates a new environment for its stuff. Previously it was accidentally adding its objects directly in the 'JSS' style's environment, causing the two to be equivalent.
fixed a bug in format.bibentryExtra()
which caused writeBibentry()
to
misbehave when style = "Rstyle"
.
fixed [<-
sub-assignment to 'bibentryExtra' objects.
when style = "latex"
, style "JSSextra" was failing to print bibentries with
types InBook and InCollection, due to a typo (redundant comma) in the code.
a number of minor bugs were fixed.
\l
. Previously the character
following it was enclosed in braces, which was harmless in most cases but the
superfluous braces could cause trouble in special circumstances. Did the same
for the uppercase version, \L
, which was missing from the code.person()
.const char *
to char *
in v2.2.12, causing CRAN warnings on
some platforms.Bugfix: readBib
with texChars = "Rdpack"
which converts \'i
to \'\i
was wrapping \'\i
in braces in 'author' and related fields only. Failure to
do so in other fields was making the output invalid when \'i
was followed
by alphabetical character(s). Fixes issue#7 reopened by @EricMarcon.
Note that option "Rdpack"
for argument texChars
is mainly for internal
use which compensates for R not recognising \'i
as an accented character,
see the news items for v2.2.5 and v2.2.4 and the bug report about
tools:::latexToUtf8
at R bugs.
partial internal refactoring of C code to avoid duplication.
C
code, changed sprintf
calls to use snprintf
to fix CRAN warnings.C
code.new argument fbibentry
for readBib
and readBibentry
for specification of
a function for generation of bib objects. It should have the same arguments as
the default utils::bibentry()
but doesn't need to be vectorised, since
readBibentry()
generates one bibentry
call for each reference.
readBib
now parses correctly LaTeX accents like \a'o
. These are officially
defined only for LaTeX's tabbing
environment as replacements for \'o
,
etc., but seem accepted by LaTeX outside these environments. Also, Bibtex
converts them to the standard ones when writing .bbl
files and R's bib
processing functions know about them.
a bug in ads
export was causing a test to fail on platforms with char
equivalent to unsigned char
. Reported by @nileshpatra, who also identified
the cause. Fixes issue#8 on github.
readBibentry
with extra = TRUE
now parses (almost) any syntactically
correct bib entries. In particular, it accepts arbitrary bib types and doesn't
throw errors for bibentries missing fields required by bibtex for the standard
bibtex types. For example, biblatex entries typically have date
, not year
.
readBib
with direct = TRUE
and texChars
set to "convert"
or "export"
was not processing mathematical expressions properly. Now fixed.
argument texChars
of readBib
gets new possible value, "Rdpack". This is
like the default, "keep", but in addition it converts \'i
to \'\i
. This
is related to issue #7, see below the fix in v2.2.4 for details. This is
mainly for internal use.
improved the messages from error handling when creating bibentry
objects. The fix is in readBibentry
but users typically see them when
calling readBib
.
fixed an error which caused bibConvert
to segfault when importing nbib
files.
readBibentry
(and hence readBib
) were printing some error messages that
were actually handled.
stopped converting \'\i'
to \'i
. They are equivalent but there is no
reason to do this. Also, at the time of writing R's tools::latexToUtf8
converts the former but not the latter, while Biber seems to convert the
latter but not the former, see
https://bugs.r-project.org/show_bug.cgi?id=18208 . So, users of the bib file
may have specific reasons to use one or the other.
names consisting of just one part, family, were missing processing of escaped characters (issue #5).
Pubmed XML
was sometimes giving a handful of references for files
with tens or hundreds of them. Now fixed, see issue #4, reported by Rafael
SantamarĂa. (The function reading the file was implicitly assuming that the
end of each reference is on a line by itself and was silently ignoring text on
the same line after the end of reference tag. Reference files from online
databases often have no new lines at all, except for the XML header.)new convenience function charToBib
takes input from a character vector
rather than a file. By default it assumes that the input is in bibtex
format
and dispatches to readBib
. If an input format is specified it calls
bibConvert
.
new S3 class bibentryExtra
, inheriting from bibentry
, provides support for
non-standard types (potentially arbitrary) of bibtex entries. Suitable methods
are defined for printing, converting and manipulating (e.g., subsetting and
assignment) bibentryExtra
objects. The initial implementation is incomplete
and under development.
readBib()
gets a new argument extra
. If it is set to TRUE
and
non-standard types of entries are encountered in the input bibtex file, then
the class of the result is set to bibentryExtra
. See also the note about
bibentryExtra
.
readBib
gets new argument, macros
, for specification of file(s) containing
Bibtex macros (such as abbreviations for names of journals). These files are
read in before file(s) specified by file
.
readBib
with direct = TRUE
now accepts non-syntactic field names,
e.g. containing -
. (This is irrelevant when direct = FALSE
since in that
case nonstandard fields are ignored and standard fields do not contain unusual
characters.)
internal structures for bibtex macros, such as @string
were not cleared at
the end of calls and were accumulating from multiple invocations of
conversions from bibtex and biblatex. Now fixed.
now references with missing cite keys in bibtex input are accepted (previously such references were dropped). Dummy cite keys are inserted.
now @preamble
entry in bibtex is ignored silently. Previously it was also
dropped but with a message about unrecognised type, which was confusing.
export arXiv:XXX and similar as https
(some were still exported as http
).
Fixes GeoBosh/Rdpack#21, reported by Kisung You.
unsuported conversions for some formats were accepted with unpredictable results. Informative messages are printed now.
improved handling of byte order marks (BOM) for utf8 output. This was causing problems to tests of this package on Windows since on Linux BOMs are not emitted (I haven't figured what causes the difference - the code is not OS dependent).
improved handling of corner cases in bibtex input, especially for readBib
with direct = TRUE
.
now a warning (rather than error) is issued if package 'testthat' is not available for tests.
readBib
now has a default for the encoding, so it would usually be called
just with one argument (the filename).
readBib
can now convert bibtex files directly (i.e., without first
converting to XML intermediate) to bibentry R objects. This can be requested
by setting the new argument direct
to TRUE
.
readBib
gets argument texChars
to control whether or not to convert TeX
sequences representing characters (such as accented Latin characters) to
normal characters in the output encoding. There is an option also to convert
charaters to the corresponding TeX sequences.
readBib
now accepts encodings as for bibConvert
.
readBib
now processes field key
in bibtex files. (This field is optional,
used by some bibtex styles for sorting.)
bug fixes and improvements.
removed field LazyData
from DESCRIPTION as there is no data directory
(and R-devel now flags it with a NOTE).
there is no longer (unintended) dependence on R >= 3.4. This was because of
the use of R_unif_index
. Report and fix due to Henrik Sloot (#1).
completely reimplemented the conversion to bibentry
- now this is done
entirely in C
and it now has the same speed as the conversions to other
bibliograthy formats.
removed xml2
from the imports - it is no longer needed now that the
conversion to bibentry is done in C
.
new functions readBibentry
and writeBibentry
for reading from and writing
bibentries to R source files.
now errors when reading bibentry files are turned into warnings with suitable messages.
new function writeBib
for writing bibtex files.
fixed erroneous processing of PhD thesis bib entries with some values of field
type
. (reported by Kisung You for GeoBosh/Rdpack#17)
fixed a compiler warning about a pointer differing in signedness from the expected type (reported by Patrice Kiener).
somehow README.md
went missing in v1.3, now reinstated.
reverted a change in v1.2 which caused trouble with some latex characters.
trimmed white space in cite keys and some others to avoid getting cite keys containing the newline character (possible if the comma after the key is on a new line).
new function readBib
for importing bibtex files.
fixed inBook processing.
fixed encoding bug introduced in v1.1.
fixed misterous loss of $
s and curly braces in certain circumstances.
fixed processing of multiple person names in bibtex import.
mathematical formulas were wrongly exported without dollars in some cases.
stopped printing some messages causing problems to Rdpack.
fixed warnings from clang
compilers on CRAN. (These were about tautology
if
clauses in src/adsout.c
and default argument promotion of the second
argument in a couple of invocations of va_start
in src/modsout.c
).
fixed typo's in the documentation.
updated the website.
Features of this version:
includes an R port of bibutils
libraries (currently bibutils_6.10
).
supports all character encodings available in bibutils
(defaults are UTF-8).
supports all input/output bibliography formats available in bibutils
,
including Bibtex, Biblatex, and XML mods intermediate.
in addition, supports conversions of the above formats from/to bibentry
R
source files or rds
objects.