13

Edit: Upgrade of Mac TeX solved the following problem:

Package biblatex Warning: File 'testbib.bbl' is wrong format version - expected 2.8. 

But now I instead get:

! Package xkeyval Error: `family_i' undefined in families `blx@opt@namepart'.

when I try to submit to arXiv. Anyone how knows who I can solve this? I don't know what to do. Thank you all very much! I think I've collected the essentials:

%testbib.bbl
\documentclass[10pt, a4paper, centertags, openright, mathscr]{amsart}
\usepackage[left]{lineno}

\usepackage{etex}

\usepackage{amsmath, amsfonts, amsthm, amssymb, amsxtra, bbm, enumerate, stmaryrd}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[dvipsnames]{xcolor}

\usepackage[style=alphabetic,
        backend=biber,
        isbn=false,
        doi=false,
        url=false,
        hyperref=true, 
        firstinits=true,
        maxbibnames=99,
        maxalphanames=99,
        maxnames=99,
        block=none]{biblatex}
\addbibresource{\string~/Documents/Latex/bibFile.bib}
\renewcommand*{\newunitpunct}{\addcomma\space}

\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addspace}%
\iffieldundef{series}
{}  
{\newunit
 \printfield{series}%
 \setunit{\addspace}}%
\printfield{volume}%
\setunit{\addspace}%
\usebibmacro{issue+date}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\setunit{\addcomma\space}%
\printfield{number}%
\newunit}

\renewbibmacro*{volume+number+eid}{%
\printfield{volume}
\printfield{number}
}

