磨刀不误砍柴工,文献管理软件这把刀确实是值得打磨的,选择Zotero而非其它文献管理工具,主要是看重了它的免费和可配置性,适合重度使用。 最新版 Zotero 7 在 Zotero 6 的基础上,进行了升级,包括非常多的优化,例如最基础的UI看着更漂亮了,等我把它的各种插件和配置都鼓捣好了,就更有动力(但愿吧)打开来看文献了。

网上关于Zotero有很多分享教程,但是绝大部分都是入门级的配置笔记,参考价值并不大,本文最主要的参考是Zotero非官方中文社区

基础

本地安装

直接从官网下载 Zotero 7,然后傻瓜式安装即可,需要注意的是两个位置:

  • 首先是软件安装位置,可以使用自定义安装方式,挑一个合适的位置即可,例如D:\ProgramMain\Zotero7
  • 然后是本地数据存储位置,默认是~/Zotero

数据存储位置比较占地方,我想将其迁移到别的位置,例如E:\<user>\Documents\Zotero7,首先需要在设置中更改

1
编辑 -> 设置 -> 高级 -> 数据存储位置

将其更改为自定义的目标路径,然后根据提示进行操作:将软件关闭,将原文件夹中的所有内容手动剪切到新文件夹,然后重新打开软件。

建议对数据存储位置整个目录进行定期备份,否则会丢失目录信息,但是因为存在数据库文件,不要把整个文件夹塞到Onedrive中,否则小更改会频繁触发备份。

存储与同步

首先我们需要搞清楚的是,文献管理软件本质上有两类数据需要存储和同步:

  • 首先,文献的PDF文件,通常是直接从各种网站上下载得到,然后存储在Zotero的数据库中的;
  • 此外,对于这些文献在阅读过程中,也会产生一些附属数据,例如标签,笔记等;
  • 除此之外,还有一些争对Zotero自身和插件的配置数据。

Zotero 将这些分成了两部分:

  • 数据同步:这部分占比很小,注册并登陆Zotero账户之后,Zotero直接提供对这些数据的云存储;
  • 文件同步:这部分占比很大,Zotero并没有免费提供存储,我们通常借助于webdav同步,最常用的就是坚果云,它支持webdav服务。如果坚果云仅仅用来干这一件事的话,免费账户每个月1G的上传也差不多够用。

需要到坚果云中拿到一个webdav密钥(不是坚果云账户密码),然后

1
编辑 -> 设置 -> 同步 -> 文件同步

填写到对应位置即可,并且将webdav链接填好,然后可以点击按钮验证通过。可以将下载文件的时机从需要时改为同步时,省得打开文件时等待PDF的下载。

显示列和视图

每一个条目都有非常多的信息,除了最基本的标题、创建者、日期等,还有很多辅助信息,我们可以选择部分列显示,某些插件也会使用额外的列来提供信息。

最基本的信息就是条目的标题(必须)和作者了,Style插件允许我们自定义显示哪些作者,例如0:1,-1代表显示第一个和最后一个作者。

视图则是下文中的Style插件所提供的功能,允许我们保存几套列显示的配置,并且可以快速切换,例如:

  • 阅读视图:提供条目的阅读状态,包括状态、阅读时间、#标签、标注,简记等;
  • 期刊视图:提供条目对应的期刊信息,包括期刊名称,期刊等级和影响因子等;
  • 日期视图:提供条目的日期,包括期刊发布日期,条目添加日期,条目修改日期等;

除了这里的日期列,其它信息都需要下文中的Style插件提供,包括这些信息:

  • 阅读进度:使用热力图的形式展示阅读进度,直接显示在条目标题项中,颜色高的代表已经精读过的部分;(自动生成)
  • 状态:包括空值、unread、reading、done四种状态,实际底层是通过标签机制实现的,见下文;(状态切换目前需要手动进行,也可以依赖其它tag插件自动进行)
  • #标签:显示文字的特殊标签,要求以#开头,见下文;(手动)
  • 简记:针对当前条目的简短文字说明;(手动)
  • 阅读时间:使用进度条的形式展示阅读当前文献所花费的时间(自动生成)
  • 标注:使用热力图的形式展示标注内容在全文的位置(自动生成)

包括这几列信息的阅读视图如下

