在 Emacs 中自动完成 Bibtex 文件中的 Pandoc 风格引文

2024-05-01

Pandoc 风格的引文

Pandoc http://www.johnmacfarlane.net/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模式 http://wwwuser.gwdg.de/~jkremer/pandoc-mode.html通过 Emacs 与 Pandoc 交互,可以与降价模式 http://jblevins.org/projects/markdown-mode/。 Pandoc-Mode 和 Markdown-Mode 不支持自动完成 bibtex 文件的引文。对 TeX 文件具有这种支持的模式是Reftex https://www.gnu.org/software/auctex/reftex.html。我正在寻找一种在编辑 Markdown 文件时获得 Reftex 式自动完成功能的方法。

其他编辑器中的自动完成

Textmate有一个解决方案:在 textmate 中自动完成 bibtex 文件中的 pandoc 风格引文 http://snipplr.com/view/19519/.

该功能还在于Vim-潘多克 https://github.com/vim-pandoc/vim-pandoc:

自动完成是通过破解来实现的乳胶盒 http://www.vim.org/scripts/script.php?script_id=3109实施 bibtex 引文补全,即使结果 看起来不太像原来的。

如何从 Emacs 中的 bibtex 文件中自动完成 pandoc 样式的引文?


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

Setup

启用 RefTeX

您必须为您正在编辑的文件启用 RefTeX,这可以通过M-x reftex-mode或通过设置文件变量 http://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html比如添加-*- mode: reftex; -*-到文件的第一行。

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

你需要告诉 RefTeX你的参考书目文件在哪里 https://tex.stackexchange.com/a/54825/5701。这可以通过将以下内容添加到 .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 如何格式化引文

To get reftex-citation要插入 Pandoc 使用的格式,您必须自定义reftex-cite-format http://www.gnu.org/software/auctex/manual/reftex/reftex_60.html例如将以下内容插入到您的 .emacs 中:

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

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

Use

