lec*_*tif 12 emacs markdown autocomplete bibtex pandoc
Pandoc使用Markdown格式,支持使用BibTeX文件中的键自动引用.格式的一些示例是:
Blah blah [@doe99]
Blah blah [@doe99, p.33]
Blah blah [see @doe99, pp. 33-35; also @smith04, ch. 1].
有一个Pandoc模式用于通过Emacs的Pandoc其可以结合相互作用降价模式.Pandoc-Mode和Markdown-Mode不支持从bibtex文件自动完成引用.对TeX文件具有此类支持的模式是Reftex.我正在寻找一种在编辑Markdown文件时获得Reftex风格自动完成功能的方法.
Textmate有一个解决方案:从textmate中的bibtex文件中自动完成pandoc风格的引用.
该功能也在Vim-Pandoc中:
自动完成是通过黑客攻击LaTeX Box 实施的bibtex引用完成来实现的,即使结果看起来不像原版.
N.N*_*.N. 10
要做到这一点,你可以使用reftex-citation.
您必须为正在编辑的文件启用RefTeX,这可以M-x reftex-mode通过设置文件变量来完成,例如添加-*- mode: reftex; -*-到文件的第一行.
您需要告诉RefTeX 您的参考书目文件.这可以通过将以下内容添加到.emacs(并根据您的设置编辑路径)来完成:
;; So that RefTeX finds my bibliography
(setq reftex-default-bibliography '("path/to/bibfile.bib"))
Run Code Online (Sandbox Code Playgroud)
请注意,这reftex-default-bibliography是一个列表,因此您可以向其添加多个路径.
如果您对不同的文件使用不同的参考书目,最好告诉RefTeX每个文件的参考书目.我恐怕只知道一种丑陋的方式来做这件事.我们的想法是,由于RefTeX可以从LaTeX宏中提取正确的参考书目,因此您可以在注释中嵌入LaTeX宏.因此,您可以将这样的注释与参考书目的规范一起添加到Pandoc中:
bibliography::bibliography_name.bib
<!-- \bibliography{bibliography_name} So that RefTeX knows about the bibliography -->
Run Code Online (Sandbox Code Playgroud)
要reftex-citation以Pandoc使用的格式插入,您必须自定义,reftex-cite-format例如在.emacs中插入以下内容:
(eval-after-load 'reftex-vars
'(progn
(setq reftex-cite-format '((?\C-m . "[@%l]")))))
Run Code Online (Sandbox Code Playgroud)
您也可以包括其他格式.有关如何执行此操作的说明,请参阅https://tex.stackexchange.com/a/31992/5701.请注意,此设置是全局的,因此如果您还使用RefTeX for LaTeX,它也会受到影响.
要插入引文,请执行M-x reftex-citation或C-c [按Enter,然后您可以在参考书目中插入搜索词以进行搜索.然后,RefTeX将插入您在Pandoc格式中选择的参考书目项的键.
| 归档时间: |
|
| 查看次数: |
4106 次 |
| 最近记录: |