实践发现,阅读进度、阅读时间和标注信息全都没什么用,影响软件性能,可能导致卡顿,并且数据显示不及时,数据容易丢失,决定将其关闭。

包含期刊信息的期刊视图如下

包含日期信息的日期视图如下

标签

首先整理一下Zotero的标签机制,因为有很多插件在原版标签机制的基础上进行了扩展,显得比较混乱。

Zotero将标签分为两类:

  • 手动标签:顾名思义,用户手动添加的标签
  • 自动标签:在导入过程中,Zotero 自动尝试抓取某些PDF文件中的关键词和主题词作为标签

个人不太喜欢自动标签,因此选择将现有的自动标签全部关闭,并且把对应选项关闭

1
编辑 -> 设置 -> 杂项 -> 基于关键词和主题词自动为条目添加标签

我们只讨论手动标签的行为。

标签是如何显示的?Zotero的逻辑是这样的:

  • 可以通过手动添加的方式添加一个标签,然后它就会在左下角的标签窗口显示;
  • 可以为标签加上一个颜色(只能选择九种颜色之一,不同标签可以共用一个颜色,但是一个库只允许有九个标签有颜色)和权重(权重影响排序)

虽然没有颜色的标签也不影响使用,我们正常使用标签完成标注和筛选功能,但是有颜色的标签地位是不一样的:它会以对应颜色的圆点呈现在条目标题前面,如图

因为只有九个颜色,我们实际无法区分相同颜色的标签,至于普通标签,就更不会在这里显示了。

除此之外,Zotero对使用emoji开头的标签还提供了额外支持:直接显示emoji而非圆点,如图

需要注意的是:

  • 我们不需要为emoji标签添加颜色,即使添加了也不会在上面体现。
  • 如果一个emoji标签开头有多个emoji,这里也会同样显示多个emoji。

我们可以用emoji标签实现一些辅助功能,例如用不同数目的星星标签代表我们对条目的不同打分:

  • ⭐⭐
  • ⭐⭐⭐

下面的Style插件就帮我们实现了这个评价功能,并且为其添加了一些辅助设施,原理就是这里的emoji标签。我觉得这个功能没啥用,就禁用了。

需要注意的是,将标签放在条目标题头部的做法其实是Zotero 7的新功能(个人感觉比较突兀),在Zotero 6中的标签是作为单独一列呈现的,但是也只能呈现各种颜色的小圆点或emoji,不支持显示文字;下文中的Style插件提供了将标签拆分为单独一列的功能,可以保持和Zotero 6一样的效果

1
标题 -> 列设置(标题) -> tags

由于Zotero的标签机制很鸡肋,Style插件引入了#标签的概念,它会解析条目的标签数据,提供了一个新列展示所有以#开头的标签的文字。 例如添加内容为#test#重要的标签,由于我们没有添加颜色,并且没有使用emoji开头,这种标签不会在标题开头显示,效果如图

这里的颜色只是Style插件提供的默认颜色。如果我们给#标签加上颜色,那么它既会在标题开头显示,也会在单独的#标题列中显示,效果如图

从实现角度来说,#标签实际就是采用了一个正则匹配/^#(?:.+/)*(.+)/来选择获取#开头的那些标签并进行显示。

除此之外,Style还利用标签机制实现了状态功能,包括:

  • unread
  • reading
  • done

这三种状态其实是通过/unread/reading/done这三个特殊标签实现的,测试发现我们可以改动这几个标签的颜色,但是不能移除颜色,否则功能失效。(使用/开头的标签通常有特殊用途,例如被第三方插件用于定制功能)

插件安装

Zotero 有非常多的第三方插件,主要就是写一些前端的代码,调用一些第三方接口,或者实现一些辅助功能之类的,插件本体是一个.xpi后缀的小文件。

我们可以从 github 上对应的插件项目中下载对应的 .xpi 文件,然后

1
工具 -> 插件 -> (齿轮)-> 从文件中导入插件

导入新的插件之后,通常需要重启整个软件才能生效

因为从 Zotero 6 到 Zotero 7 改动了很多代码,第三方插件通常无法跨版本兼容,只能支持某一个版本,在下载安装时需要注意。

目前的现状是:有的第三方插件分别提供6和7的版本,有的只支持7,有的只支持6并且放弃支持7,因为主要功能已经被官方实现了,例如导入文件时的自动重命名插件。

订阅

