2

I have a latex document that I have to compile in two different computers throughout the day. In one of them I have Arch Linux and the other one I have Linux Mint. So the packages are different since Arch is much more up-to-date.

The problem comes when doing the references. I was using biblatex and biber, and I wasn't able to compile the document in both machines apparently because the versions were different. I still have to use biblatex, but I changed to backend to bibtex to make it easier.

What I have:

Arch: Biblatex v3.8 Bibtex v0.99d (TeX Live 2017/Arch Linux)

Linux Mint: Biblatex v3.4 Bibtex v0.99d (TeX Live 2015/Debian)

My main computer is Arch, so I'd like to keep it as it is. When I compile with xelatex on Mint I get this error:

! Use of \blx@bbl@verbadd@i doesn't match its definition.
l.378     \verb

And then many other undefined control sequences that are apparently generated because of the versions being different. So here are my questions.

  • How can I make it work on both computers? (I'm trying to avoid upgrading biblatex on Mint because that would mean upgrading pearl.)
  • Why does biblatex care what version it is? The versions are not so far apart.

Cheers

TomCho
  • 221
  • 3
    If you remove all the aux files (i.e., .aux and all the biblatex related aux files) on the Mint machine and recompile do you still get the error? – Alan Munn Jan 15 '18 at 17:08
  • 1
    Have a look at: https://tex.stackexchange.com/q/311426/35864 this was a temporary bug in biblatex that has been resolved. If you delete the temporary files before you compile on the other machine there should be no problem using Biber (if the versions of biblatex and Biber on the same machine are compatible, of course) – moewe Jan 15 '18 at 18:03
  • @AlanMunn No, but then I'd have to do that every time I change machines, which is just too much. – TomCho Jan 15 '18 at 21:00
  • @TomCho Seriously? Deleting those files is a single keystroke for me and I assume you're not switching machines many times a day. This hardly seems like a big deal especially since you don't want to upgrade – Alan Munn Jan 15 '18 at 21:36
  • @AlanMunn I change machines many times a day (not physically or even manually), and this is a script that has to be compiled fast. So it's not so much deleting everything that it's the problem, but the longer compilation time that comes from having to do latex, bibtex, latex, latex at every compilaton. – TomCho Jan 15 '18 at 22:42
  • 2
    @TomCho Well then you're between a rock and a hard place. – Alan Munn Jan 15 '18 at 23:09
  • Well, this question has some time already, but nobody mentioned one very natural alternative. That would be for you to install "vanilla" TeX Live on both your computers, which would be more up-to-date than your current Arch install, and they would both be in equal standing. (TL 2018 should be available soon, if you like the idea, it's better to wait a tad longer). – gusbrs Apr 26 '18 at 23:04

1 Answers1

3

I'm afraid there is no way to make things work using the same set of auxiliary files on both machines. If you are OK with deleting the .aux, .bcf, .bbl, ... files and starting afresh on one of the machines, things should work, though.

biblatex cares about the format of the .bbl files (and similarly about that of the .bcf), because that is the medium biblatex and Biber or BibTeX use to communicate. Biber or BibTeX reads the .bib file and prepares the read data in a format that biblatex can consume easily in the .bbl file. So naturally the version of your .bbl files must be compatible with the version of biblatex that should read them. The .bbl version does not increase with every release of biblatex. It is only stepped up if necessary, i.e. if internal changes require it. Similarly for the .bcf file which is written by biblatex to pass commands to Biber.

In your case there is about one and a half year between v3.4 and v3.8 the changes for BibTeX's .bbls can be estimated from this diff of biblatex.bst. There are a few changes, but let me pick out the most important

  • extrayear was renamed to extradate. This became necessary because the field has a wider scope now.
  • refcontext has taken over more responsibilities. So the purely internal .bbl macro \sortlist became \datalist.
  • Initials of name parts are now indicated with an appended i and not _i. Use of _ required category code changes for _ that caused troubles with other packages.

All of these changes mean that a file for biblatex 3.4 can not work properly with biblatex 3.8 and vice versa.

While biblatex aims at keeping the user interface and also the interface for style developers stable (the former more so than the latter), the requirement for stability is not felt as much for the temporary files as they can be easily deleted and recreated anyway. Development of new features and fixes for bugs can always require changes to the .bbl file structure.

moewe
  • 175,683