コンテクスト: biblatex 2.9a
そしてbiber 1.9
。
のおかげでdefernumbers
、次の MWE に示すように、biblatex
参考文献 ( ) からエントリがスキップされた場合でも、数値ラベルは正しく表示されます。options={skipbib}
\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}
結果は次のようになります (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)
しかし、引用が追加されるとすぐに\AtEndDocument
(最後から 2 番目の行をコメント アウトすることによって)、数値ラベルが間違ってしまいます(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)
ノート:
- バックエンドでは
bibtex
問題ありません。 - および
biblatex 3.0
の場合biber 2.0
は状況が悪くなります。引用が追加されると\AtEndDocument
、すべての数値ラベルが になります0
。
答え1
biblatex は、「ドキュメントの終了」フックで多くの作業 (クリーンアップやその他の作業) を行っています。cite コマンドが前もって表示されるようにする必要があります。そのため、 before を移動するか\AtEndDocument
、\usepackage{biblatex}
コードをフックの先頭に追加します。
\citetitle{cccc}%
\makeatletter\preto\@enddocumenthook{and \citetitle{dddd}}\makeatother
(パッチ パッケージの 1 つに "\PreToAtEndDocument" コマンドが用意されているかどうかはわかりません)。