根据 .bib 文件中的顺序对参考书目进行排序

根据 .bib 文件中的顺序对参考书目进行排序

是否可以根据文件中的顺序对参考文献的顺序进行排序.bib

答案1

这是一个应该适用的解决方案任何bib 文件,其中包括按字母相反顺序排列条目的文件。

首先,在bib文件的顶部插入以下指令:

@preamble{ "\newcommand{\noop}[1]{}" }

乍一看,\noop指令似乎毫无意义,因为它没有对其参数执行任何操作。虽然这对于LaTeX 排版运行,它是不是正确答案:BibTeX 排序阶段。事实上,对于其工作的排序阶段,BibTeX 将替换\noop{abc}abc并将“ abc”视为需要按字母顺序排序的材料的一部分。

其次,假设 bib 文件中的条目少于 26*26=676 个,在每个条目字段中第一作者姓氏前立即(不带空格)插入\noop{aa}, \noop{ab}, ..., \noop{az}, \noop{ba}, ... 指令:\noop{bb}author

@article{xyz,
   author  = "Dane \noop{aa}Miller and Jane Smith",
   ...
}
@book{123,
   author = "Jill \noop{ab}Anderson and Bill Carlson",
   ...
}
...
@techreport{johnson:2012,
   author = "\noop{ac}Johnson, Jimmy",
   ...
}

(如果有超过 676 个条目,只需适当扩展参数的字符串长度\noop,例如,扩展为aaaaaaab等等。)

第三,一定要使用按字母顺序对 bib 条目进行排序的参考书目样式文件。现在说明的要点\noop应该很清楚了:对于分类目的,相关姓氏为“aaMiller”、“abAnderson”和“acJohnson”,因此这三个条目将按照它们在 bib 文件中的顺序排序(而不是 Anderson 后接 Johnson 后接 Miller)。稍后,当 LaTeX 进行排版时,它会丢弃aaab等前缀,这样名字就会被正确排版。

答案2

@egreg 在此线程中提供了解决方案:https://tex.stackexchange.com/a/56640/204235

\nocite{*}可以在任何引用之前添加到文档顶部,您的参考书目将按照您的顺序打印,.bib并且您仍然可以添加使用您的编号的引用.bib

相关内容