`sorting=none` 會導致一個 \cite{} 中十個或更多引用的順序錯誤

`sorting=none` 會導致一個 \cite{} 中十個或更多引用的順序錯誤

我想使用 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}

編譯此文件(使用pdflatexbiberpdflatexpdflatex)會產生參考書目,其中參考文獻以錯誤的順序出現:第 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被錯誤地視為字串而不是整數,導致問題中描述的排序行為完全錯誤。這已在犯罪7942d2eBiber 的,已合併到 Biber v2.19 中。

(所以我要么需要更新到 TeX Live 2023 [同時處於 Debian 穩定版],要么找到其他一些解決方法…)

相關內容