惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
罗磊的独立博客
博客园 - 聂微东
T
The Blog of Author Tim Ferriss
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
F
Fortinet All Blogs
A
About on SuperTechFans
腾讯CDC
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
IT之家
IT之家
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
宝玉的分享
宝玉的分享
C
Check Point Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
爱范儿
爱范儿
Microsoft Security Blog
Microsoft Security Blog
月光博客
月光博客
T
Tailwind CSS Blog
The Cloudflare Blog
Hugging Face - Blog
Hugging Face - Blog

熊言熊语

焦虑的反面是具体:用3年AI实践和你分享这份AI科研心得指南 | 熊言熊语 因为 AI 终于我可以尝试把自己最好的东西给你 | 熊言熊语 Guardant Shield 获批:详谈这5年你该了解的按部就班、跌跌撞撞 、布局和野望 | 熊言熊语 除了E人变I,断网半年后我的3个感悟和1个项目 | 熊言熊语 同源重组修复缺陷HRD :产品总览 | 熊言熊语 同源重组修复缺陷HRD:临床验证 | 熊言熊语 同源重组修复缺陷HRD:从无到有 | 熊言熊语 聊肿瘤生物标志物时我们在聊什么 | 熊言熊语 肿瘤组织和液体活检结果不一致,好事还是坏事 | 熊言熊语 肿瘤精准治疗究竟多难 看这7个临床实践障碍 | 熊言熊语 关于wolai被钉钉收购:多研究些问题少谈些逻辑 | 熊言熊语 MSKCC 尚待解决的肿瘤基因组检测临床应用问题 | 熊言熊语 不要错过的14档肿瘤研究专业相关播客 | 熊言熊语 从靶向治疗耐药机制到联合用药策略(下篇) | 熊言熊语 那些获得FDA突破性设备认证的多癌种早筛公司 | 熊言熊语 2022的混乱和坚持 2023的困难和勇敢 | 熊言熊语 从靶向治疗耐药机制到联合用药策略(上篇) | 熊言熊语 和头部肿瘤早筛公司 GRAIL CEO 学写年终工作总结 | 熊言熊语 2022年肿瘤精准治疗进展回顾 看OncoKB和FDA审批就够了 | 熊言熊语 Foundation Medicine 42万例样本库分析KRAS泛癌种突变特征得出了这些结论 | 熊言熊语 从2002年的Nature论文到2022年的亿元营收 | 熊言熊语 肿瘤NGS行业新人如何构建自己的知识体系 | 熊言熊语 Nature Genetics:低TMB患者福音 肿瘤非整倍体可预测泛癌免疫治疗疗效 | 熊言熊语 Nature Cancer:高度非整倍体非小细胞肺癌 放疗同步免疫治疗更敏感 | 熊言熊语 Nature Reviews Cancer:未来10年肿瘤精准治疗的6个未解之谜 | 熊言熊语 通过一份会议日程多了解点液体活检 | 熊言熊语 找到一种和这个世界沟通的方式 | 熊言熊语 跨越60年的癌症靶向治疗里程碑 | 熊言熊语 同样做肿瘤NGS检测,美股上市的9家公司近况如何 | 熊言熊语 30 岁,让我们成熟和改变的不是生日而是生活 | 熊言熊语
使用 Zotero 在 Markdown 中优雅地处理参考文献
2020-06-04 · via 熊言熊语

2020-06-04, 2058 words, 8 min read

需求

兵马未动粮草先行,写毕业论文需要做很多思想建设,有一个顺手的写作工具和一个方便的文献管理工具可以给人一些动力和勇气。

我目前的需求很明确,就是用自己中意的 Markdwon 编辑器来写论文初稿,使用 Zotero 来管理大量参考文献,然后论文转换成 office Word 文档让老师们查看。

如果选择 office Word 来写,直接用 Zotero 插件处理参考文献没有任何问题,但作为 Markdown 的重度用户,用 Word 写上百页的文档实在是太难受。

于是,这篇文章就分享一下如何尽量优雅地借助 Zotero 用纯文本方式完成论文中参考文献的引用和管理。所谓优雅是指当 Markdown 内容并转换成 Word 格式后,所有引用都需要被 Zotero 插件正确识别且可以随时在 Word 中进行修改更新,而常用的 Bibtex 加 Pandoc 方法并不能实现这个需求。

准备

工具

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。

概念

CITATION KEYS

所谓 Citation Keys(Citekey),可以理解为 Better BibTeX 给文献生成的一个 ID,当我们在文档中需要插入文献的位置按照一定格式输入 Citekey 后就等于告诉 Zotero 要在这里引用对应的文献了。

由于 Citekey 是纯文本格式,不同编辑器对文章本身的影响可以降到最低。在 Endnote 中同样有类似的引用方式,这个概念被称作 Temporary citation。

通用的 Citekey 格式为 [auth:lower][year],前半部分表示文章第一作者的小写姓氏,后半部分为文献年份,如果出现了重复,就会在后面添加 a b c 或者数字进行区分。
下图是 Zotero 中关于 Citekey 的展示。

