0

I'm trying to submit a paper online, and it causes errors BibTex since the online compiler only runs a single pass of pdfLaTeX. The journal recommends including the .bbl directly into the .tex file, and since I'm using Overleaf, I followed these directions. Unfortunately, I get Undefined control sequence errors on the copy-pasted .bbl text.


My Code

\documentclass[titlepage, 10pt, a4paper, twocolumn]{article}
\usepackage{url}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{authblk}
\usepackage[backend=biber]{biblatex}
\usepackage{graphicx}
\usepackage[none]{hyphenat}
\usepackage{tikz}
\usepackage{mathtools}
\usepackage{standalone}
\usepackage{etoolbox}

\addbibresource{sample.bib}
\makeatletter
\patchcmd{\thebibliography}{
  \chapter*{\bibname}\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}{
  \section{References}}{}{}
\makeatother

...

\let\stdsection\section
\def\section*#1{\stdsection{#1}}

\printbibliography[title={References}]

\let\section\stdsection

I comment out everything from \addbibresource{sample.bib} to \makeatother and everything from \let\stdsection\section to \let\section\stdsection, then I paste in the contents of the .bbl file below the ....

Something like:

% $ biblatex auxiliary file $
% $ biblatex bbl format version 2.8 $
% Do not modify the above lines!
%
% This is an auxiliary file used by the 'biblatex' package.
% This file may safely be deleted. It will be recreated by
% biber as required.
%
\begingroup
\makeatletter
\@ifundefined{ver@biblatex.sty}
  {\@latex@error
     {Missing 'biblatex' package}
     {The bibliography requires the 'biblatex' package.}
      \aftergroup\endinput}
  {}
\endgroup


\refsection{0}
  \sortlist[entry]{nty/global/}
    \entry{NMT2014}{article}{}
      \name{author}{3}{}{%
        {{hash=6d80adec79a13a33e73215c5f46f1605}{%
           family={Bahdanau},
           familyi={B\bibinitperiod},
           given={Dzmitry},
           giveni={D\bibinitperiod}}}%
        {{hash=3da7501a79d9346572c7fd6e41b615df}{%
           family={Cho},
           familyi={C\bibinitperiod},
           given={Kyunghyun},
           giveni={K\bibinitperiod}}}%
        {{hash=40a8e4774982146adc2688546f54efb2}{%
           family={Bengio},
           familyi={B\bibinitperiod},

...

Among other issues, the first error I get in Overleaf is

l.401 \sortlist[entry]{nty/global/} The control sequence at the end of the top line of your error message was never \def'ed. If you have misspelled it (e.g., \hobx'), type I' and the correct spelling (e.g., I\hbox'). Otherwise just continue, and I'll forget about whatever was undefined.

What am I missing? The explanation didn't mention that I had to include any extra packages once I copied the .bbl file over, but now it looks like there's thousands of undefined control sequences.

  • 3
    Please have a look at tex.stackexchange.com/q/12175/35864 which is specifically for biblatex. The Overleaf page you linked to is for BibTeX only. The approaches of BibTeX and biblatex are different and require different uses of the .bbl file. Even if you get your file to compile, chances are the publisher cannot accept a biblatex submission. – moewe Sep 22 '18 at 20:49
  • 3
    I double-checked that the way described in tex.stackexchange.com/q/12175/35864 still works in principle. But as explained in tex.stackexchange.com/q/410512/35864 and elsewhere, biblatex is extremely sensitive to version changes in the .bbl file. That means that this can only work if your biblatex version and the version that your publisher uses are the same. That is quite unlikely. – moewe Sep 22 '18 at 20:52
  • @moewe Would you recommend I use BibTex instead? – Evan Weissburg Sep 22 '18 at 20:53
  • 3
    If you mean to use backend=bibtex instead of backend=biber as option for biblatex then no: That won't really bring any measurable improvement in general. If you mean to drop biblatex entirely and go back to BibTeX's \bibliographystyle and \bibliography (and cite or natbib if you like), then yes that is the far better option for journal submissions. (But even there you should double check the author guidelines of your publisher.) – moewe Sep 22 '18 at 20:55
3

The instructions from Overleaf (https://www.overleaf.com/help/219) are specifically for use with BibTeX-based bibliographies. Herbert's answer to Biblatex: submitting to a journal explains how you could do something similar with biblatex.

For most intents and purposes, however, that will not work as intended. Unlike with BibTeX-based bibliographies, where the .bbl file contains ready-to-typeset material, biblatex's .bbl files contain the rehashed raw data in a LaTeX-readable format. The exact format of biblatex's .bbl file will depend on the biblatex and Biber version. The .bbl file on your machine can only be understood by systems with the same biblatex version (well, actually the same internal .bbl file version; biblatex development is still ongoing, so there is no stable state of affairs yet). See Matching biblatex in two machines, Making the arXiv accept a BibTeX BBL (May 2018) and Which biblatex/biber version produces BBL format 2.8? for more background on this.

In fact copying biblatex's .bbl file into your .tex document makes your document less portable. By using internal commands in your .tex file you effectively restrict the possible versions of biblatex that you could use, because biblatex is sensitive to changes in these internal macros. The user interface on the other hand is stable when it comes to high-level features and changes are usually attempted in a backwards compatible way (unfortunately, that does not always work out). So while it is possible to include a biblatex .bbl into a .tex file it usually does more harm than good.

Additionally, it is not guaranteed that publishers can deal with biblatex submissions anyway (see Joseph's answer to Biblatex: submitting to a journal). For journal submissions it is usually safer to use the provided classes (if any) or use standard classes and simple BibTeX or a manual thebibliography.

The bottom line is that for journal submissions your best chance is still good old BibTeX with \bibliographystyle and \bibliography.

The difficulties with the arXiv demonstrate that if publishers want to support biblatex they should accept uploading .bib files. User-submitted .bbl files only cause version conflicts and pain. That would mean, however, that they would have to run LaTeX and Biber on the submitted files, which would significantly complicate their workflow. I don't see that happening any time soon.

Note that using BibTeX as backend for biblatex has the same issues as using Biber since the use of the .bbl file is the same and the format is only very slightly different, so simply switching to backend=bibtex in biblatex will not bring measurable improvement.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.