내 "실제" 예에서는 카운터 재설정을 사용하여 정렬된 참고문헌을 인쇄해야 하므로 실제 인용과 함께 defernumbers=true
사용해야 합니다 . \nocite{*}
키가 누락되면 번호 매기기가 모든 곳에서 0으로 설정된다는 것을 발견했습니다. 분명히 모든 키가 존재하는 최종 문서에서는 문제가 되지 않지만 문서를 작성하는 과정에서는 문제가 발생합니다. 이 문제를 해결할 수 있는 방법이 있나요?
\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}
답변1
이 defernumbers
기능은 레이블 번호를 파일에 기록하여 작동합니다 .aux
. biblatex
Biber 호출이 잠재적으로 정렬을 변경하여 레이블 번호도 변경될 수 있기 때문에 더 이상 Biber 호출이 필요하지 않은 경우에만 그렇게 합니다.
입력 키가 누락되거나 잘못된 경우 항상 Biber 재실행 요청을 받게 되며, 이는 라벨 번호가 파일에 기록되지 않음을 의미합니다 .aux
.
초안 단계에서 정의되지 않은 입력 키를 인용해야 한다면 을 비활성화하면 됩니다 defernumbers
.
고집하신다면 비버 재방송 요청이 있어도 defernumbers
라벨번호를 에 적어주시는 방법이 있습니다 ..aux
\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}