我可以强制 amsalpha 书目样式按时间顺序对同一作者的论文进行排序吗?
我使用的是带有字母选项的 amsrefs 包,它为每个参考文献提供了一个标签,例如 [GLS07] 或 [Hap88]。本质上,规则是,对于单一作者的论文,标签将由姓氏的前三个字母加上年份的最后两位数字组成,而对于有多位作者的论文,标签将是姓氏首字母的完整列表加上年份的最后两位数字。
amsrefs 包否决了 \bibliographystle 命令,因此该命令被省略;该包使用选项 abbrev、alphabetic 和 msc-links 运行(alphabetic 是产生 alpha 样式标签的选项)。
在输出中,参考文献按标签字母顺序排序。一个问题询问如何强制按作者的字母顺序对参考书目进行排序 - 我同意这不是一件好事,因为这会使读者更难找到正确的参考资料,特别是如果有很多参考资料的话。但是,仅按标签字母顺序排序会将 [FZ00] 放在 [FZ99] 之前。对我来说,这似乎令人困惑 - 我知道 00 指的是 2000 年,99 指的是 1999 年,因此 [FZ99] 应该在 [FZ00] 之前。我可以更改这一点吗,最好不必手动指定参考书目的整个顺序?
(我想还有一个小问题 - 大多数人是否同意在 [FZ99] 之后寻找 [FZ00]?如果只有我一个人这样想,我可能应该不管它。我想有一种说法是,就像读者不一定知道首字母缩写的含义以便按作者的字母顺序在参考文献列表中进行搜索一样,他们也不知道 00 是 1900 还是 2000;但我认为在这种情况下更容易猜测。)
更新:如果我不使用 amsrefs,而是使用 \bibliographystyle{amsalpha} 指定样式,那么问题就消失了。但我不知道如何使用 abbrev 和 msc-links 选项,而我仍然想要这些选项。似乎应该有一种方法可以通过 amsrefs 来实现这一点。
答案1
bibtex 排序字段的规范顺序如下:作者(或排序键,如果alpha
要求排序)、年份、标题。
无论 bibtex 排序是由 aplain
还是alpha
.bst
文件控制,如果出版年份相同,则控制排序的元素就是标题。因此,如果较早部分的标题以“z”开头,则只有特殊处理才能强制将其排序在标题以“a”开头的项目之前。如果出版年份不同,并且第二部分的出版年份早于第一部分,则会出现同样的问题。
让我们来看一个极端的例子。部分“a”于 2000 年出版,部分“b”于 1999 年出版。这将导致排序键(如果alpha
使用样式)的两位数年份对条目进行“无序”排序。即使摆弄标题的排序方式也无济于事。最直接的方法是调整年份字段,使其不会影响输出,但条目的顺序除外。
bibtex 的作者认识到同一作者的多部作品不一定按逻辑顺序排序,他在手册 ( texdoc bibtex
) 第 4 页中提供了此解决方法。
在.bib
数据库中添加此命令:
@PREAMBLE{ "\newcommand{\noopsort}[1]{} " }
这将被传递到.bbl
文件中,并在乳胶运行中应用。
在文件中受影响的项目条目中.bib
,修改date
字段来完成你的脏活:
year = "{\noopsort{1999b}}1999"
...
year = "{\noopsort{1999a}}2000"
当然,应该选择人工排序字段,以便这些条目(根据手册)
与作者的其他作品相比,处于合理的位置。
虽然该\noopsort
技术可以应用于标题,但始终使用日期不应该对未来的处理产生任何不良影响;只有当同一作者的其他书籍添加到文件中.bib
时才需要检查。
答案2
我想出了一个解决方法,虽然相当糟糕,但对我来说,并不像以某种方式修改 .bib 文件那么糟糕。
amsrefs
使用选项加载,然后运行 BibTeX(也应使用y2k
选项)。然后在运行 LaTeX 之前删除该选项。alphabetic
y2k
之所以有效,是因为 amsrefs 使用 biblipgraphy 样式运行 BibTeX韓國,它是几种样式的容器——选择哪种样式取决于加载时指定的选项amsrefs
。当您运行 BibTeX 时,将输出一个 .bbl 文件,其中的参考文献的顺序与将创建的标签的字母顺序兼容。使用和amsrefs
创建的标签包括完整年份,因此按字母顺序对这些标签进行排序相当于我想要的排序。如果在运行 LaTeX 之前再次删除该选项,则会创建只有两位年份数字的较短标签,但参考文献仍按照它们在 .bbl 文件中出现的顺序出现,所以我得到了我想要的排序。alphabetic
y2k
y2k
我感兴趣的是,是否有一种方法可以告诉amsrefs
使用对应于amsxprt
选择选项的样式alphabetic
(显然y2k
是这样称呼的amsry
),而不必实际选择这些选项。
的设计amsrefs
似乎相当清楚地表明,我想要使用的顺序与 AMS 想要使用的顺序不同 - 除非我使用参考书目样式amsalpha
(不带amsrefs
),我会得到相同的标签但采用我喜欢的排序。