`sorting=none` 会导致一个 \cite{} 中的十个或更多参考文献的顺序错误

`sorting=none` 会导致一个 \cite{} 中的十个或更多参考文献的顺序错误

我想用 BibLaTeX 创建参考书目,并且因为我希望参考文献按引用顺序出现,所以我使用包选项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会导致参考书目中的参考文献以错误的顺序出现:第 10 个条目出现在第二个,在和之间;见以下屏幕截图。biberpdflatexpdflatextest:jtest:atest:b

编译结果,参考书目顺序错误

在我看来,在创建参考书目的过程中,参考文献似乎按照它们在命令中的位置进行\cite{}排序不是按数字,而是按字典顺序,导致参考编号 10 出现在参考编号 1 和参考编号 2 之间。

有趣的是,这似乎是某种 Biber 问题:使用 BibLaTeX 并backend=bibtex使用bibtex而不是进行编译biber可以正确对参考书目进行排序。

我是否忽略了什么,或者我发现了 Biber 中的错误?

(我使用的是 TeX Live 2022,其中 Biber 版本为 2.18,BibLaTeX 版本为 3.18b。)

答案1

这是由 Biber v2.18 中的一个错误引起的,该错误已在 v2.19 中得到解决。

Biber 2.18 引入了intciteordersort 字段(一个 中的条目顺序\cite{}),此后一直用于sorting=none。但是,对于 排序intciteorder被错误地视为字符串而不是整数,导致问题中描述的错误排序行为。这在 中得到了纠正7942d2eBiber 的提交,已纳入 Biber v2.19。

(因此我要么需要更新到 TeX Live 2023 [在 Debian 稳定版上],要么找到其他解决方法......)

相关内容