Com defernumbers, rótulos numéricos corretos do biblatex mesmo com skipbib, mas errados em caso de citação \AtEndDocument

Com defernumbers, rótulos numéricos corretos do biblatex mesmo com skipbib, mas errados em caso de citação \AtEndDocument

Contexto: biblatex 2.9ae biber 1.9.

Graças a defernumbers, biblatex' os rótulos numéricos estão corretos mesmo com entradas ignoradas da bibliografia ( options={skipbib}), conforme mostrado pelo seguinte 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 dá (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)

Mas, assim que uma citação é adicionada \AtEndDocument(comentando a penúltima linha), os rótulos numéricos ficam errados (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:

  • Com bibtexcomo back-end, não há problema.
  • Com biblatex 3.0e biber 2.0, é pior: com uma citação adicionada \AtEndDocument, todos os rótulos numéricos são 0.

Responder1

biblatex está fazendo muitos trabalhos (de limpeza e outros) no gancho "documento final". Você deve certificar-se de que seu comando cite foi visto anteriormente. Portanto, mova seu \AtEndDocumentbefore \usepackage{biblatex}ou anexe o código ao gancho:

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

(Não sei se um dos pacotes de patch oferece um comando "\PreToAtEndDocument").

informação relacionada