Con números diferidos, corrija las etiquetas numéricas de biblatex incluso con skipbib, pero incorrectamente en caso de citación \AtEndDocument

Con números diferidos, corrija las etiquetas numéricas de biblatex incluso con skipbib, pero incorrectamente en caso de citación \AtEndDocument

Contexto: biblatex 2.9ay biber 1.9.

Gracias a defernumbers, biblatex' las etiquetas numéricas son correctas incluso con entradas omitidas de la bibliografía ( options={skipbib}), como lo muestra el siguiente MWE:

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{skipbib-aaaa,
  title={Aaaa (skipped from bibliography)},
  options={skipbib}
}
@misc{bbbb,
  title = {Bbbb}
}
@misc{cccc,
  title={Cccc (manually added at end of document)}
}
@misc{dddd,
  title={Dddd (automatically added at end of document)}
}
\end{filecontents}
%
\usepackage[backend=biber,defernumbers]{biblatex}%
\addbibresource{\jobname.bib}
%
\begin{document}
\citetitle{skipbib-aaaa} and \citetitle{bbbb}
\printbibliography
\citetitle{cccc}%
% \AtEndDocument{and \citetitle{dddd}}
\end{document}

que da (arte ascii):

   Aaaa (skipped from bibliography) and Bbbb

References
[1] Bbbb.
[2] Cccc (manually added at end of document).

   Cccc (manually added at end of document)

Pero, tan pronto como se agrega una cita \AtEndDocument(comentando la penúltima línea), las etiquetas numéricas se equivocan (arte ascii):

   Aaaa (skipped from bibliography) and Bbbb

References
[2] Bbbb.
[3] Cccc (manually added at end of document).
[4] Dddd (automatically added at end of document).

   Cccc (manually added at end of document)
   and Dddd (automatically added at end of document)

Notas:

  • Con bibtexbackend, no hay problema.
  • Con biblatex 3.0y biber 2.0es peor: con una cita agregada \AtEndDocument, todas las etiquetas numéricas son 0.

Respuesta1

biblatex está haciendo mucho trabajo (de limpieza y otros) en el enlace "final del documento". Debe asegurarse de que su comando de cita se vea antes. Así que mueve tu \AtEndDocumentbefore \usepackage{biblatex}o antepone el código al gancho:

\citetitle{cccc}%
\makeatletter\preto\@enddocumenthook{and \citetitle{dddd}}\makeatother

(No sé si uno de los paquetes de parches ofrece el comando "\PreToAtEndDocument").

información relacionada