Archivo bcf con formato incorrecto no recreado por latexmk después de un error

Archivo bcf con formato incorrecto no recreado por latexmk después de un error

Estoy usando latexmkwith pdflatexpara compilar mi tesis, with biblatexcomo referencia y bibercomo backend. Se compila bien y crea una salida PDF correcta. Si un cambio en los archivos fuente introduce un error, la primera ejecución pdflatexfalla pero se crea un archivo bcf. La ejecución de biber luego se queja de un archivo bcf con formato incorrecto que indica que la última biblatexejecución falló y la compilación se detiene. Sin embargo, después de corregir el error, latexmkcree que la pdflatexejecución estuvo bien e invoca biber, pero el archivo bcf aún tiene un formato incorrecto. latexmkDe alguna manera no parece darse cuenta de que hubo cambios en los archivos.

Eliminar el archivo bcf o limpiarlo latexmk -Chace que primero latexmkllame pdflatexy vuelva a crear un archivo bcf correcto. Llamar pdflatexmanualmente también funciona pero anula el propósito de latexmk. Intenté usarlo -halt-on-errorcomo opción pdflatexpero no funciona. Creo recordar que funcionó con TexLive 2014, después de que un intento fallido de ejecución biber latexmkse ejecutara pdflatexprimero en el siguiente intento.

Estoy usando TexLive 2015, la versión latexmkes 4.43a, bibertiene la versión 2.3. La salida producida es

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

Obligatorio 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}

Bibliografía.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}
}

Pasos para reproducir:

  1. correrlatexmk -pdf mwe
  2. introducir un error mwe.texcomo una secuencia de control indefinida
  3. correrlatexmk -pdf mwe
  4. cuando se le solicite, cancele la compilación presionandox
  5. arreglar error
  6. ejecutar latexmk -pdf mwe-> error biber
  7. ejecutar latexmk -pdf mwe-> mismo error de biber, no desaparece

Entonces la pregunta es, ¿cómo puedo latexmkvolver a crear el archivo bcf para que biber pueda usarlo sin tener que limpiar o eliminar archivos manualmente?

Respuesta1

Como ya se mencionó en un comentario, la solución es usar la nueva versión de latexmk(4.44 en el momento en que escribo esta respuesta), que ahora está disponible enhttp://www.ctan.org/pkg/latexmk/

Respuesta2

Actualizarmayo 2019Marzo de 2020:

Esto sigue siendo un problema con 18.04 LTS de Ubuntu (bionic), porque entregan la versión4.41.

Según lo declarado porJohnesto está solucionado desde la versión 4.44. Se entregan versiones más nuevas de latexmk para cosmic, disco, eoan, focal, etc.

Hay al menos tres formas de actualizar, elige una de ellas:

a) Descargue e instale el .debpaquete manualmente, por ejemplo desdehttps://packages.ubuntu.com/focal/all/latexmk/downloady es de esperar que no sea necesario actualizar más dependencias.

b) Solucioné ese problema en mi máquina usando temporalmente el repositorio cósmico:

  1. edite /etc/apt/sources.list en la línea del repositorio del universo de biónico a cósmico, guarde
  2. actualización adecuada
  3. apto para instalar látexmk
  4. revertir cambios en /etc/apt/sources.list
  5. actualización adecuada

En general, no se recomiendan ambos, pero latexmk es una aplicación/script muy simple con pocas dependencias. No es necesario fijar porque, con suerte, el mantenedor no elegirá una versión entre 4.41 y 4.44, la versión actual en cosmic es 4.59.

c) Otro enfoque sería cargar el paquete más nuevo desdeCTANe instálelo como en la documentación, básicamente reemplace y ajuste los permisos. Ver¿Cómo puedo actualizar latexmk? ¿Por qué hay una versión muy antigua en el repositorio de Ubuntu?.

información relacionada