
Ich verwende latexmk
with pdflatex
zum Kompilieren meiner Abschlussarbeit, with biblatex
für Referenzen und biber
als 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 pdflatex
fehl, 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 biblatex
Durchlauf fehlgeschlagen ist, und die Kompilierung wird abgebrochen. Nach der Behebung des Fehlers latexmk
denkt jedoch , der pdflatex
Durchlauf sei einwandfrei verlaufen und ruft auf biber
, aber die bcf-Datei ist immer noch fehlerhaft.
latexmk
scheint irgendwie nicht zu bemerken, dass es Dateiänderungen gab.
Wenn Sie die BCF-Datei entfernen oder mit bereinigen, latexmk -C
wird zuerst latexmk
aufgerufen pdflatex
und eine korrekte BCF-Datei neu erstellt. Ein pdflatex
manueller Aufruf funktioniert auch, verfehlt aber den Zweck von . Ich habe versucht, als Option latexmk
zu 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-error
pdflatex
biber
latexmk
pdflatex
Ich verwende TexLive 2015, die Version latexmk
ist 4.43a, biber
hat 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:
- laufen
latexmk -pdf mwe
- einen Fehler einführen,
mwe.tex
wie z. B. eine undefinierte Steuersequenz - laufen
latexmk -pdf mwe
- Wenn Sie dazu aufgefordert werden, brechen Sie die Kompilierung ab, indem Sie drücken
x
- Fehler beheben
- ausführen
latexmk -pdf mwe
-> Biber-Fehler - ausführen
latexmk -pdf mwe
-> gleicher Biber-Fehler, geht nicht weg
Die Frage ist also: Wie kann ich latexmk
die BCF-Datei neu erstellen, sodass Biber sie verwenden kann, ohne Dateien manuell bereinigen oder entfernen zu müssen?
Antwort1
latexmk
Wie 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 .deb
Paket 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:
- editiere /etc/apt/sources.list in der Zeile des Universe-Repo von bionisch nach kosmisch, speichere
- passendes Update
- apt install latexmk
- Änderungen in /etc/apt/sources.list rückgängig machen
- 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?.