\renewbibmacro*{date}{\setunit{\addspace}\printdate}
\DeclareFieldFormat*{title}{\mkbibemph{#1}}%\addperiod % italic title with period
\DeclareFieldFormat*{journaltitle}{#1} % title of journal article is printed as normal text
\DeclareFieldFormat[incollection]{booktitle}{\rm #1} % title of journal article is printed as normal text
\DeclareFieldFormat*{volume}{vol. \bf #1} 
\DeclareFieldFormat[article]{date}{#1}
\DeclareFieldFormat[book,inbook,incollection,thesis,unpublished]{date}{(#1)}
\DeclareFieldFormat*{number}{no. #1} 
\DeclareFieldFormat*{pages}{#1}
\renewbibmacro{in:}{}

\begin{document}

\title{Test Biblatex}
\author{Myself {\ae}{\o}{\aa}}
\maketitle

In \cite{lur-09} and \cite{mac-98}. 

\printbibliography

\end{document}

when

% $ biblatex auxiliary file $
% $ biblatex bbl format version 2.7 $
% 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]{anyt/global/}
    \entry{lur-09}{book}{}
      \name{author}{1}{}{%
        {{hash=760ea879284b1a6eeaad87a82be8d1d7}{%
           family={Lurie},
           family_i={L\bibinitperiod},
           given={Jacob},
           given_i={J\bibinitperiod}}}%
      }
      \list{location}{1}{%
        {Princeton, NJ}%
      }
      \list{publisher}{1}{%
        {Princeton University Press}%
      }
      \strng{namehash}{760ea879284b1a6eeaad87a82be8d1d7}
      \strng{fullhash}{760ea879284b1a6eeaad87a82be8d1d7}
      \field{labelalpha}{Lur09}
      \field{sortinit}{L}
      \field{sortinithash}{872351f18d0f736066eda0bf18bfa4f7}
      \field{labelnamesource}{author}
      \field{labeltitlesource}{title}
      \field{isbn}{978-0-691-14049-0; 0-691-14049-9}
      \field{series}{Annals of Mathematics Studies}
      \field{title}{Higher topos theory}
      \field{volume}{170}
      \field{year}{2009}
      \field{pages}{xviii+925}
      \range{pages}{-1}
    \endentry
    \entry{mac-98}{book}{}
      \name{author}{1}{}{%
        {{hash=412e255483e0d09fd0b0895d355a28a8}{%
           family={Mac\bibnamedelima Lane},
           family_i={M\bibinitperiod\bibinitdelim L\bibinitperiod},
           given={Saunders},
           given_i={S\bibinitperiod}}}%
      }
      \list{location}{1}{%
        {New York}%
      }
      \list{publisher}{1}{%
        {Springer-Verlag}%
      }
      \strng{namehash}{412e255483e0d09fd0b0895d355a28a8}
      \strng{fullhash}{412e255483e0d09fd0b0895d355a28a8}
      \field{labelalpha}{Mac98}
      \field{sortinit}{M}
      \field{sortinithash}{2684bec41e9697b92699b46491061da2}
      \field{labelnamesource}{author}
      \field{labeltitlesource}{title}
      \field{edition}{Second Edition}
      \field{isbn}{0-387-98403-8}
      \field{series}{Graduate Texts in Mathematics}
      \field{title}{Categories for the working mathematician}
      \field{volume}{5}
      \field{year}{1998}
      \field{pages}{xii+314}
      \range{pages}{-1}
    \endentry
  \endsortlist
\endrefsection
\endinput

When running 'biber' on my computer I get:

INFO - This is Biber 2.5 

I tried to change to

backend=bibtex 

but it gives the same error.

  • Are you aware exactly which version arxiv uses? They do not tend to be using g bleeding edge versions. – daleif Mar 16 '17 at 21:04
  • TeXLive 2016, but it seems that I have version 2013? – nunatak Mar 16 '17 at 21:12
  • 1
    It is not worth your time to try to manually update biblatex and biber, trust me. It also depends on a lot of other packages. – daleif Mar 16 '17 at 21:27
  • 1
    Indeed, it worked after a while. Thank you very much! – nunatak Mar 17 '17 at 7:30
  • 1
    Indeed, it got upgraded after a while. Thank you very much! – nunatak Mar 17 '17 at 7:46
13

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 Making the arXiv accept a BibTeX BBL (May 2018) as well.

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


Introduction and some background

(More background can be found in https://github.com/plk/biblatex/wiki/biblatex-and-the-arXiv and the posts linked there.)

Since February 2017, arXiv is running TeX live 2016 (https://confluence.cornell.edu/display/arxivpub/2016+arXiv+Roadmap, https://arxiv.org/help/faq/texlive) with - if I understand 'arXiv is now running under TeXLive 2016, with a new, updated and enhanced tree of local addons and support for newer font sets, and everything else contained within the standard distribution' correctly - packages updated a bit after the initial release of TeX live 2016.

It is, however, nowhere indicated that arXiv would get continuous updates from CTAN. And indeed that would most likely be unfeasible and is thus very, very unlikely.

Due to the way biblatex works, version mismatches are fatal errors. (And even if they are not detected - as was the case in older versions - they can still wreak havoc on your documents.) So you can submit documents using biblatex since they are able to run it, but only if your biblatex and Biber version matches the version that arXiv is running. At this moment I believe they are running biblatex 3.7 and Biber 2.7, while the current versions on CTAN are biblatex 3.14 and Biber 2.14.

Since biblatex is still being developed and sometimes huge internal changes are made from one version to another, biblatex is not exactly best friends with the publishing world, who values stability and in some cases moves very slowly through LaTeX versions. See also Biblatex: submitting to a journal.

See also Biblatex: submitting to the arXiv and Publishing to Arxiv using Biblatex-Biber

Solutions

There are in essence two solutions, either you compile your document locally with the biblatex/Biber versions that the arXiv has installed or you upload your version of biblatex (possibly including other dependencies) along with your .tex file when you submit your article to the arXiv.

Compile your document with the biblatex/Biber versions from the arXiv

The way to produce a .bbl file that is compatible with the arXiv is to compile your document with the biblatex and Biber versions installed on the arXiv.

While it is possible to install certain versions of biblatex and Biber from SourceForge this is usually not recommended to only downgrade those packages, as that can lead to incompatibilities either with dependencies of biblatex or with biblatex styles. It is safer just to install a complete system with the right versions.

As things currently stand you will want to install a historic TeX live 2017 to get versions of biblatex and Biber matching the arXiv versions.

Historic Tex live versions can be obtained from ftp://tug.org/texlive/historic/. Since it is possible to have several TeX live versions installed in parallel (Using two installs of texlive in parallel), this should not prevent you from using a more up-to-date TeX system for documents that are not being prepared for arXiv submission. You do not need to (and indeed you should not) uninstall your current TeX system.

More details and some helpful links can be found in https://github.com/plk/biblatex/wiki/biblatex-and-the-arXiv#getting-the-right-package-versions.. This solution is for example described in Biblatex v3.11 with arXiv - how fix "wrong format version" error?.

Upload your version of biblatex to the arXiv

The idea here is not to get the same version of biblatex as the arXiv, instead you upload your version of biblatex to the arXiv.

There is precedence of people just uploading all necessary biblatex files in their submissions, see https://arxiv.org/abs/1610.02077 and https://arxiv.org/abs/1608.06539 amongst others. This works if biblatex does not depend on recently added functionality in another package. In the near future that is going to be a viable option. In a 2017 paper by one of the authors, they could get away with only providing the non-standard styles since the local version of bibliatex and arXiv's version matched: https://arxiv.org/abs/1703.01152.

If one doesn't know which files changed between the different biblatex versions, it is a bit tricky to know which files to upload. But there is a helpful script by Dougal Sutherland that automatically uploads all required files (this may well be overkill, but generally increases the change that the arXiv can compile your files), see https://github.com/dougalsutherland/arxiv-collector.


The arXiv people even have put up a bit of advice on biblatex on their help site: https://arxiv.org/help/faq/texlive.html

An incomplete list of common symptoms, errors, and fixes follows:

Wrong biblatex format version. If you have been developing with an older biblatex you will need to regenerate your .bbl file.

Package biblatex Warning: File 'Constraints.bbl' is wrong format version - expected 2.7.

fix: the author needs to regenerate their .bbl file.

Note that this advice only works if you have the same version of biblatex that arXiv is running on your local machine. As soon as the two versions are out of sync, things cannot be fixed by simply regenerating the .bbl.

| improve this answer | |
  • Thanks! Any tricks how I can upgrade to biblatex 3.7/Biber 2.7 on Mac? Tried newest version of MacTex, but they gave the versions listed above. – nunatak Mar 17 '17 at 10:16
  • @nunatak You should get the current versions of biblatex and Biber if you update your MacTeX via tlmgr, see also tex.stackexchange.com/q/55437/35864 But as I hopefully explained well enough that is not future-proof. As soon as there is a new update to biblatex on CTAN you won't be able to upload to arXiv with that version any more. – moewe Mar 17 '17 at 10:21
  • Which is why the first I did after learning about the update is to go to my texlive folder and do cp -R 2016 arxiv... – Christian Clason Mar 17 '17 at 11:06
  • @moewe Awesome, I wasn't aware of this. Thank you! – nunatak Mar 17 '17 at 11:29
  • @moewe As a MacTex user, it's quite easy to handle multiple TeX Live versions: Tex Live Utility > Configure > Change Default TeX Live version… (which allows you to upgrade and downgrade.) – beatngu13 Feb 11 '18 at 11:08
4

For me, the solution is to upload my own versions of biblatex.sty [1] and blx-compat.def [2] to arXiv.

[1] /usr/share/texlive/texmf-dist/tex/latex/biblatex/biblatex.sty
[2] /usr/share/texlive/texmf-dist/tex/latex/biblatex/blx-compat.def

Note that the problem is the API version, not the file format version (the BBL file is regular TeX)

| improve this answer | |
  • 2
    Depending on how different your version of biblatex and that on arXiv are, you may have to upload more files, though. (For example the .lbx file of the languages you use, the .bbx and .cbx file of your style, biblatex.def, blx-dm.def, ...). See also my recent answer to tex.stackexchange.com/q/438449/35864 – moewe Jul 2 '18 at 10:02
3

I know that the question has been updated but I was still getting the version error but that was because mine was a newer version. Getting an older version seemed tedious.

I tried compiling my code on overleaf and then I copied from the output generated, the .bbl file which had the right version.

Uploading this version with everything else unchanged worked for me; might help you as well.

EDIT: This procedure failed in Dec, 2019 because overleaf seems to have upgraded their compilers. This tool saved the day: arxiv-collector.

To install, use pip install arxiv-collector or conda install -c conda-forge arxiv-collector. If my main file is paper.tex, I need to simply run arxiv-collector paper.tex and it creates a compressed directory, ready to be uploaded to (the) arXiv!

Remark: Using LyX on Windows? Well, I was using LyX on Windows to generate the .tex file and running the tool on Ubuntu (on a virtual machine; haven't tried WSL (Windows Subsystem for Linux)) with git to synchronize things. There was some trouble with the encoding of the files and so the accents would get broken. In the end, I just replaced the .tex file in the folder produced by arXiv-collector, with the one exported by LyX.

| improve this answer | |
  • arxiv-collector is really very helpful! My submission went through without any problem! Thank you for sharing the tool! – Dr_Zaszuś Feb 10 at 14:52

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.