坑边闲话:在第 1 讲中,我简单地推荐了几个 PDF 电子书下载网站,在第 2 讲中,较为详细地讲了一下如何利用 Abbyy Finereader 15 以及其他几款软件进行 PDF 精修,主要是制作标签、添加 OCR 后的文本层。常言道,师傅领进门,修行看个人,没有哪个知识是看一遍就能彻底掌握的,更何况我传授的仅仅是一些经验,算不得严肃的知识。这些教程,需要读者看完了再去实践,掌握一款软件的最好方法就是不断使用这款软件,然后向高手请教。

接下来,我将介绍如何管理浩大的 PDF 电子书仓库。

本篇文章适合以下同学阅读:

  • 平日里做科研,有大量的 PDF 电子论文需要管理
  • 自己有很多 PDF 电子书,需要进行管理
  • 喜欢对自己的知识库进行分门别类地整理,以备不时之需

1. 当搜索代替了分类·

不得不承认,当我们的文件数量到达了一定的程度,凭借记忆进行树状存取很困难,这时候最简单的方法就是搜索,利用文件系统自带的搜索功能进行检索、利用 macOS 上的 Spotlight 进行搜索、利用 Windows 上的 Everything.exe 软件进行检索。

或许以上的这个认识对于如何管理自己的书库没有用处,但是这确是管理的中心哲学。

当文件量较少时,通过心中的树状图进行管理;当文件很多时,通过搜索进行存取

2. EndNote x9.3 初探·

科研人员对于 EndNote 这款软件应该不陌生,该软件是科睿唯安(Clarivate Analytics)公司开发的一款文献管理软件,换言之,利用该软件可以方便地管理你看过的论文、专著。

中间强调一点,这款软件是收费的,但是,大部分高校应该是购买了该软件的版权,所以赶紧登上你们学校的图书馆主页,看看有没有 EndNote 的下载链接。

为什么要强调 X9.3 版本?这主要与苹果公司有关。在 macOS Catalina 发布之后,苹果毅然决然地抛弃了所有的 32 位软件,以后 macOS 只会兼容 64 位软件。而 EndNote X9.2 以及之前的版本,都是 32 位的。果不其然,苹果的号召力还是牛,科睿唯安第一时间更新了 macOS 版软件,将版本号提升到了 9.3 ,架构升级为 64 位。但是在后来相当长的一段时间里,Windows 那边一直是 9.2,这也带来了一个棘手的问题,Windows 和 Mac 无法互相打开彼此创建的 EndNote .enl 仓库文件。一直到 2020 年,在无数双电脑用户的写信恳求下,科睿唯安发布了两个平台互相兼容的软件版本,Windows 与 Mac 双双升级到了 9.3.

不过,EndNote for Windows 的 9.3 版本依旧是 32 位的。

话说回来,我们今天要讲的是 EndNote 的高级教程,所以我默认你会一些基础的 EndNote 操作技巧,如导入、导出、与 MS Word 联动等。但是如果要用好这款软件,我们需要掌握很多软件本身的知识,正如学习 git 的最好方法就是了解 git 是如何设计的。

2.1 EndNote 的文件结构·

每个数据库类的软件都要有自己的数据结构,EndNote 也不例外。EndNote 管理的是条目以及相应的 PDF Attachments,而且主要管理对象是条目。所谓的条目,就是有关一篇文献的基本信息,如作者(Author)、年份(Year)、标题(Title)、发表地点(Place Published)、出版商(Publisher)、卷(Volume)、ISBN/ISSN 等。而且,EndNote 更关心条目,而不是 PDF 附件。

你可能会问,我们不是要学习一款 PDF 管理软件吗,怎么说来说去,这款软件竟然不怎么关心 PDF 附件,而更加关心这本书(论文)的基本信息? 没错,确实如此,但是也无需担心,能真正索引一部书的,只能是这本书的元信息(Metadata),比如,同一本书,可能被多家出版社多次出版,而这些书名相同、版本不同的书,肯定不能被认为是同一书籍。所以我们为了防止日后产生麻烦的问题,就要从电子书本身的出版信息来入手!数据库理论告诉我们,主键约束是最重要的!能对某份材料进行唯一标记,是管理的核心。

所以,专注出版元信息,才能在后期不出问题;专注元数据,才能准确定位一本书。 那么这本书的元数据在哪儿了?出版信息在哪儿了?不用慌,打开你的书,中国大陆出版的书,一定会有一页被称为版权页的页面,它大致如图 1 这样子。相信大家看一眼就知道如何对应到 PDF 出版信息中的哪些项。但是,在这儿我要说点很难注意到的部分。首先是 Title 这个最容易被人忽视的地方,Title 就是标题,标题中不应该包含版本号,诸如《计算机网络-中文第 7 版》这种标题是严重不合规范的,版本号应该放在 Edition 字段,用英文序数词缩写表示,如第一版是 1st,第二版是 2nd,第三版是 3rd 等!

其实,从出版号这一点来看,你会发现把版本号写入 Title 的书大多数都是翻译的书,中文原版基本都不会这样写。其实出版社这么写也是有自己的苦衷,首先,一本多次再版的英文书,可能到了第 N 版才被翻译为中文,所以前面的第 1~N-1 版并没有与之对应的中文版,所以在版本号里莫名添加一个第 N 版并不合乎逻辑,可怜的策划编辑就只好在 Title 里加了一个不伦不类的“中文第 N 版”、“原书第 N 版”。大多数的乱象,其实本就是由于这种不合理导致的,但是乱象背后,往往也有自己的道理。在这里,我还是强烈建议把 Title 中的版本号删掉,写入 Edition 字段。