大部分期刊都提供了RSS订阅链接,Zotero可以订阅RSS,虽然不能直接下载PDF和生成条目(被反爬虫机制拦截),但是至少会给出最新的文献列表,点击就会跳转到对应网址。

主要插件

Zotero有丰富的第三方插件,可以提供各种扩展功能。

第三方插件整体上说还是不太行,虽然花里胡哨的功能看起来挺好,但是在实际使用中的性能和稳定性都很差。

插件市场——addons

Zotero并不像vscode那样有一个官方的插件平台,这个第三方插件提供了插件市场的功能,包括了各种最主流的插件。

翻译——pdf-translate

这个功能非常重要,安装和配置比较简单,下载了就可以直接使用。

万金油——style

这是一个非常复杂,功能很多的插件,给 Zotero 提供了很多各种各样的功能,并且对UI进行了一些美化,是一个绝对的万金油插件。 这个插件的很多功能已经在前文中介绍了,但是还有很多实用功能没有提到。

Style插件的定制化程度非常高,比如各种颜色和样式都可以自行修改。

值得注意的是,Style插件提供的获取条目对应的期刊信息(期刊等级,影响因子等)的功能,是基于easyscholar平台提供的免费接口实现的, 我们需要先去注册一个账号,然后拿到对应的密钥,将其填入Zotero的配置信息中:首先打开下面的页面

1
编辑 -> 设置 -> 高级 -> 编辑器

然后搜索easyscholar,在对应的条目中输入密钥保存即可。

除了Style插件,其它插件例如 greenfrog 也提供了类似的功能,原理都是一样的,都需要填写easyscholar提供的密码。

虽然Style功能丰富,但是有些功能确实不太实用,而且功能太多会造成卡顿,我们可以在配置中禁用部分不需要的功能

1
编辑 -> 设置 -> Style

在这个界面关闭对应项即可,例如

  • Rating: 显示星星的标签评价功能
  • Nested Tags:基于/的嵌套标签功能
  • Annotation:展示注释占比列
  • Annotation Colors,Show Annotation Color Name:在PDF阅读器中自定义注释颜色和名称的,太花哨了,而且有很多BUG
  • Read Time:阅读时间,没太大用,而且需要切换界面才会更新数据

笔记——better-notes

Zotero自身提供了简单的markdown笔记支持,这个插件对这部分功能进行了增强。

Zotero自动生成的文献阅读笔记模板真香啊,马上从网上抄了几份模板,进行了一些修改,得到了较适合自己的一份文献阅读笔记模板,完整模板存放在Gist上:Simple Zotero Note

效果如图

中文支持——jasminum

这个著名的Zotero插件有一个中文名:茉莉花,它主要是为中文文献提供支持,例如读取PDF中的中文元数据,获取知网上的信息等。

条目合并——zoplicate

Zotero对于文献库中的重复条目提供了检测和合并机制的,但是看起来不太令人满意,这个第三方插件对这部分功能进行了增强。(虽然没怎么用过,先安装了再说)

参考文献——zotero-reference

在PDF阅读过程中,自动检测文献中的参考文献并获取对应数据,看起来很方便。(和上面的zotero-style是同一个作者)

Bibtex生成——better-bibtex

Zotero自身提供了以bibtex格式导出参考文献,这个插件对这部分功能进行了一些增强。

配置备份——Tara

这个zotero插件的中文名为蒲公英,可以对zotero配置信息进行备份,基于这个插件将zotero迁移到别的电脑上非常容易。Tara将所有配置打包后在zotero数据库中创建了一个名为Tara_Backup的特殊条目,包含一个压缩包文件,这个压缩包不需要单独拿出来备份。

注意:这个插件只负责配置的备份,我们还需要自行解决文献数据库自身的备份问题。

快捷操作

  • 当焦点在某个条目时,使用ctrl可以高亮它所属的分类,可能同时属于多个分类。

  • 直接拖动条目到目标分类,条目会被添加到目标分类中,但是原本所属分类仍然保留;按住shift进行拖动,则自动将条目从原本所属分类中移除。

补充

Zotero自带对于笔记的英文语法检查,但是字典不太行,很多误报错的红色下划线看起来很烦,可以在高级配置编辑器中禁用语法检查:搜索下面的条目

1
extensions.spellcheck.inline.max-misspellings

将值从500改为0,然后重启即可。