
我想使用 BibLaTeX 建立參考書目,由於我希望參考文獻按引用順序出現,因此我使用 package 選項sorting=none
。然而,在我的文檔中的某一時刻,我需要一次引用十個參考文獻,即使用一個\cite{}
命令。在這種情況下,參考書目中的(無)排序會出錯。
一個最小的工作示例如下:
\begin{filecontents}[overwrite]{test.bib}
@article{test:a, title = {Test a}}
@article{test:b, title = {Test b}}
@article{test:c, title = {Test c}}
@article{test:d, title = {Test d}}
@article{test:e, title = {Test e}}
@article{test:f, title = {Test f}}
@article{test:g, title = {Test g}}
@article{test:h, title = {Test h}}
@article{test:i, title = {Test i}}
@article{test:j, title = {Test j}}
\end{filecontents}
\documentclass{article}
\usepackage[sorting=none]{biblatex}
\addbibresource{test.bib}
\begin{document}
Tests are great \cite{test:a,test:b,test:c,test:d,test:e,test:f,test:g,test:h,test:i,test:j}.
\printbibliography
\end{document}
編譯此文件(使用pdflatex
、biber
、pdflatex
、pdflatex
)會產生參考書目,其中參考文獻以錯誤的順序出現:第 10 個條目test:j
出現在第二個,位於test:a
和之間test:b
;請參閱以下螢幕截圖。
對我來說,似乎在創建參考書目過程中的某個時刻,參考文獻是按它們在參考文獻中的位置排序的。\cite{}
排序不是按數字,而是按字典順序,產生參考號。 10 出現在編號之間。 1 和沒有。 2.
有趣的是,這似乎是某種 Biber 問題:使用 BibLaTeXbackend=bibtex
進行編譯,bibtex
而不是biber
正確排序參考書目。
我是否忽略了某些事情,或者我在 Biber 中發現了錯誤?
(我使用 TeX Live 2022,使用 Biber 版本 2.18 和 BibLaTeX 版本 3.18b。)
答案1
這是由 Biber v2.18 中的錯誤引起的,該錯誤已在 v2.19 中解決。
Biber 2.18 引入了intciteorder
排序字段(其中條目的順序\cite{}
),此後一直用於sorting=none
.然而,為了排序intciteorder
被錯誤地視為字串而不是整數,導致問題中描述的排序行為完全錯誤。這已在犯罪7942d2e
Biber 的,已合併到 Biber v2.19 中。
(所以我要么需要更新到 TeX Live 2023 [同時處於 Debian 穩定版],要么找到其他一些解決方法…)