我需要我的 tex 文件中的参考书目按自定义顺序排列。到目前为止,我只找到了如何按字母顺序或按出现顺序对参考书目进行排序的方法。我该如何按自定义顺序对其进行排序?
答案1
您没有提供很多有关要实施的自定义排序原则的具体信息。因此,以下解决方案必然是基本、朴实无华的。
您已经表示(我认为)您同意书目样式对、等
unsrt
类型的各种条目的格式化方式。我建议您切换到书目样式。它采用的格式化程序与 完全相同;主要区别在于根本不提供排序功能。@article
@book
plain
unsrt
unsrt
在文件的最顶部插入以下指令
bib
:@preamble{ "\providecommand{\noopsort}[1]{} " }
让我们标记主题和相关条目组
01
、02
等。重要的是给它们赋予数字标签。假设所有带标签的条目01
都应列在带标签的条目之前02
,等等。如果您有超过 100 个但少于 1000 个组,只需将标签系统切换为
001
、002
等。对于属于主题的所有条目
01
,请按如下方式更改作者字段:在字段\noopsort{01}
中为第一位作者的姓氏添加前缀author
。例如,如果假定属于组的给定条目的作者字段01
为author = "Author, Anna and Zebulon Zingales",
将其更改为
author = "\noopsort{01}Author, Anna and Zebulon Zingales",
注意:前缀和第一作者姓氏之间没有空格。
对于所有剩余类型的条目
01
以及属于主题02
、03
等的所有条目也是如此。由于您使用的是应用排序的参考书目样式,因此所有以第一作者姓氏为前缀的条目
01
都将放在以前缀 的条目之前02
,而以前缀 的条目又将放在以前缀 的条目之前03
,等等。这就是为什么使用数字标签至关重要的原因:在 ASCII 表中,数字0
到9
出现在大写和小写字母之前。因此,数字前缀优先于构成作者姓名的后续字母。例如,带有作者字段的条目
"\noopsort{01}Author, Anna and Zebulon Zingales"
将放置在带有作者字段的条目之前"\noopsort{02}Aardvark, Alison and Sean Sheep"
。一个可能并不令人讨厌的副作用是之内每个组/主题的条目将按字母顺序排序。最后,因为
\noopsort
就 LaTeX 而言,其参数不会“执行任何操作”,所以标签不会显示在排版书目中。\bibliographystyle
然后,重新运行 LaTeX — — 您确实将from的参数更改为unsrt
,plain
对吗? — — BibTeX,然后再次运行 LaTeX 两次。