我有几个.org文件,我希望能够使用ID在它们之间创建链接。我使用DOI作为唯一标识符。我可以使用属性链接到文件中:
* Paper 1
:PROPERTIES:
:CUSTOM_ID: 10.1088/0953-8984/23/21/213001
:END:
* Paper 2
:PROPERTIES:
:CUSTOM_ID: 10.1038/nphys2935
See also [[#10.1088/0953-8984/23/21/213001]]
有没有办法让custom_id成为全局的,所以我可以从另一个文件中引用它?
我认为org-id是我需要更进一步的,但我发现文档有点令人困惑。我尝试在.emacs
;; Use global IDs
(require 'org-id)
(setq org-id-link-to-org-use-id use-existing)
;; Update ID file .org-id-locations on startup
(org-id-update-id-locations)
但文件.emacs.d/.org-id-locations
只有nil
。
似乎不会自动生成全局链接(Assign IDs to every entry in Org-mode)。我尝试(使用光标在标题上)使用M-x org-id-get-create
,但这似乎没有做任何事情。
编辑:(基于有用的评论)
在一个会话中,我可以在标题(我上面的示例中为M-x org-store-link
)上使用Paper 1
存储和创建链接。然后我可以使用M-x org-insert-link
,并输入ID以插入链接。该链接看起来像[[id:10.1088/0953-8984/23/21/213001][Paper 1]]
。但是我遇到了两个问题:(1)我希望自动存储ID。 (2)当我关闭并重新打开文件时,链接不起作用。
编辑:一个相关的问题:
答案 0 :(得分:4)
所以这就是我提出的解决方案。
在我的.emacs
配置中,我保留了与我的问题相同的设置:
(require 'org-id)
(setq org-id-link-to-org-use-id use-existing)
;; Update ID file on startup
(org-id-update-id-locations)
这些文件必须是议程列表的一部分(或使用org-id-extra-files
(See org-id
documentation)添加到其他文件列表中
在ID
抽屉中使用CUSTOM_ID
代替PROPERTIES
:
* Paper 1
:PROPERTIES:
:ID: 10.1088/0953-8984/23/21/213001
:END:
需要创建每个ID(如果需要,在我的情况下我已经拥有它们),并且添加到ID文件的链接(链接存储在.emacs.d/.org-id-locations
中)。这是使用org-id-get-create
完成的:光标位于标题上,使用
M-x org-id-get-create
使用[[id:10.1088/0953-8984/23/21/213001][Paper 1]]
链接到ID。
当我想要创建ID时,我必须多考虑一下;我可以通过将ID存储绑定到我将对所有标题执行的另一个功能来自动化该过程。