Fehlerhafte BCF-Datei wird von Latexmk nach Fehler nicht neu erstellt

Fehlerhafte BCF-Datei wird von Latexmk nach Fehler nicht neu erstellt

Ich verwende latexmkwith pdflatexzum Kompilieren meiner Abschlussarbeit, with biblatexfür Referenzen und biberals Backend. Es kompiliert einwandfrei und erzeugt eine korrekte PDF-Ausgabe. Wenn eine Änderung an den Quelldateien einen Fehler verursacht, schlägt der erste Durchlauf von pdflatexfehl, aber es wird eine bcf-Datei erstellt. Der Durchlauf von biber beschwert sich dann über eine fehlerhafte bcf-Datei und gibt an, dass der letzte biblatexDurchlauf fehlgeschlagen ist, und die Kompilierung wird abgebrochen. Nach der Behebung des Fehlers latexmkdenkt jedoch , der pdflatexDurchlauf sei einwandfrei verlaufen und ruft auf biber, aber die bcf-Datei ist immer noch fehlerhaft. latexmkscheint irgendwie nicht zu bemerken, dass es Dateiänderungen gab.

Wenn Sie die BCF-Datei entfernen oder mit bereinigen, latexmk -Cwird zuerst latexmkaufgerufen pdflatexund eine korrekte BCF-Datei neu erstellt. Ein pdflatexmanueller Aufruf funktioniert auch, verfehlt aber den Zweck von . Ich habe versucht, als Option latexmkzu verwenden , aber das funktioniert nicht. Ich meine mich zu erinnern, dass es mit TexLive 2014 funktioniert hat, nachdem ein fehlgeschlagener Ausführungsversuch beim nächsten Versuch zuerst ausgeführt wurde .-halt-on-errorpdflatexbiber latexmkpdflatex

Ich verwende TexLive 2015, die Version latexmkist 4.43a, biberhat die Version 2.3. Die erzeugte Ausgabe ist

Latexmk: This is Latexmk, John Collins, 5 February 2015, version: 4.43a.
Rule 'biber thesis': File changes, etc:
   Non-existent destination files:
      'thesis.bbl'
------------
Run number 1 of rule 'biber thesis'
------------
------------
Running 'biber  "thesis"'
------------
Latexmk: applying rule 'biber thesis'...
INFO - This is Biber 2.3
INFO - Logfile is 'thesis.blg'
ERROR - thesis.bcf is malformed, last biblatex run probably failed. Deleted thesis.bbl
INFO - ERRORS: 1
Latexmk: Failed to find one or more biber source files:
  NONE
Collected error summary (may duplicate other messages):
  biber thesis: Could not find all biber source files for 'thesis'
Latexmk: Use the -f option to force complete processing,
 unless error was exceeding maximum runs of latex/pdflatex.
Biber error: [33] Utils.pm:163> ERROR - thesis.bcf is malformed, last   biblatex run probably failed. Deleted thesis.bbl
Latexmk: Errors, so I did not complete making targets

Obligatorisches mwe.tex:

\documentclass[paper=a4]{scrartcl}

\usepackage[backend=biber]{biblatex}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\addbibresource{Bibliography.bib}

\begin{document}
\autocite{smith_pixel_1995}
\end{document}

Bibliographie.bib

@article{smith_pixel_1995,
    title = {A Pixel Is Not A Little Square, A Pixel Is Not A Little Square, A Pixel Is Not A Little Square!},
    volume = {6},
    url = {http://ftp.alvyray.com/Memos/CG/Microsoft/6_pixel.pdf},
    journaltitle = {Microsoft Computer Graphics, Technical Memo},
    author = {Smith, Alvy Ray},
    urldate = {2016-02-04},
    date = {1995}
}

Schritte zum Reproduzieren:

  1. laufenlatexmk -pdf mwe
  2. einen Fehler einführen, mwe.texwie z. B. eine undefinierte Steuersequenz
  3. laufenlatexmk -pdf mwe
  4. Wenn Sie dazu aufgefordert werden, brechen Sie die Kompilierung ab, indem Sie drückenx
  5. Fehler beheben
  6. ausführen latexmk -pdf mwe-> Biber-Fehler
  7. ausführen latexmk -pdf mwe-> gleicher Biber-Fehler, geht nicht weg

Die Frage ist also: Wie kann ich latexmkdie BCF-Datei neu erstellen, sodass Biber sie verwenden kann, ohne Dateien manuell bereinigen oder entfernen zu müssen?

Antwort1

latexmkWie bereits in einem Kommentar erwähnt, besteht die Lösung darin, die neue Version von (4.44 zum Zeitpunkt des Schreibens dieser Antwort) zu verwenden , die jetzt verfügbar ist unterhttp://www.ctan.org/pkg/latexmk/

Antwort2

AktualisierenJuni 2019März 2020:

Dies ist immer noch ein Problem mit 18.04 LTS von Ubuntu (Bionic), da sie Version liefern4.41.

Wie angegeben vonJohnDies ist seit Version 4.44 behoben. Neuere Versionen von Latexmk werden für Cosmic, Disco, Eoan, Focal usw. bereitgestellt.

Es gibt mindestens drei Upgrade-Möglichkeiten. Wählen Sie eine davon aus:

a) Laden Sie das .debPaket manuell herunter und installieren Sie es, z. B. vonhttps://packages.ubuntu.com/focal/all/latexmk/downloadund hoffentlich sind keine weiteren zu aktualisierenden Abhängigkeiten erforderlich.

b) Ich habe das Problem auf meiner Maschine behoben, indem ich vorübergehend das Cosmic-Repository verwendet habe:

  1. editiere /etc/apt/sources.list in der Zeile des Universe-Repo von bionisch nach kosmisch, speichere
  2. passendes Update
  3. apt install latexmk
  4. Änderungen in /etc/apt/sources.list rückgängig machen
  5. passendes Update

Beides wird im Allgemeinen nicht empfohlen, aber Latexmk ist eine sehr einfache App/ein sehr einfaches Skript mit wenigen Abhängigkeiten. Pinning ist nicht erforderlich, da der Betreuer hoffentlich keine Version zwischen 4.41 und 4.44 auswählt. Die aktuelle Version in Cosmic ist 4.59.

c) Ein anderer Ansatz wäre das Laden des neuesten Pakets vonCTANund installieren Sie es wie in der Dokumentation beschrieben, ersetzen und passen Sie grundsätzlich die Berechtigungen an. SieheWie kann ich Latexmk aktualisieren / warum ist im Ubuntu-Repository eine sehr alte Version enthalten?.

verwandte Informationen