En mi ejemplo "real", necesito imprimir bibliografías ordenadas con un contador reiniciado, por lo que necesito usarlas defernumbers=true
junto \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 defernumbers
función funciona escribiendo los números de etiqueta en el .aux
archivo. biblatex
solo 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 .aux
archivo.
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 .aux
incluso 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}