![Emacs:将 BibTeX 条目从全局书目移动到本地书目的工作流程](https://linux22.com/image/411215/Emacs%EF%BC%9A%E5%B0%86%20BibTeX%20%E6%9D%A1%E7%9B%AE%E4%BB%8E%E5%85%A8%E5%B1%80%E4%B9%A6%E7%9B%AE%E7%A7%BB%E5%8A%A8%E5%88%B0%E6%9C%AC%E5%9C%B0%E4%B9%A6%E7%9B%AE%E7%9A%84%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B.png)
我不确定这个问题是否更适合在这里https://emacs.stackexchange.com/但我想可能会有更多人能够在这里回答。
所以基本上,到目前为止,我都是以一种相当幼稚的方式管理参考书目文件:对于每个项目,我都会创建一个新biblio.bib
文件,在互联网上搜索每篇有趣文章的 BibTeX 条目,然后将此条目复制粘贴到我的biblio.bib
文件中。我的合著者也在填充同一个文件。当我想插入参考文献时,我只需在 emacs(我的 LaTeX 编辑器)上执行此操作C-c [
(以加载 RefTeX),然后输入一些标题,它就会自动插入\cite{thepaperentry}
。
但是,我在想也许我可以有一个更高效的工作流程,这样我就可以拥有一个中央参考书目文件,其中包含文章的中央 PDF 列表(这样我就可以快速打开与文章相对应的 PDF,而无需在互联网上浪费时间)。但问题是我不清楚如何有效地将文章从我的全局参考书目文件移动到我的本地参考书目。我不想对全局参考书目文件进行符号链接,因为首先符号链接 + git + overleaf 不能很好地协同工作(我的合著者使用 overleaf),其次,当我的合著者填充文件时biblio.bib
,他们会修改我的全局文件。而且我希望是唯一一个编辑全局文件的人。
因此,理想情况下,我希望在 emacs 上有一个类似的命令C-c [
,但它也会查看我的全局文件,如果本地文件中不存在该条目,它会在本地复制该条目。这可能吗?如果不行,那么这种事情的通常工作流程是什么?
谢谢!
附言:我现在正在使用这个强大的org-ref-helm-insert-cite-link
功能在我的 .tex 文件中插入新的引文,搜索 BibTeX 条目......
-- 編輯2 --
我尝试使用命令M-x reftex-create-bibtex-file
但失败并出现错误:
reftex-get-bibfile-list: \bibliography statement missing or .bib files not found
解决该问题的方法是reftex
通过 加载org-ref
,但我需要在我的 .emacs 中实际添加:
(use-package reftex
:ensure auctex
:after latex)
来解决此问题。
答案1
RefTeX 专门为此目的提供了一个函数,称为reftex-create-bibtex-file
。从手册:
4.6 数据库子集
RefTeX 提供两种方法来创建新的 BibTeX 数据库文件。
第一个选项会生成一个文件,该文件仅包含当前文档中实际引用的条目。如果数据库仅用于单个文档,并且您想清除旧的和未使用的累赘,那么这会很有用。在与合作者一起编写文档时,它也很有用,以避免发送整个(可能非常大的)数据库。要创建文件,请使用 M-x reftex-create-bibtex-file,也可以从 下的菜单中找到
Ref->Global Actions->Create Bibtex File
。该命令将提示输入 BibTeX 文件名并将提取的条目写入该文件。