Emacs 的组织模式获得引用支持

2021-08-06 04:44:09

上个月,我毫不含糊地暗示某个期待已久的功能即将到来。在这一点上,我认为为这篇文章的其余部分定下基调是个好主意。经过多年(断断续续)讨论 1,我很高兴能够介绍 Org 新的本地引用语法。 Org 已经发展出一个经过彻底设计、模块化、功能强大的引文系统。最后,您可以参考 Org 了解您的所有归因需求。特别感谢 Nicolas Goaziou 的领导,JohnKitchin 为 org-ref 包铺平道路,Bruce D'Arcus 对设计决策进行了大量仔细考虑并开始记录一些细节 - 以及许多其他居民多年来为讨论做出贡献的邮件列表。 András Simonyi 还特别值得一提的是他创建 Elisp CSL 库 Citeproc.el 的工作,该库虽然没有直接包含在 Org 中,但对于提供强大的 CSL 支持至关重要,并且与 oc-csl.el 集成。引文经过精心设计,用户和 Elisptinkerers 将能够轻松地调整和扩展它以满足他们的需求。为此,Org Cite(或简称 OC)已分为两部分:引文处理器,接口使用 oc.el 生成格式良好的引文,插入到您的书目、文本中,并在缓冲区中均匀渲染 2 每个功能都可以分配一个特定的引文处理器,独立于其他功能。开箱即用,Org 使用基本处理器来完成所有这些任务。 basic,它没有依赖关系并提供所有四个功能。它导出为所有格式,但只提供非常简单的引文。

biblatex 和 natbib,它们提供通过 Biber 和(在较小程度上)natbib 创建引文的导出功能,但仅适用于 LaTeX。 csl,它使用引用样式语言提供导出功能,并导出到 HTML、LaTeX、Org 和纯文本(ODT 有一个未解决的问题)— 但取决于 citeproc.el。这为其他软件包的构建提供了坚实的基础,尽管 Org Cite 尚未发布或在手册中记录,但我们已经看到了像 org-ref-cite(由 John Kitchin 编写)这样的软件包的开发。要开始使用 Org Cite,我们必须有某种形式的参考书目。这可以是 BibTeX 文件或 CSL-JSON 文件。 { OrgCitations, ={org, mode and Syntax, Citation and List, Mailing and Effort, Time}, ={Journal of Plain Text Formats}, ={Elegant Citations with Org-Mode}, ={2021}, ={7} , ={42}, ={1}, ={2-3}} 首先我们需要让 Org 知道这个参考书目文件(它必须有一个 .bib、.bibtex 或 .json 扩展名),我们可以这样做通过 #+bibliography 关键字,或变量 org-cite-global-bibliography。一旦您有了参考书目来源,您就可以开始参考您的心声了!基本的引用语法如下:

使用默认样式 [cite:@OrgCitations] 产生(org et al. 2021)。有关当前可用样式的更多信息,请参见 1。 最后,要在某处插入参考书目,我们只需要插入 #+print_bibliography 关键字,如下所示:不要让上面示例中的简单性欺骗了您,新语法是能够表达更复杂的形式。这是 newcite 语法的完整版本: 通用前缀和后缀,分别放在生成的引文的开头和结尾 引文键指的是 Bib(La)TeX 或 CSL-JSON 键 一些引文处理器识别定位器,它们指的是到工作的特定部分,例如:p。 7 参考第 7 页。使用默认的 CSL 引文样式(芝加哥作者姓名)[cite/l/b:see@OrgCitations pp. 7 for fun] 变为 see org et al. 2021 年,7 只为了好玩。引文样式和变体以及识别的定位符由引文处理器处理。 Org cite 的捆绑处理器目前支持以下引用样式。

引文处理器是基于 org-cite-export-processors 根据所使用的导出格式自动选择的,但可以通过 #+cite_export 关键字在每个文档的基础上进行设置。在这里,我将使用 cslprocessor,使用 org-cite-export-processors,您还可以通过提供三组参数 (PROCESSOR BIBLIOGRAPHY-STYLE CITATION-STYLE ) 而不仅仅是处理器来设置参考书目和引文样式。您还可以将这个三元组值与 #+cite_export 关键字一起使用 还有一些关于如何生成参考书目的更多选项。这些选项由活动引文处理器处理。例如,虽然 CSL 处理器当前不支持任何选项,但 BibLaTeX 处理器将选项传递给命令,允许以下操作: Citeproc 目前在 MELPA 上可用,因此可以通过您选择的包管理器安装,只要 MELPA 包含在您的包档案。当可用时,它会被 oc-csl.el 自动加载。如果您对其他格式感兴趣,请知道 Citeproc 旨在轻松支持添加新格式(请参阅 citeproc-formatters.el 示例)。导出时,您可以通过提供 CSL 样式文件的路径来设置样式,无论是相对于 org-cite-csl-styles-dir 的绝对路径还是相对路径。例如,如果我下载 apa.csl,我可以像这样使用它:当没有给定样式时,将使用 org-cite-csl--fallback-style-file,默认为捆绑的芝加哥作者日期样式。

有很多可用的参考管理器,但是,如果您将自己限制在以下应用程序中,列表会迅速缩小: Zotero 是一个不错的选择,如果您正在使用它,则可以很容易地将它与 Org Cite 一起使用。开箱即用,您可以告诉它将您的库或其中的一部分导出到 .bib 文件并自动保持同步。不过,我建议安装 Better BibTeX 扩展。 Zotero 也适用于 CSL。除了支持 CSL-JSON 导出之外,Zotero 还提供了一种在首选项中安装 CSL 样式的简单方法。由于这些文件放在 ~/Zotero/styles 下,您可以通过将 org-cite-csl-styles-dir 设置为 Zotero 样式目录来将它们与 Org Cite 和 Citeproc 一起使用。然后使用由 ~/Zotero/styles/apa.csl 定义的引用样式,然后可以在使用 #+cite_export 关键字时简单地引用 apa.csl。 Org Cite 在上个月才刚刚合并,尚未包含在 Org 版本中,但我们看到了社区的极大兴趣。第三方软件包已经有了有希望的发展,例如 bibtex-actions和 org-ref-cite。我迫不及待地想看看生态系统如何继续发展😃。 1 引用最早是在 2007 年的邮件列表中提到的,当时是在一个关于脚注的线程中。

2 目前正在努力使用 oc.el 和 citeproc.el 在缓冲区中生成引文覆盖。