[Tex/LaTex] Making the arXiv accept a BibTeX BBL (May 2018)

arxivbiblatexbibtex

I would like to upload a preprint to the arXiv with a bibliography. I prefer Biber personally, but I know from experience that if I upload a .bbl made with Biber, the arXiv will not interpret it correctly, due to an unrectifiable version mismatch. (For my current article, I tried it again, just to see if something had changed, and the compilation did work, but the compiled document did not show my citations or include a bibliography.)

So I produce a .bbl with BibTeX instead (added in editing: I achieve this by putting \bibliographystyle{alphaurl} in the preamble and {\footnotesize\bibliography{mybib.bib} } just before the end of my document, then compiling with pdflatex, bibtex, pdflatex, pdflatex"), upload it, and compile. The error that finally makes the arXiv's compilation quit is the following:

! Package biblatex Error: File 'xxxxxxx.bbl' not created by biblatex.

Well, I was aware: I avoided BibLaTeX because I know the arXiv will only butcher it anyway. But it apparently doesn't like the BibTeX one because it's not BibLaTeX. What can I do here?

(Note to moderators: I know there is a family of variants on this question already in currency on this site, but as the arXiv's packages vary with time, so do the answers to the question(s). Nothing else I've found seen helps me as of right now.)

Best Answer

If you are looking for help with biblatex and Biber for arXiv uploads, have a look at https://github.com/plk/biblatex/wiki/biblatex-and-the-arXiv and Biblatex and arxiv, error as well.

Overleaf users may be interested in https://www.overleaf.com/learn/how-to/LaTeX_checklist_for_arXiv_submissions.


There are several things going on here, so I think it is important to understand the big picture first.

biblatex vs BibTeX - biber vs. bibtex

There is a difference between bibtex (the program/"backend") and "the BibTeX way of producing a bibliography". That distinction becomes relevant if biblatex is introduced into the equation. The "BibTeX way of producing a bibliography" is just one way to get a bibliography in LaTeX, other options include biblatex and the manual way with thebibliography (the LaTeX Wikibook lists several ways to produce a bibliography in detail, and also in a short overview). The BibTeX way of producing a bibliography is of course tied to using bibtex (the program), a manual thebibliography needs no additional helper program, and biblatex can run with either its dedicated Biber backend (preferred) or with bibtex. Please read bibtex vs. biber and biblatex vs. natbib for more explanations on this. For a great explanation of the roles of the backend (bibtex or Biber), see Question mark or bold citation key instead of citation number.

.bbl files and their differences between biblatex and BibTeX

The role that the .bbl file plays with biblatex and the BibTeX-way are similar, but .bbl files produced for the two possible ways differ significantly. If you use the BibTeX-way, the BibTeX run will produce a .bbl file that contains the bibliography exactly as it should appear in the document, it is formatted and sorted. With biblatex the .bbl file does not contain the finished bibliography, instead it contains the data of the entries in a format digestible by LaTeX along with a few bits and pieces of extra information that is not present in the .bib file (disambiguation, automatically calculated labels, ...); the entries are also sorted. A .bbl file created for the BibTeX way of making bibliographies is completely incompatible with the .bbl file produced for biblatex (either by bibtex or Biber).

You are using biblatex with Biber as backend (a good choice), your document (drawing from the comments) looks roughly like

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber,style=ieee-alphabetic,sorting=nyvt]{biblatex}
\addbibresource{biblatex-examples.bib}

\usepackage{hyperref}

\begin{document}
\cite{sigfridsson}
\printbibliography
\end{document}

A document like this will always expect a .bbl file as produced by Biber. Even if you change backend=biber to backend=bibtex, the .bbl file must have been created by BibTeX for use with biblatex, it can't come from a document that does not use biblatex. The .bbl file produced for

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{hyperref}

\bibliographystyle{alphaurl}
\begin{document}
\cite{sigfridsson}
\bibliography{biblatex-examples}
\end{document}

can not be used for biblatex.

What the error message is about

Whatever you do, you can't mix and match between those two approaches on your local machine and the arXiv version. This is why you are seeing the error message

! Package biblatex Error: File 'xxxxxxx.bbl' not created by biblatex.

The paper you submitted to the arXiv uses biblatex (with Biber!), while the .bbl you submitted with it was produced by bibtex for the BibTeX way of creating bibliographies.

Submitting the correct .bbl to the arXiv

BibTeX

If you go with the BibTeX-way you can simply upload the .bbl to the arXiv and you are good - of course the paper you upload must then also use the BibTeX-way, so it should look like the second code example and not like the first.

biblatex

If you use biblatex you will have to make sure that the .bbl you upload is compatible with the version of biblatex and Biber on the arXiv (at present that is biblatex 3.7 and Biber 2.7, see Biblatex and arxiv, error and Which biblatex/biber version produces BBL format 2.8?) - again, naturally the .tex file you upload must use biblatex as well. In practice that means that you have to run the same versions of biblatex and Biber on your local machine that the arXiv are running. See Matching biblatex in two machines for an explanation why that is necessary.

If you use biblatex it is not that relevant for the arXiv whether you use bibtex or Biber as backend. While the general rule is that using the bibtex backend offers fewer features and is more stable (in terms of new features) than Biber, the relevant changes to the .bbl file version normally affect both bibtex and Biber. The fact that biblatex.bst in general is quite stable (many new features require Biber) could be reason to hope that using bibtex as backend may be a way to avoid .bbl version incompatibilities. Normally, however, if changes are required to the .bbl format, biblatex.bst must change as well (sometimes this is forgotten and can cause other issue, but you should not rely on the forgetfulness of the developers). So you should not have a significant advantage in using backend=bibtex here, we will therefore stick to backend=biber.

Get the correct system

So you need to install the correct version of biblatex and Biber (along with all the dependencies) on your system. The arXiv is running a TeX live 2016 system with updated packages, if you did not save a snapshot of a TeX live 2016 system at the time the arXiv updated their system, there is little chance you are going to be able to recreate the exact system they are running. As far as biblatex and Biber are concerned, you should be good with an un-updated TeX live 2017. You can get historic TeX live releases from ftp://tug.org/texlive/historic/ and How to install "vanilla" TeXLive on Debian or Ubuntu? explains how to install such a system (see also TeX Archaeology - Installing historic/old TeX Live Releases). Do not install this system over you current system, it is possible to install several TeX live versions alongside each other without interference, see Using two installs of texlive in parallel.