15

Pandoc 风格的引用

Pandoc使用 Markdown 格式,支持使用 BibTeX 文件中的键自动引用。格式的一些示例是:

Blah blah [@doe99]

Blah blah [@doe99, p.33]

Blah blah [see @doe99, pp. 33-35; also @smith04, ch. 1].

Emacs 和 Pandoc/Markdown

有一个Pandoc-Mode可以通过 Emacs 与 Pandoc 交互,它可以与Markdown-Mode结合使用。Pandoc-Mode 和 Markdown-Mode 不支持自动完成来自 bibtex 文件的引用。对 TeX 文件具有这种支持的模式是Reftex。我正在寻找一种在编辑 Markdown 文件时获得 Reftex 样式的自动完成功能的方法。

在其他编辑器中自动完成

Textmate 有一个解决方案:从 textmate 中的 bibtex 文件中自动完成 pandoc 样式的引用

该功能也在Vim-Pandoc中:

自动补全是通过破解LaTeX Box 的 bibtex 引用补全实现来实现的,即使结果看起来与原来的不太一样。

如何从 Emacs 中的 bibtex 文件中自动完成 pandoc 风格的引用?

4

1 回答 1

12

为此,您可以使用reftex-citation.

设置

启用 RefTeX

您必须为正在编辑的文件启用 RefTeX,这可以通过M-x reftex-mode或设置文件变量来完成,例如添加-*- mode: reftex; -*-到文件的第一行。

告诉 RefTeX 你的参考书目在哪里

你需要告诉 RefTeX你的参考书目文件在哪里。这可以通过将以下内容添加到您的 .emacs 来完成(并根据您的设置编辑路径):

;; So that RefTeX finds my bibliography
(setq reftex-default-bibliography '("path/to/bibfile.bib"))

请注意,这reftex-default-bibliography是一个列表,因此您可以向其添加多个路径。

如果您对不同的文件使用不同的参考书目,最好将每个文件的参考书目告诉 RefTeX。恐怕我只知道一种丑陋的方法来做到这一点。这个想法是,由于 RefTeX 可以从 LaTeX 宏中提取正确的参考书目,因此您可以在评论中嵌入 LaTeX 宏。因此,您可以将这样的注释与参考书目规范一起添加到 Pandoc:

bibliography::bibliography_name.bib
<!-- \bibliography{bibliography_name} So that RefTeX knows about the bibliography -->

告诉 RefTeX 如何格式化引文

reftex-citation以 Pandoc 使用的格式插入,您必须进行自定义reftex-cite-format,例如将以下内容插入到您的 .emacs 中:

(eval-after-load 'reftex-vars
  '(progn 
     (setq reftex-cite-format '((?\C-m . "[@%l]")))))

您也可能希望包含其他格式。有关如何执行此操作的说明,请参阅https://tex.stackexchange.com/a/31992/5701。请注意,此设置是全局设置,因此如果您还将 RefTeX 用于 LaTeX,它也会受到影响。

利用

要插入引文,请执行M-x reftex-citationC-c [然后按Enter,您可以在参考书目中插入搜索词以进行搜索。然后 RefTeX 将插入您以 Pandoc 格式选择的参考书目项目的键。

于 2012-11-28T17:05:20.477 回答