使用 Zotero 在 Markdown 中优雅处理参考文献
1需求
兵马未动粮草先行,写大大小小的各种论文需要做很多思想建设,有一个顺手的写作工具和一个方便的文献管理工具可以给人一些动力和勇气。
我目前的需求很明确,就是用自己中意的 Markdwon 编辑器来写论文初稿,使用 Zotero 来管理大量参考文献,然后论文转换成 office Word 文档让老师们查看。
如果选择 office Word 来写,直接用 Zotero 插件处理参考文献没有任何问题,但作为 Markdown 的重度用户,用 Word 写上百页的文档实在是太难受。
于是,这篇文章就分享一下如何尽量优雅地借助 Zotero 用纯文本方式完成论文中参考文献的引用和管理。所谓优雅是指当 Markdown 内容并转换成 Word 格式后,所有引用都需要被 Zotero 插件正确识别且可以随时在 Word 中进行修改更新,而常用的 Bibtex 加 Pandoc 方法并不能实现这个需求。
2准备
工具
Markdown 编辑器:Ulysses
奔着 Ulysses 在高价位上了 setAPP 的车,如果能用它把论文写完,这车费就没有白花。当然,用 Markdown 写论文最自由的就是对写作工具的选择,这里使用任何一个你顺手的编辑器都可以,比如 Typora, MWeb 甚至是 VSCode 都么得问题。
文献管理工具:Zotero
硕博这几年时间,我先后使用了目前国内使用率最高的三款文献管理工具,从 Endnote 转向 Mendeley 是因为当时觉得 Mendeley 没有 Endnote 那么「重」;从 Mendeley 转到 Zotero 是因为后者的免费和插件。关于如何上手 Zotero 之前也有写过详细的介绍。
辅助
使用 Zotero 又不借助 Word 来管理参考文献,安装 Better BibTeX 插件是必选项,它为参考文献的引用和管理提供了一站式解决方案。
同时,把 Markdown 格式的文本用高度可定制的方法转换为 PDF 或者 Word 格式文档,绕不开 Pandoc 这个工具。我们熟悉的大量文本编辑器在生成其他格式文档时往往调用的都是 Pandoc。
3
概念
CITATION KEYS
所谓 Citation Keys(Citekey),可以理解为 Better BibTeX 给文献生成的一个 ID,当我们在文档中需要插入文献的位置按照一定格式输入 Citekey 后就等于告诉 Zotero 要在这里引用对应的文献了。
由于 Citekey 是纯文本格式,不同编辑器对文章本身的影响可以降到最低。在 Endnote 中同样有类似的引用方式,这个概念被称作 Temporary citation。
通用的 Citekey 格式为
[auth:lower][year]
,前半部分表示文章第一作者的小写姓氏,后半部分为文献年份,如果出现了重复,就会在后面添加
a b c
或者数字进行区分。下图是 Zotero 中关于 Citekey 的展示。
CITE AS YOU WRITE
在写作过程中,如果仅将 Zotero 对应的文献 Citekey 复制到文本并没有什么难度,无非就是方便和效率的问题,即随写随引。
在 Word 插件中的 Zotero 的引用效果如下图所示。
类似的效果只有同时在我们使用的编辑器中实现,才能做到 CITE AS YOU WRITE。
自动操作
如果你在使用 macOS,或许还不知道它也有类似于 iOS 中快捷指令的功能,叫做 Automator(自动操作)。这个应用可以设定在什么情况下进行何种操作,本文将会涉及到一个脚本自动执行的问题,就会用到 Automator。
如果对它感兴趣,具体使用介绍可以查看苹果 官方说明。
4
设置
Zotero CITATION KEYS
我目前的配置如下图,所示。这里主要是修改了引用格式。
Pandoc filter
Better BibTeX 的作者写了一个 lua 脚本
zotero.lua
,用来实现从 Markdown 到 Word 实时引用的格式转换。我们可以在 Markdown 文本中写入相关元数据,或者在 pandoc 命令行中进行相关参数设置。
---
# all the regular stuff you have here