Biblatex, numeración cero cuando se llama a una clave desconocida con nocite y defernumbers

Biblatex, numeración cero cuando se llama a una clave desconocida con nocite y defernumbers

En mi ejemplo "real", necesito imprimir bibliografías ordenadas con un contador reiniciado, por lo que necesito usarlas defernumbers=truejunto \nocite{*}con citas reales. Descubrí que cuando falta una clave, la numeración se establece en cero en todas partes. Obviamente para el documento final, donde están presentes todas las claves, esto no es un problema, pero en el proceso de redacción del documento sí lo es. ¿Tiene alguna forma de corregir este problema?

\documentclass{article}
\usepackage[defernumbers=true
]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{mabiblio.bib}
@misc{A-01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
@book{B02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo},
  location = {Location},
  publisher = {Publisher},
}
@article{C03,
  author = {Cuthor, C.},
  year = {2003},
  title = {Charlie},
  journaltitle = {Journal title},
  volume = {1},
}
@article{C04,
  author = {Cuthor 2, C.},
  year = {2004},
  title = {Charlie},
  journaltitle = {Journal title},
  volume = {2},
}
@article{B03,
  author = {Buthor 2, C.},
  year = {2004},
  title = {Charlie},
  journaltitle = {Journal title},
  volume = {1},
}
\end{filecontents}
\addbibresource{mabiblio.bib}

\begin{document}

\cite{authorA-01}% \cite{B02} \cite{C03}
\section{Biblio}

\nocite{*}

\printbibliography

\end{document}

Respuesta1

La defernumbersfunción funciona escribiendo los números de etiqueta en el .auxarchivo. biblatexsolo lo hace una vez que no se requieren más llamadas de Biber, porque la expectativa es que una llamada de Biber podría potencialmente cambiar la clasificación, lo que significaría que los números de etiqueta también cambiarían.

En el caso de que falte una clave de entrada o sea incorrecta, siempre recibirá una solicitud de repetición de Biber, lo que significa que los números de etiqueta nunca se escriben en el .auxarchivo.

Si necesita citar claves de entrada indefinidas durante la fase de borrador, tal vez podría simplemente desactivarlas defernumbers.

Si insiste en defernumbers, aquí tiene una forma de escribir los números de etiqueta .auxincluso si hay una solicitud de repetición de Biber.

\documentclass{article}
\usepackage[defernumbers=true]{biblatex}

\makeatletter
\blx@AtEndDocument{%
  \iftoggle{blx@defernumbers}
    {\iftoggle{blx@runbiber}
      {\def\do#1{\blx@auxwrite\@mainaux{}{#1}}
       \dolistloop\blx@localnumaux}
      {}}
    {}}
\makeatother

\begin{filecontents}{\jobname.bib}
@misc{A-01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
@book{B02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo},
  location = {Location},
  publisher = {Publisher},
}
@article{C03,
  author = {Cuthor, C.},
  year = {2003},
  title = {Charlie},
  journaltitle = {Journal title},
  volume = {1},
}
@article{C04,
  author = {Cuthor 2, C.},
  year = {2004},
  title = {Charlie},
  journaltitle = {Journal title},
  volume = {2},
}
@article{B03,
  author = {Buthor 2, C.},
  year = {2004},
  title = {Charlie},
  journaltitle = {Journal title},
  volume = {1},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\cite{authorA-01}% \cite{B02} \cite{C03}
\section{Biblio}

\nocite{*}

\printbibliography
\end{document}

Cita no definida, pero las referencias aún están numeradas como se esperaba.

información relacionada