Неправильно сформированный файл bcf не восстанавливается latexmk после ошибки

Неправильно сформированный файл bcf не восстанавливается latexmk после ошибки

Я использую latexmkwith pdflatexдля компиляции своей диссертации, with biblatexдля ссылок и biberв качестве бэкэнда. Он отлично компилируется и создает корректный вывод PDF. Если изменение исходных файлов приводит к ошибке, первый запуск завершается pdflatexнеудачей, но создается файл bcf. Затем запуск biber жалуется на некорректный файл bcf, указывая на то, что последний biblatexзапуск завершился неудачей, и компиляция останавливается. Однако после исправления ошибки latexmkдумает, что pdflatexзапуск прошел нормально, и вызывает biber, но файл bcf по-прежнему некорректен. latexmkкаким-то образом, похоже, не замечает, что были изменения файлов.

Удаление файла bcf или его очистка с помощью сначала вызывает latexmk -Cи заново создает правильный файл bcf. Вызов вручную тоже работает, но сводит на нет смысл . Я пытался использовать как вариант, но это не работает. Кажется, я припоминаю, что это работало с TexLive 2014, после неудачной попытки запуска запускался первым при следующей попытке.latexmkpdflatexpdflatexlatexmk-halt-on-errorpdflatexbiber latexmkpdflatex

Я использую TexLive 2015, версия latexmk4.43a, biberимеет версию 2.3. Вывод получается такой

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

Обязательно 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}

Библиография.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}
}

Действия по воспроизведению:

  1. бегатьlatexmk -pdf mwe
  2. ввести ошибку в mwe.texвиде неопределенной управляющей последовательности
  3. бегатьlatexmk -pdf mwe
  4. при появлении запроса прервите компиляцию, нажавx
  5. исправить ошибку
  6. запустить latexmk -pdf mwe-> ошибка biber
  7. запустить latexmk -pdf mwe-> та же ошибка biber, не исчезает

Итак, вопрос в том, как мне latexmkзаново создать файл bcf, чтобы biber мог его использовать без необходимости вручную очищать или удалять файлы?

решение1

Как уже упоминалось в комментарии, решение заключается в использовании новой версии latexmk(4.44 на момент написания этого ответа), которая теперь доступна по адресуhttp://www.ctan.org/pkg/latexmk/

решение2

ОбновлятьМай 2019 г.Март 2020:

Это все еще проблема с Ubuntu 18.04 LTS (bionic), поскольку они поставляют версию4.41.

Как заявилДжонэто исправлено с версии 4.44. Более новые версии latexmk поставляются для cosmic, disco, eoan, focal,..

Существует как минимум три способа обновления, выберите один из них:

а) Загрузите и установите .debпакет вручную, например, с сайтаhttps://packages.ubuntu.com/focal/all/latexmk/downloadи, надеюсь, не потребуется обновления каких-либо дополнительных зависимостей.

б) Я исправил эту проблему на своем компьютере, временно используя репозиторий cosmic:

  1. отредактируйте /etc/apt/sources.list в строке репозитория universe с bionic на cosmic, сохраните
  2. удачное обновление
  3. apt установить latexmk
  4. отменить изменения в /etc/apt/sources.list
  5. удачное обновление

Оба варианта в целом не рекомендуются, но latexmk — очень простое приложение/скрипт с небольшим количеством зависимостей. Закрепление не требуется, поскольку, как мы надеемся, сопровождающий не выберет версию между 4.41 и 4.44, текущая версия в cosmic — 4.59.

в) Другой подход — загрузка новейшего пакета изКТАНи установите его, как в документации, по сути замените и настройте разрешения. СмотритеКак обновить latexmk? Почему в репозитории Ubuntu содержится очень старая версия?.

Связанный контент