I solved my issues of compatibility between the BibTex file exported from Zotero and BibLatex. I recap the solution here.
Apparently BibLatex is much more sensible than BibTex when it comes to reading a BibTex file...
To export correctly the bibliography from Zotero and then into a Tex document via BibLatex I used this BibTeX Export Translator (modified by Robin Wilson) with two important tweaks:
1) On line 11 of the translator script you need to set "exportNotes": true,
to "exportNotes": false,
(of course just in case you have added notes to your Zotero items, e.g. you extract annotations from PDFs). This will avoid BibLatex crashing on too long fields.
2) On line 2256 you need to tell the translator to avoid adding a comma after each bibliography item (the comma will result in BibLatex giving a warning on the first line of each entry excluding the first...) changing this line: Zotero.write((first ? "" : ",\n\n") + "@"+type+"{"+citekey);
with this line: Zotero.write((first ? "" : "\n\n") + "@"+type+"{"+citekey);
Another possible source of problems of the BibTeX Export Translator could be the character encoding. In my translator I kept as in source file "exportCharset": "ISO-8859-1",
on line 10. I tried to change it to UTF-8 but it created another class of issues, not with BibLatex (it run without errors) but with Latex,
[1{/usr/local/texlive/2013/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./bib/price2012.tex [2]
! Undefined control sequence.
<to be read again> \edef \blx@tempa {193\x
{FFFD}\x {FFFD}\x {FFFD}219}
l.8 \printbibliography[heading=subbibliography]
for each refsection. It also messed with the "pages" field of some items, outputting:
Andrea B. Hollingshead. “Information suppression and status persistence in group decision making the effects of communication media”. In: Human Communication Research 23.2 (1996), 193fffdfffdfffd219.
I then switched back to "exportCharset": "ISO-8859-1",
and both BibLatex and Latex run without warnings or errors. The PDF output was correct:
Andrea B. Hollingshead. “Information suppression and status persistence in group decision making the effects of communication media”. In: Human Communication Research 23.2 (1996), 193–219.
and I also get correct output with the umlaut of Habermas:
EDIT: The problem with the page field was probably due by a odd "-" character that you sometimes get to separate the 2 page numbers when you download the citation from the Internet.
It's important to remember that 'required' for a classical BibTeX style means broadly 'The output might look odd without this field': BibTeX is not really trying to do data validation!
When Philipp Lehman wrote biblatex
he looked carefully at what was and wasn't common in bibliographies and tried to make a sensible set of standard styles. He also set up biblatex
so that in the main missing fields (even 'required' ones) don't give badly formatted output, although from the point of view of looking up references it may be sub-optimal. The 'required' fields are therefore best viewed as a suggestion for the minimum set that are needed to have any kind of 'reasonable' output, and are deliberately kept to as small a set as possible.
If you wish to do data validation, you really need to look at a range of issues not limited to the simple question of 'which fields have some content'.
Best Answer
My personal preference is for versatile tools, rather than using JabRef (which I find rather irritating and inflexible -- the bibtex vs. biblatex modes issue in the question). I therefore use a decent text editor to maintain my .bib files (namely jEdit, though on Windows I liked notepad++). Any text editor will give you a content-agnostic paste without trying to be clever. For example you may want to manually merge scratch files, or import from a source (such as an email) with extraneous text that you'll need to edit out.
Both the editors above allow regexp based find/replace. This could easily allow adding a
journaltitle
field after everyjournal
field, for example, or comment out fields based on their value or lack of one.This approach has served me well as I took the same master .bib file from being only used with bibtex to mainly used with biblatex (I still have to use bibtex as part of the journal submission process).