zotero,文献管理工具中的VSCode
作为“最佳实践”的忠实拥趸,在我发现电脑上的paper已经很难用层级文件夹进行存放的时候,便开始尝试寻找一个“完美”的文献管理软件。我希望心目中的ta有下面这几个特点(按重要性排序):
对文献进行有效归类:用层级文件夹进行管理的缺点在于检索、整理的困难。最好能够为文献打上不同的标签,并且根据标签进行检索。比如“object detection”、“GAN”、“导师让审的投稿”、“导师发的每次能引就引的文章”、“我的学术垃圾”等。跨平台同步:我希望实验室台式机上没看完的文献,笔记本电脑上能接着读;笔记本上没读完的,平板电脑上能接着读;平板上没读完的,可以拉屎的时候用手机接着读。灵活增添条目:我一般会在Google Scholar和arXiv上找文献。对于arXiv来说,基本都能直接下载到pdf文件,我希望可以高效地连基本信息带pdf一起丢进文献库。对于Google Scholar,有时不能直接下载原文,我希望可以先把基本信息丢进去,在acm dl / ieee access / 某hub上下好了pdf之后再补一手。免费:最好可以免费享受到以上服务。
经过大量的文献调研(知乎),我发现使用比较广泛的文献管理软件有这么几个:EndNode(WoS家)、Mendeley(Elsevier家)、Zotero(开源野路子)、Citavi(瑞士人整的)。
他们似乎各有千秋,人气都很高,但一个跨平台甩出来,Citavi首先应声落马。Citavi虽然看上去功能很强大,基本上是其他所有文献管理软件的并集(这也许就是瑞士军刀精神吧,俗称大杂烩),但是这家伙只支持Windows,对于Mac的官方支持是指导你装一个Windows虚拟机(不禁让我想起我校某在线教育平台),更别提什么手机平板了,这显然是让人无法接受的。EndNote是付费软件,价格不菲且并不支持我需求最大的标签系统。剩下Mendeley和Zotero这两位候选者,我都试用了一下,然后基于我的需求做出了下面这个表:
作为一名程序员,我几乎毫不犹豫地选择了Zotero。
WebDAV(我们就简单地认为是一种同步云盘协议)意味着我们可以使用其他廉价、快速的同步云盘代替官方的云同步系统,以避免高昂的空间购买费用和与国外服务器的通信障碍。我的电脑上,800多篇文献占用了3GB的空间,所以免费空间一定是不够用的(300MB简直是在闹,2GB也好不到哪去)。
插件简直是开源社区的精髓所在。自定义插件给用户们提供了广阔的空间,极大扩展了软件本身的边界,想想我们用的Chrome和VSCode。
上面这两个优势,可以说吊打其他所有文献管理软件。当然,这种模式并不适合所有人,如果你是以下几种用户之一,我认为你可以更多地考虑其他优秀、成熟的文献管理软件:
不太愿意动手做定制,更希望“开箱即用”。对跨平台性和云同步没有需求。iPad用户。(唯一可用的第三方App PaperShip同步功能失效了)希望在文献管理软件内进行pdf的批注,或希望对pdf进行全文检索。(这是Zotero目前最欠缺的两个特性)
在这个指南中,我会详细地讲解Zotero中你会用到的几乎所有功能(添加、管理、导出文献等),并且教大家配合坚果云(20GB免费空间的同步云盘)通过Zotero中内置的WebDAV接口进行云同步的配置。最后,我们将简单地介绍Zotero中的插件机制,以及Zotero5中特色的RSS订阅功能。
安装Zotero
PC
在Zotero官网 /download/ 安装客户端和浏览器插件(Connector)。
之后的讲解将以Zotero Mac客户端和Chrome插件为例,各平台都差不了太多。另外建议大家下好客户端之后,在设置里把语言调回成英文(如下图),以避免一些奇怪的翻译。
移动平台
如果你使用Zotero自带的云同步,可以通过直接访问Zotero网站 来进行文献库的获取和编辑,以及使用 Bookmarklet 在移动端浏览器上添加文献。
Zotero没有官方的移动端App。第三方App有:PaperShip (iOS,亲测同步功能用不了)、Zoo for Zotero (Android)、ZotDroid (Android)、ZotEZ2 (Android) 。如果使用WebDAV的方式进行云同步,则只能通过支持WebDAV的第三方App访问自己的文献库。
添加文献
Zotero添加文献主要有通过浏览器插件添加和手动添加两种方式。
通过浏览器插件添加
注意,通过这种方式添加需要保证Zotero客户端在运行状态。
安装好浏览器插件后,浏览器的插件栏会多出一个Zotero图标(空白页面下),如下图红框。
随手打开一篇arXiv上的文章,你会发现这个图标变成了一张纸的样子,这意味着Zotero插件检测到了一篇文献。点一下它,将出现下图中的提示框,Zotero说,我帮你把这个文献保存在“My Library”啦,除了它自身的信息之外,还有一个“Comment”,一个全文PDF文件,以及一个网页快照(Snapshot)。
打开Zotero,这篇文献已经出现在“My Library”中了,连同下载的所有附件。如果附件没有出现的话,你需要稍等片刻,因为PDF的下载可能需要一些时间。
现在我们打开一个Google Scholar搜索结果页面,你会发现这个图标变成了一个“文件夹”,因为Zotero在这个页面找到了多篇文献。点击文件夹图标,在弹出的窗口可以选择一篇或多篇文献加入文献库。
Amazing!打开Zotero,刚才选择的文献全部被加进来了!
即使在找不到文献的页面,Zotero也可以保存网页的快照(Snapshot)以供离线查看。这是个非常实用的功能,一些大佬的技术博客、公众号推送、发出来可能很快就不会存在的文章,都可以通过这种方式用Zotero统一管理,简直不能太方便。下面的图中我用这种方式保存了一篇GCN教程:
在知道有这个功能之后,我做的第一件事是保存了自己投过所有文章的review,以在骄傲自满的时候给自己沉重打击。
手动添加
手动添加最常用的情况是直接导入一个本地的PDF文件。方法是直接把PDF文件拖进Zotero界面,像下面这样。
Zotero会自动识别PDF中的各种元数据,自动填充条目信息:
并不是每一个PDF文件都能够识别得很准确,比如这篇Conference Paper就被识别成了Book Section,作者的顺序也不对。使用这种方法导入通常需要手动再进行一些修改。
当然,对于任何一个条目,除了修改基本信息之外,我们也可以手动为它添加各种附件。比如我们通过浏览器添加了一篇没有全文PDF的文献,我们可以通过这种方法为其加入自己下载的PDF。方法是右击条目,选择“Add attachment”。
这里“Attach Stored Copy of File”和“Attach Link to File”的区别是,前者会把这个文件复制一份丢进文献库,而后者只会把这个附件指向原文件(类似超链接)。
Zotero也支持直接通过ISBN、DOI、PMID或arXiv ID来添加文献。点击工具栏的“魔棒”图标,输入一个ISBN编码:
Zotero会去网上找这个编码对应的元数据,把它加进文献库:
最后,我们也可以纯手动添加条目,自己填写所有数据域、添加附件。点击工具栏的加号按钮,选择一个合适的类型即可。
管理文献
在文献管理上,Zotero有文件夹(collection)、标签(tag)和便捷搜索(saved search)三种方式。
文件夹(collection)管理
在Zotero客户端左边栏的“My Library”上右键选择“New Collection”(或者点击最左上角的按钮),新建一个文件夹:
Zotero里的文件夹和操作系统里是一样的,我们可以把文献在文件夹之间拖来拖去,还可以在文件夹下新建子文件夹,建立层级的树状结构:
如果只是使用collection,其实和你不用Zotero、在电脑上建一层一层的文件夹进行管理没有很大区别。我一般会用collection进行数据来源层级的区分(比如论文、公众号、网页等),再使用标签(tag)机制进行进一步的细粒度管理。
标签(tag)管理
我们可以对文献库中的文献添加一个或多个自定义的标签(tag):
也可以在用浏览器插件添加文献时顺手添加:
Zotero支持最多为9个tag分别指定不同的颜色,做法是在界面左下角的tag面板中,右击一个tag,选择“Assign Color”。
如果一个文献被打上了带颜色的标签,这个颜色的色块也会被显示在文献标题中,一目了然,区别起来很方便!
现在,我们可以通过点击tag面板中的标签来实现对于文献的筛选了!
便捷搜索(saved search)
我们有时候需要对文献库进行一些搜索,针对关键词、标签,或者二者都有。但有些常用的搜索条件,我们不希望每次都重新输入,这时候便捷搜索功能(saved search)就是一个强大的工具。
右击“My Library”,选择“New Saved Search”。
在弹出的窗口中,输入检索条件,点击“OK”。比如这里我做了一个ICCV文章的搜索,限定会议名称包含“IEEE International Conference on Computer Vision”,日期是“”。当然这需要文献的元数据准确。
点击“OK”,我们会发现出现了这样带齿轮的紫色文件夹,这就是便捷搜索生成的结果。文件夹中包含了当前文献库中符合此条件的所有文献,如果新增添的文献符合搜索条件的话,也会自动出现在这里。
在工具栏点击搜索按钮,在弹出的高级搜索对话框中,也可以保存便捷搜索:
跨平台云同步
如果需要在不同平台、不同设备上维护同一个文献库,我们就需要云同步功能的加持。
在设置界面的“Sync”选项卡中输入自己的Zotero账号(在官网注册),点击“Set Up Syncing”就开启云同步了!
这里“Sync automatically”的意思是文献库发生变化的时候立刻自动同步;“Sync full-text content”是说同步全文内容,如PDF等附件。
我们开始的时候提到,Zotero免费云空间只有300MB,如果我们同时同步全文内容,可能只能同步100篇左右,这是远远不够的。Zotero良心地提供了WebDAV接口,允许我们使用其他支持WebDAV协议的同步云盘来代替默认的云空间来进行云同步操作。
在支持WebDAV的同步云盘中,最知名的当属Dropbox。但由于一些显而易见的原因,Dropbox已经无法从国内直接访问了。国内同步云盘中,支持WebDAV的只有坚果云一家。虽然名字听着有点野鸡,但是人家已经是十年的老牌公司了,服务质量非常可靠。不氪金的坚果云提供20GB的存储空间,每月1GB的上传流量和3GB的下载流量,对于文献同步盘个人使用已经足够了。即使不够用,只需200RMB/年即可获得42GB空间和无限上传下载流量,价格足够良心,把充腾讯视频会员的钱拿来管理文献,感觉自己立刻变得好学了起来。
首先我们需要去坚果云官网注册个人账号。注册好之后在坚果云个人中心的“账户信息”中找到“安全选项”选项卡。
在页面下方的“第三方应用管理”中添加一个应用,生成密码。
接下来打开Zotero的同步配置,在下方同步方式中选择“WebDAV”,填入刚才坚果云页面中给出的服务器地址和账户,密码就是刚才生成的应用密码。点击“Verify Server”可以验证信息是否填写正确,如果正确会跳出一个窗口提示你云盘上还没有zotero这个文件夹,问你要不要新建一个,选择“create”即可。
我一般会把的“Sync automatically”关掉,因为一些学术垃圾可能读完就删掉了,不想要占用额外的上传下载流量(白嫖坚果云有上传下载流量限制)。需要同步的时候点击右上方的同步按钮即可。
笔记系统
Zotero的笔记系统比较简单。由于Zotero没有内置PDF阅读器,所以PDF内部的高亮、标注等功能依赖用户的PDF阅读器。但Zotero允许我们给文献添加多篇笔记(note),在任意一篇文献的“Notes”选项卡中点击“Add”来添加笔记。
我们可以在出现的富文本编辑器中写简单的笔记。注意左边,文献的附件中出现了一条新的笔记。笔记也可以打标签,或是和文献一起被同步至云空间。
值得一提的是,你还可以在工具栏中,添加独立的笔记条目(standalone note),该条目不依赖于任何文献。这意味着,Zotero还可以当做一个笔记本/备忘录来用[呲牙]。通用性多强啊!
文献导出
选中一篇或多篇文献,右击菜单中有三种导出方式:Export Items、Create Bibliography from Items和Generate Report from Items。
其中:
Export Items可以将文献导出成不同的格式,包括BibTex、Bookmarks、CSV、Endnote XML等,也同时可以导出附件。我一般用来和他人分享文章,也可以用来在不同文献管理软件之间做数据迁移。Create Bibliography from Items就是我们在写论文时生成参考文献最常用的选项了。弹出的对话框中可以选择不同的参考文献格式和导出的形式(默认是复制到剪贴板)。
Generate Report from Items可以为这些文献生成一个固定格式的HTML report,里面有每篇文献的元数据。感觉没啥用,官方说可以用来“Reviewing Abstracts”、“Teaching”以及“Organizing Notes into Outlines”。
这里有一个小技巧——最便捷生成参考文献的方式,是直接把选中的文献拖动至文本编辑器中;或者按Cmd+Shift+C,再粘贴到文本编辑框中。这种方式输出的参考文献格式可以在设置的Export选项卡里更改,我改成了BibTex。下面的GIF展示了这种“Quick Copy”的特性,实在是方便得过分。
Zotero还提供了针对Word、LibreOffice的插件,以及对Google Docs的支持,如果你用以上工具写作,看看官方的介绍吧。
进阶1:RSS订阅
不用不知道,用了才发现,RSS和文献管理软件简直是绝配。众所周知,RSS可以用来订阅博客、新闻等网站的更新内容摘要。也众所周知,这玩意早就已经过气了。但是实际上,很多人没有发现,RSS在学术研究中还是很好用的。比如我们可以订阅arXiv某个方向的RSS,来获取这个方向最新的研究成果。
Zotero5中加入了RSS订阅功能。点击工具栏的“New Library”按钮,选择“New Feed” - “From URL”。
弹出的窗口中,我们填写RSS源的信息。这里以arXiv为例,订阅cs.CV方向的最新论文。设置数据抓取的时间间隔(Update feed every)以及已读/未读项目被淘汰掉的时间(Remove read/unread feed items after)。
设置好后,在“Feeds”这个Library下出现了我们的订阅,学术界最新进展尽在掌握。对于其中的每一个文献,我们可以标为已读/未读(Mark As Read/Unread)。如果看了摘要觉得可以进一步读下去,还可以放进文献库(Add to “My Library”)。对于arXiv这个源,当你放进文献库的时候,还会自动下载PDF原文,非常方便。
进阶2:Zotero插件
最后简单地讲一下Zotero的插件系统。正如我们前面所说,插件极大扩展了软件的边界,增强了使用的定制感。Zotero插件也不例外。Github上有下面几个高星Zotero插件:
zotfile 更好的附件管理。提供自动的文件重命名功能,以及可以更便捷地为条目添加附件等。zotero-better-bibtex 提供了更强大的BibTex支持,如稳定的citation key自动生成、可自定义的citation key、自由度更高的导出等等。zotero-scihub 顾名思义,自动帮你去某hub上找原文。zotero-scholar-citations 自动从Google Scholar扒引用数,这样就可以根据引用数排序或筛选了!
插件的安装方式是在工具菜单选择“Add-ons”,点击右上角的设置图标,选择“Install Add-on From File”,导入下载好的.xpi插件包即可。
希望大家都可以享受Zotero带来的科研快感。虽然Zotero目前还有很多缺陷和问题(移动端App、PDF标注、文件内搜索…),还不能挺直腰杆说是目前最好的文献管理解决方案,但我相信它是最有活力、最有前景的一个。最后的最后大胆猜想一下,看看会不会梦想成真:
半年内会出现好用的Markdown插件半年内会出现对Overleaf的支持一年内会有Zotero官方移动版
拭目以待。彼时距离Zotero一统江湖不久矣!