To insert a citation either do M-x reftex-citation or C-c [ then press Enter and you are allowed to insert a search term for searching in your bibliography. RefTeX will then insert the key of the bibliography item you selected in Pandoc format.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Emacs 中自动完成 Bibtex 文件中的 Pandoc 风格引文 的相关文章

  • Emacs 强制组织模式捕获缓冲区在新窗口中打开

    如何强制组织模式的捕获缓冲区在新窗口中打开 我试过 setq special display regexps Capture 但它不起作用 我立即看到一个新窗口 然后 org mode 进行两个垂直分割 我使用 3 个垂直分割 并将捕获缓冲
  • R markdown 引文标识符

    R markdown 允许使用 YAML 元数据部分中的参考书目元数据字段指定参考书目文件 例如 title Sample Document output html document bibliography bibliography bi
  • 让 Emacs ansiterm 和 Zsh 更好地发挥作用

    我一直在尝试在 emacs 会话中使用 Zsh 而无需 emacs 重新映射所有 Zsh 键 我发现 ansi term 对此非常有效 但是我仍然遇到一些问题 我输出了很多垃圾字符 我可以用以下方法修复它 Setup proper term
  • Emacs:在缓冲区求值期间将参数传递给下级 Python shell

    最近我开始使用 Emacs 作为 Python IDE 它不太直观 我现在遇到的问题是当使用 C c C c 评估缓冲区时如何将命令行参数传递给下级 python shell 感谢帮助 这似乎并不容易实现 管理的劣质流程python el模
  • POJO 支持使用omnifaces 自动完成primefaces

    我正在尝试在我的项目中使用 primefaces 自动完成组件 以避免将特定转换器写入我尝试使用的每个列表对象全能面孔 http showcase omnifaces org converters ListConverter如建议的here
  • 在 Rails 中实现多个字段的自动完成

    我有一个应用程序 它实现了群组功能 每个小组有n名成员 此外 每个组都有一个组特定的个人资料图片 我已经能够实现组功能的自动完成 仅记住组名称 我已经参考了以下教程 http railsforum com viewtopic php id
  • Emacs 行编号性能

    我试过了linum and nlinum 两者对于超过 100k 行的文件的性能都很糟糕 for x in 1 100000 do echo x done gt 100k txt emacs q 100k txt M x load libr
  • 在 JQuery ui 自动完成中显示图像

    我有一个带有 JQuery ui 自动完成功能的脚本 可以完美运行 有一个显示用户名字和姓氏的搜索过程 但在我的数据库中 还有用户的图片 我想将其显示在带有名字和姓氏的建议中 数据库中pic包含图片url 剧本 function searc
  • 在 Rails 3 中渲染 Markdown 文本

    我想将 markdown 转换为 html 在我看来我有markdown some text variable 但我得到了错误undefined method markdown I added require BlueCoth 到envir
  • 标记(Markdown)+ Mermaid(流程图和图表)

    努力去争取 美人鱼 https github com knsv mermaid https github com knsv mermaid跟 共事 标记 https github com chjj marked https github c
  • Pandoc Markdown 分页符

    最近我开始使用 Pandoc markdown 它似乎是 LaTeX 的一个很好的替代品 因为我的文档没有很多数学公式 而且我没有任何使用 LaTeX 的经验 再加上不到 2 周的提交截止日期 这使它成为一个很好的解决方案 我无法解决的一件
  • 使用 DOJO 自动完成文本框

    我正在寻找一种使用 DOJO 进行文本框自动建议的简单方法 我将查询的数据库表 使用 PHP 脚本 以 JSON 形式返回 有超过 100 000 条记录 因此这确实不应该采用 FilteringSelect 或 ComboBox 的形式
  • 将 Powershell 输出转换为 Markdown 文件

    我有以下代码 xmlFile C Users kraer Desktop bom xml xml xml Get Content xmlFile xml bom components component ForEach Object fin
  • 动态参数值取决于另一个动态参数值

    启动前提 非常严格的环境 Windows 7 SP1 Powershell 3 0 使用外部库的可能性有限或不可能 我正在尝试重写之前创建的 bash 工具 这次使用 PowerShell 在 bash 中 我实现了自动完成功能 以使该工具
  • yii2 中的自动完成

    在 Yii2 中 我希望当用户开始输入时 我的输入字段之一能够自动完成 下面是我的代码 它使用Jui Autocomplete 这是行不通的 当我打印我的数组时 我就像 Array 1 gt abc 2 gt xyz 4 gt pqr
  • 用于渲染 html 子集的 Django templatetag

    我有一些 html 在本例中是通过 TinyMCE 创建的 我想将其添加到页面中 但是 出于安全原因 我不想只打印用户输入的所有内容 有谁知道模板标签 最好是过滤器 只允许呈现 html 的安全子集 我意识到 Markdown 和其他人就是
  • 如何在 emacs 中自动回答是或否

    I binded function semantic symref to key C c C r like this global set key kbd C c C r semantic symref everytime I presse
  • 将子目录添加到加载路径

    我希望能够自动加载它们 而不是单独指定插件目录中的每个子目录 为此 我将以下内容包含到我的 emacs 文件中 let base emacs d plugins normal top level add subdirs to load pa
  • Netbeans 自动完成功能停止工作?

    我使用的是 Netbeans 6 9 1 一切都很好 但是突然间 它停止检测对代码所做的任何更改 例如新变量 函数等 如果我尝试重构 重命名变量 例如按 CTRL R 它说 重构在此上下文中不可用 如果重要的话 它在 PHP 项目中 有任何
  • Emacs 正则表达式:什么 \< 和 \> 可以做 \b 不能做的事情?

    正则表达式反斜杠 GNU Emacs 手册 http www gnu org software emacs manual html node emacs Regexp Backslash html说 lt 匹配单词的开头 gt 匹配单词末尾

随机推荐

  • ConstraintLayout 内的 ImageView 不起作用

    我在正确显示 ImageView 时遇到问题 我想在 ConstraintLayout 中显示 ImageView 在预览中 它看起来完全符合我的需要 但是当我在设备上启动它时 它看起来完全不同 此布局位于回收视图内 这段代码有什么问题
  • Jasmine 不会从资源管道加载 javascript 文件

    我正在开发一个 gem 并且我已经安装了 Jasminehttps github com pivotal jasmine gem https github com pivotal jasmine gem 我所需的所有 JS 文件都位于 ap
  • Jupyter:禁用重启内核警告

    我使用的是 jupyter 4 1 0 我发现自己经常使用 重新启动并运行全部 功能 每次我使用该按钮时 它都会显示此警告 有没有办法禁用该警告 您可以在笔记本中添加一个单元格并使用以下语句 from IPython core displa
  • 在循环内重新声明 for 循环变量时出错

    考虑以下 C 程序片段 for int i 0 i lt 5 i int i 10 lt Note the local variable printf d i 它编译时没有任何错误 并且在执行时给出以下输出 1010101010 但如果我用
  • ios7 中的自动续订订阅

    我知道这个问题已经被问过很多次了 但没有一个问题对我有帮助 而且我不确定这些答案中哪些在 iOS 7 中仍然有效 我正在做一些带有自动续订订阅的应用程序 我已经成功创建了我的产品 我可以与测试用户一起购买它 我的问题是 检查特定用户是否仍然
  • MouseOver CSS3D效果与javascript

    我正在尝试实现这样的 mouseOver 效果 我能够根据每个图块的位置生成所需的 css3d 矩阵 我通过缓慢的鼠标移动实现了这种效果 但是如果我从一个图块快速移动到另一个图块 则它无法正确更新 它在瓷砖之间显示出间隙 更新鼠标悬停时所有
  • 无法弹出 expo 以做出本机反应

    I want to eject expo to bare react native cli but i can t because I am not able to enter android package name when asked
  • 更好的 cout 又名计数;

    伙计们 编写 countn 会很困难 它基本上会在输入的末尾放置换行符 在使用控制台时 这就是我目前所能做的 我发现每次我希望该行成为新行时都编写 n 非常乏味 或者也许它已经实施了 要避免单行上的多次注入 您可以使用临时对象 该临时对象将
  • 使用 selectExpr 选择其中包含特殊字符的 Spark 数据框列

    我所处的场景是我的列名称Munic pio字母上有重音 My selectExpr命令因此失败 有办法解决吗 基本上我有类似以下的表达式 selectExpr CAST Munic pio as string as Munic pio 我真
  • CSS BETWEEN 选择器?

    我理解 相邻选择器 我想做的是根据元素两侧的 div 上的类来更改元素的样式 例如 div class positive div div class divider div div class negative div 正 和 负 类具有不
  • Kotlin 数据类中可变集合的防御性副本

    我想要一个接受只读列表的数据类 data class Notebook val notes List
  • 为什么 EXC_BAD_ACCESS 如此无用?

    首先我要说的是 我有 Flash AS3 的背景 我意识到 Flash AS3 对大多数事情的要求并不像 iPhone Objective C 那样严格 我怀疑我的问题实际上也适用于 AS3 但让我问它与 Obj c 有关 为什么错误 EX
  • 带有 Grails 的 AOP

    我想在我的 Grails 项目中创建自定义日志记录注释 My code class MyService AuditLog def method1 println method1 called method2 AuditLog def met
  • 当我传递多个范围时,Microsoft Graph 权限范围引发错误

    我需要以编程方式将文件上传到 OneDrive 我不会有前端来生成密钥 因为我需要在没有用户交互的情况下生成它们 这就是我的问题 我已经成功地通过一个简单的 POC 做到了这一点 但它必然需要用户交互 因为它使用登录名和密码凭据对 Micr
  • grunt-bower-task 和 Polymer

    我似乎找不到简单的复制方法all文件来自Polymer使用咕噜鲍尔任务 grunt initConfig bower install options targetDir wwwroot lib layout byComponent inst
  • 安装 SSDT VS 2015 17.3 和 17.4 时出错 - 系统找不到指定的文件

    我已在 VS 2017 上成功安装 SSDT 2017 但是 我们有一些较旧的 SSIS 包和 SSRS 报告 我需要 VS SSDT 2015 我安装了 VS 2015 Enterprise 我正在尝试安装 SSDT 2015 17 3
  • 从 PHP 和 Timber/Twig 中的高级自定义字段中对转发器字段进行排序

    我正在尝试使用 Twig 1 34 的 WordPress Timber 插件实现对 WordPress 插件高级自定义字段 ACF 的转发器字段的输出进行排序 下面从 ACF 排序的基本 PHP 示例来自https www advance
  • 将自定义累积函数应用于 pandas 数据框

    我有一个按以下顺序排序的数据框date df pd DataFrame idx 1 1 1 2 2 2 date 2016 04 30 2016 05 31 2016 06 31 2016 04 30 2016 05 31 2016 06
  • Android-数据在微调器中分配,但选择时不显示微调器中的值

    Problem我正在使用 Retrofit 从 mysql 获取一些产品类别 数据即将到来并在微调器中分配 但是当我选择一个项目时 它不会显示 在下拉菜单中 项目已分配 并且 setOnItemSelected 侦听器也正在工作 但所选项目
  • 在 Emacs 中自动完成 Bibtex 文件中的 Pandoc 风格引文

    Pandoc 风格的引文 Pandoc http www johnmacfarlane net pandoc 使用 Markdown 格式 支持使用 BibTeX 文件中的键自动引用 该格式的一些示例如下 Blah blah doe99 B