[Tex/LaTex] Inserting bibliography .bbl directly into .tex file causes Undefined control sequence

biblatexerrorsoverleafundefined

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 ....


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.

Best Answer

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.