我想用 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 个条目出现在第二个,在和之间;见以下屏幕截图。biber
pdflatex
pdflatex
test:j
test:a
test: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 引入了intciteorder
sort 字段(一个 中的条目顺序\cite{}
),此后一直用于sorting=none
。但是,对于 排序intciteorder
被错误地视为字符串而不是整数,导致问题中描述的错误排序行为。这在 中得到了纠正7942d2e
Biber 的提交,已纳入 Biber v2.19。
(因此我要么需要更新到 TeX Live 2023 [在 Debian 稳定版上],要么找到其他解决方法......)