我想嗜酒的制作自定义格式的参考文献。事实上,我的目标是对amsplain
bibtex 样式进行小幅修改。该样式按字母顺序对所有出现的参考文献进行排序,并按字母顺序编号。我无法使用 bibulous 重现此行为。相关选项是citelabel
和sortkey
。基本上citelabel
应该是“按字母顺序排列的数字”并且sortkey
应该等于<citelabel>
。我能得到的最佳近似值是以下按字母顺序排序,但也放置按字母顺序组成的标签。
TEMPLATES:
article = <au>, <title>, <journal> <volume> (<year>) <startpage> -- <endpage>.
SPECIAL-TEMPLATES:
authorlist = <author.to_namelist()>
editorlist = <editor.to_namelist()>
authorname.n = [<authorlist.n.prefix> ]<authorlist.n.last>[ <authorlist.n.first.initial()>.][ <authorlist.n.middle.initial()>.][, <authorlist.n.suffix>.]
au = <authorname.0>, ..., <authorname.9>
ed = [<editorlist.0.first.initial()>. ][ <editorlist.0.middle.initial()>. ][<editorlist.0.prefix> ]<editorlist.0.last>[, <editorlist.0.suffix>.]
citelabel = <citealpha>
sortkey = <citelabel>
如果我更改citelabel
为,<citenum>
那么参考文献将按照在文档中出现的顺序进行编号,而这并不是我想要的。
请不要建议 bibtex 解决方案,我知道它们存在,但我想用 bibulous 来解决这个问题。
答案1
我确认 Bibulous 无法实现您想要的功能,因为它无法访问一个变量,该变量给出了参考文献在参考文献列表中的排序数字顺序。所以我添加了它。现在可以通过下载Bibulous.py 位于 Bibulous 的 GitHub 页面上立即,并将在下次更新中通过 pip(Python 的包管理器系统)提供。
现在,每个引用都有一个始终可用的变量,称为“sortnum”。因此,现在您可以通过定义以下两个特殊模板来实现您想要的效果:
sortkey = [<authorlist.0.last><authorlist.0.first><year>|<editorlist.0.last><editorlist.0.first><year>]
citelabel = <sortnum>
这将按作者姓氏(或编辑姓氏,如果前者未定义)对参考文献进行排序。它还将作者的名字和年份添加到排序键中,以使键唯一,以防有多个参考文献具有相同的作者姓氏。
排序后,此模板定义使用引用的数字顺序作为引用标签。在 Bibulous 上运行此模板示例 #2,结果如下