Try adding the .tex
extension back on to the file.
I'm not sure why arXiv would remove it,
but many editors will assume that it's there
when running compile sequences.
To see what I mean, compare the compilation for pdfLaTeX and BibTeX:
$ pdflatex myfile.tex
$ bibtex myfile
Note that bibtex
doesn't need the file extension
since it also looks at the files generated by the LaTeX run.
Editors like TeXworks (and others, no doubt) will run these sequences for you automatically, but this requires that it knows where the extension is so that it can remove it.
When there is no extension to remove, ambiguities will arise:
$ pdflatex myfile
$ bibtex myfile
It's likely that one of these programs picked up on the 'wrong' myfile
,
causing the error that you saw.
(For example, take a look inside the aux
file; running pdflatex
directly on this file would certainly throw an error.)
As confirmed in the comments your project uses defernumbers
. With that option the label number for an entry is not assigned at the beginning of the document when the entry data is read from the .bbl
file, instead the label number is assigned only once the entry is printed in the bibliography. Consider the following example with and without defernumbers
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=numeric, defernumbers, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson,moraux,worman,nussbaum,geer,cicero}
\printbibliography[keyword=secondary]
\printbibliography[notkeyword=secondary]
\end{document}
For defernumbers
to work properly the compilation cycle must include
- LaTeX (in the resulting PDF all cite keys are bold)
- Biber
- LaTeX (in the resulting PDF all citations are 0)
- LaTeX (in the resulting PDF all citations show up)
If an appropriate .bbl
is already present (i.e. if you compile the example from above as just described and then delete all files except the .tex
and .bbl
file) the compilation cycle still (perhaps unexpectedly) needs to include three LaTeX runs
- LaTeX (in the resulting PDF all citations are 0)
- LaTeX (in the resulting PDF all citations are 0)
- LaTeX (in the resulting PDF all citations show up)
That is because biblatex
's heuristic to determine whether a Biber run is required will request a Biber run in the first LaTeX compilation. If a Biber run is requested, a few auxiliary bits are not written out to the .aux
file in the anticipation that a subsequent requested Biber run could potentially change the relevant information anyway. This means that relevant data is only written to the .aux
file on the second LaTeX run, when biblatex
has given up asking for a new Biber run.
The log files of your arXiv submission show that the arXiv only runs LaTeX twice, hence you get only 0s instead of the proper citation labels.
The relevant information for defernumbers
lives in the .aux
file. It might be possible to upload the .aux
file to the arXiv as well (I'm not sure if they accept that or will automatically reject .aux
uploads; uploaded .aux
files might cause version or other package incompatibilities) in which case you would obtain the desired result after only one LaTeX run. This solution is more of a last resort.
A different and better solution would be to tell LaTeX not to ask for a Biber run at all when you upload a file to the arXiv. Just add
\makeatletter
\let\blx@rerun@biber\relax
\makeatother
to your preamble. Since the arXiv won't run Biber for you anyway, there is no point in having biblatex
request a Biber run. In this instance we bypass a few tests that would block information subject to change after a Biber run from being written to the .aux
file. In the end then two LaTeX runs should be enough for your citations to show up properly.
Best Answer
The file uses biblatex, and the author has not provided the bib file.
Fortunately ctan has a package that addresses exactly this.
Add
biblatex-readbbl
afterbiblatex
eg after the%LT-SKIP-END
comment in this exampleThe document then processes without error, using the pre-made
bbl
file.You may find (including in comments under this question) suggestions to replace
\bibliography{..}
by\input{\jobname.bib}
but that only applies to classic bibtex use, not biblatex.As noted in comments:
On Overleaf you may need to replace
\jobname
by the name of the.bbl
file (without the.bbl
extension), so in the OP's real example[bblfile=DC-LPPL-LI]
.Also, if the document is old (at whatever point you are reading this) the
.bbl
file may not be compatible with the version of biblatex in the current texlive, however you can use the overleaf menu to process your project with a texlive of a suitable date. (At the time of writing Overleaf offer texlive versions from 2014 to 2023).