-w416

CITE AS YOU WRITE

在写作过程中,如果仅将 Zotero 对应的文献 Citekey 复制到文本并没有什么难度,无非就是方便和效率的问题,即随写随引。

在 Word 插件中的 Zotero 的引用效果如下图所示。

-w560

类似的效果只有同时在我们使用的编辑器中实现,才能做到 CITE AS YOU WRITE。

自动操作

如果你在使用 macOS,或许还不知道它也有类似于 iOS 中快捷指令的功能,叫做 Automator(自动操作)。这个应用可以设定在什么情况下进行何种操作,本文将会涉及到一个脚本自动执行的问题,就会用到 Automator。

如果对它感兴趣,具体使用介绍可以查看苹果 官方说明

设置

Zotero CITATION KEYS

我目前的配置如下图,所示。这里主要是修改了引用格式。
-w835

Pandoc filter

Better BibTeX 的作者写了一个 lua 脚本zotero.lua,用来实现从 Markdown 到 Word 实时引用的格式转换。我们可以在 Markdown 文本中写入相关元数据,或者在 pandoc 命令行中进行相关参数设置。

---
# all the regular stuff you have here

Zotero:
library: <group name> # omitted to use your personal library
scannable-cite: false # only relevant when your compiling to scannable-cite .odt
client: <Zotero or jurism> # defaults to Zotero
author-in-text: false # when true, enabled fake author-name-only cites by replacing it with the text of the last names of the authors
...

如果是 Zotero 个人 library , 没有什么特殊情况使用默认参数即可,直接运行如下命令:

pandoc input.md -s --lua-filter=zotero.lua -o output.docx

zotpick-applescript

Better BibTeX 在实现随写随引的问题上给出了多种实现方法。如果你是把 Atom 或者 VSCode 作为编辑器可以直接安装它们相关的扩展插件,具体可以查看 官方说明

除此以外,还可以利用插件的提供的 URL 自行设置在其他编辑器内的调用。例如 http://127.0.0.1:23119/better-bibtex/cayw?format=mmd&clipboard=yes 这个地址就表示会把选择的 Citekey 按照 MultiMarkdown 的格式 [#adams2001][] 进行引用,同时把内容保存在粘贴板中。
当然,无需我们自己写,已经有前人造好的轮子 zotpick-applescript

-w464

这里我们只需要下载 zotpick-pandoc.applescript

为了快速调用这个脚本,我们可以设置一个自动操作的 workflow,配置如下图所示。选择「没有输入」和位于「任何应用程序」,然后在左侧选择「运行 AppleScript」,在右侧弹出的编辑器中复制 zotpick-pandoc.applescript 的代码即可。随后保存命名并保存该 workflow。

-w1738

快捷键

为了快速调用这个 workflow,我们还可以在快捷键的设置中为它指定一个快捷键。

-w780

此外,因为 workflow 插入的格式为 @adams2001 而 Pandoc 转化时在 Markdown 中识别的格式为 [@adams2001],所以有了另一个小需求:快速输入 [] 并且把光标置于两个括号间。

这个需求可以利用 TextExpander 和 Keyboard Maestro 等工具实现,为了让 setAPP 只会票价,在这里我选择了和 TextExpander 同类型的应用 Rocket Typist。设置方式如下:

-w389
-w392

同时我给这个动作也自定义了缩写,方便快速输入。最终的实现效果如下:

-w1198

如果使用 VSCode 来编辑,插件用起来非常方便,就无需上面这些设置了。

效果

接下来展示一下 Markdown 源文档示例,和转换成 word 文档之后的样子。

-w514
-w665

最后一步,就是在 Zotero 的 Word 插件中选择引用格式,点击「OK」,然后再点击「Refresh」就可以展示正常的引用格式了。如果想插入参考文献的详细信息,点击「Add Bibliography」即可。

-w645
-w1020

扩展阅读

Better BibTeX 的官方文档是非常好的学习材料,可以了解更多的相关知识,推荐阅读。

此外,如果你感觉这些配置过于繁琐,可以尝试 Zettlr 这款直接支持文献管理的开源 Mardown 编辑器。我曾经使用过一小段时间,不过还是因为没有 MWeb 和 Ulysess 用起来顺手而放弃了。
如果你是 Windows 用户,则非常推荐使用 Zotero + VSCode + VSCode Zotero 插件的组合。


2009021117 更新

文章发表在少数派之后有不少有价值的评论。其中有朋友提到了 markdown 文本可以使用 docdown 来直接进行转换。关于 docdown 可以直接参考学习它的GitHub 主页。后面有空了可以就 docdown 做一个详细的补充。


本文作者:思考问题的熊

版权声明:本博客所有文章除特别声明外,均采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。

如果你对这篇文章感兴趣,欢迎通过邮箱订阅我的 「熊言熊语」会员通讯,我将第一时间与你分享肿瘤生物医药领域最新行业研究进展和我的所思所学所想点此链接即可进行免费订阅。

· 分享链接 https://kaopubear.top/blog/2020-06-04-markdownzotero/