在上一篇博文中 【Zotero Yes!】最好的文献管理工具Zotero的工科生正确用法,向大家介绍了文献管理神器Zotero。 而除了平时文献调研,学习时的文档管理功能, Zotero也能服务于撰写论文时的文献引用。 .bib文件是在latex撰写论文时大家广为使用的参考文献文件,而Zotero可以很轻易地导出.bib供引用所需:
在Zotero界面左侧, 选择我的文库, 右键->导出文献库->选择Bibtex
再选择需要保存的文件夹目录和.bib文件的名字即可, 极为方便。
由于各种期刊的引用文献的格式各不相同, 因此使用.bib时, 可能还需要自己根据所投期刊的规范, 进行一些修改。 而本文的后半部分就是如果尽可能地自动化这一操作。
由于笔者引用的文献70%以上为IEEE文献, 以下以IEEE为例介绍: IEEE模板下载 点击上述网址, 如果你还下载了Zotero浏览器插件的话, 那只需要点击链接,就能添加IEEE样式。
在Zotero界面, 编辑->首选项->导出 可以选择默认样式, 也就是导出.bib文件的样式, 这里可以选择我们刚下载的IEEE样式。 然而坑就坑在, IEEE自己的样式其实是不规范的。 这并不是Zotero的锅,因为哪怕去IEEE官网复制某篇paper的bibtex, 也同样主要存在以下两个问题:
- 文章题目每个单词的首字母都会大写, 而事实上规范的写法应该是只有第一个单词的首字母大写(及特定缩写词)
- 期刊或会议应该缩写, 但IEEE只会缩写部分期刊和会议 另外, Zotero还会自动导出{note}项,也会干扰最后的引用结果。
尽管我们并不知道如何自己撰写一份Zotero规范样式, 但我们可以通过python及正则表达式, 对导出的.bib文件进行改进和完善!
这里我用正则写了非常简答的python代码来实现,参考github:Zoreto_TWC 因为代码非常简单,这里就不介绍了, 直接来看效果: 这是Zotero直接导出的.bib的引用效果。 我们打开github库中的.exe文件(或者运行python程序)
输入.bib文件所在的目录, 然后处理完成后, 新的.bib会覆盖之前不规范的。
再来看看效果: 尽管期刊的缩写还没有完成, 暂时只能手动, 但可以看到,冗余的部分都已被删除, 标题的大小写也符合了规范。
因此,Zoreto + python, 真正的自动化引用文献!