2.1.1 EndNote x9.3 支持 XML 格式数据存取·

本节属于高级内容,需要有一定的计算机基础才能看懂。

既然 EndNote 主要管理文献条目,而文献条目本身是以各种字段表示的,那么这种数据库就很适合用 XML 进行导入导出。如果你想验证这一点,可以把一个 .enl 数据库导出为 XML 格式。当然,这个 XML 格式并不是为了人阅读的,所以没有格式化,用 VSCode 简单处理一下,就能得到一份比较容易阅读的 XML 文件。

图 1. 可以看到,XML 的结构其实很简单,但是很详细。每篇文章的 Author 字段(),有几个 Author 就有几个  标签,这方便我们日后根据作者名进行检索。而比较令我哭笑不得的是,ISBN 部分竟然也有字体、字号这一个选项。值得注意的是, 字段里,保存了你的 PDF 附属文件所在的文件夹。这意味着,当你把 .enl 导出之后,再导入一个新的空 .enl 文件后,并不需要重构 PDF 附加文件。这就很爽了。

可以发现,XML 的结构是这样的,全篇以一句 <?xml version="1.0" encoding="UTF-8" ?> 打头,然后进入 <xml> 体,<xml> 体中仅有一个记录,那就是 <records><records> 中有若干个 <record>,而这每一个 <record> 都是一条完整的记录!你的 EndNote 里有几个条目,就有几个 <record> 信息。

这里我要提醒一下,因为本人不是学习新闻出版学的,所以对于中外出版界的术语翻译并不是十分了解,上述知识是根据自己的摸索得到的,有此方面专业知识的同学,欢迎告诉我。

这里重点强调一点,一个 <record> 的主键并不是 <rec-number> Record Number,记录数。主键其实在 XML 文件中说明了,那就是图 1 第 9 行中的 key 字段,这个字段中保留了db-id,也就是 EndNote 数据库的唯一主键,同时进一步指明该record 在该 EndNote 数据库中的唯一编号,当然,这个唯一编号通常与 <rec-number> 是相同的。

图 2. 图书出版信息。在这个被称为版权页的地方,有着该图书的索引项。这种元数据不像论文那样可以直接在谷歌学术、知网直接导出,大部分还是需要自己手工录入。

说了这么多 XML 的东西,要解释的其实很简单,那就是备份好你的 EndNote 数据库。

还可以看到,导出的 XML 中,条目对应的 PDF 所在的目录是不变的,这就令我们恢复数据库变得很容易。只需要保存两个东西即可:

  • PDF 目录
  • XML 文件

图 3. 一条 record 的 XML 数据结构。最下面的  标签说明, 是遵从之前的所在目录的。

2.1.2 EndNote 与 Word 的联动·

EndNote 可以与 Word 完美结合。安装 EndNote 的过程中,会自动安装 Word 插件。我们在 Word 中用该插件插入一个 Citation,就会得到一个域对象(点击后显示灰色背景的那种文本)。

那这个 Word 域对象和 EndNote 数据库有什么关系呢? 通过分析域代码可以知道,这个域对象里存储了很多东西。

图 4. 鼠标右键,查看域代码,可以观察到与此相关的所有元数据。

图 5. 从 Word 中拷贝出域代码,格式化 Style 之后可以看到,这个小小的 [1] 后面,可是内有乾坤。里面包含了容量相当丰富的东西。其中最重要的就是 recNum 和 db-id 两个值,这两个值能保证你重装电脑之后,打开原来的 EndNote 数据库仍能继续工作。但是需要指出,当你导出 XML 再导入 XML 到新的空白库之后,recNum 或许会改变,这时 EndNote 就无法锚定 Word 中的索引项了。所以论文写作途中,建议不要随便导入 XML 到新库然后删除旧库,否则后果很严重。

Word 调用 EndNote 中的条目,就是利用了域代码里存储的条目的主键,然后根据主键去数据库里取数据。再次强调,从 XML 导入到空白的库里之后,主键会发生变化,这时候新的 EndNote 库与老 Word 文档之间,没有关联了,你再点 Update 也不会有任何内联变化。 除非你论文写完,否则我不建议你对数据库做任何大改动。

2.1.3 定时备份 EndNote 数据库·

上文说到,EndNote 能导出 XML 格式的索引列表,而且 XML 列表体积很小,所以你可以每隔一段时间,就导出一次,做好备份。

而且上文我们还说到,EndNote 的 XML 中,record 的 PDF 索引不变,所以也要保护好 PDF 目录,毕竟这才是我们个人所关心的东西。

2.2 EndNote 仓库进化完全体·

图 6. 可以看到,完整的 EndNote 仓库很是规整,也能方便搜索自己的论文、书。

总结·

EndNote 这款软件是真的让人受益终身的,学会了之后,可以大大降低你的痛苦数量。然而好多研究生根本不懂这款软件如何使用,实在是令人痛心,而后不仅怀疑这些人真的会做科研吗?虽然管理好自己的文献不一定就能做好科研,但是这中管理技能确实是一个科研工作者应该具备的。