怎样用 `org-cite-insert` 插入 citation? (已解决)

成功运行 org-cite-insert 以后, 可以在 minibuffer 中查询并用 Enter 多选想要插入的 references, 但是在选择完 references 以后, 按哪个按钮可以将选择好的 keys 在 org buffer 中成功插入为 [cite:@ke y1@key2@key3 ...] 的格式?


2021-10-24T00:00:00Z

解决方案: 我用的是 ivy, 用 ivy 的用户在确认 org-cite-insert 选择好的文献时, 需要按 C-M-j.

我用ctrl-enter可以

我不行, 你能帮忙看看在 minibuffer-local-map 里你的 C-return 是用来干啥的吗?

打开vertico是选中keyC-return,是(vertico-exit-input)

关掉vertico后选中keyreturn,是(minibuffer-complete-and-exit)

个人感觉org-modecite功能做得不如org-ref,很可能我没有设置好,csl 导出到 LaTeX 后是直接的文字,而不是\cite这种

改成biblatex导出之后是\autocite

谢谢回复, 后来我发现是 ivy 的问题, 在 org-cite-insert 后, 如果用的是 ivy 那么 enter 是选择文献, C-M-j (ivy-immediate-done) 是确认选择并用正确的 oc 格式插入选择好的文献. 后面一个快捷键隐藏太深了, 平时又不太用, 所以完全想不到.

另外, 在改成 biblatex 之后, 在 org 中的引用语法写为 [cite//b:@orwell1984 p.14], 那么你将 org 转换为 tex 的时候, 就会得到你想要的 \cite[p.14][orwell1984] 了. 具体详见 July 2021 中的 table 1

你的 org-mode 怎么配置的,比如说: (setq org-cite-export-processors '((beamer natbib) (latex biblatex) (t csl))) 或者: #+CITE_EXPORT:
啥的。

我 org 文件输出 tex 文件,文献引用都变成 (Author 2022;AuthorB 2000),不是\cite{}正规的 latex 格式。

还有默认的 [cite:@keya1;@keya2],咋变成 [cite//b:@keya1;@keya2]

连个 manual 过了两年了都没完善。。。

你的设置和我的是一样的, 只是不知道你在之前是否有 (require 'oc-natbib)(require 'oc-biblatex).

现在搞得差不多了。。。

首先确实需要 (require 'oc-natbib)(require 'oc-biblatex).

然后需要在开头加上:#+CITE_EXPORT: natbib

最后出来的 tex 文件才是把 [cite:@east_lisi_Allosteric2020; @gasiunas_siksnys_Cas92012] 转变为\citep{east_lisi_Allosteric2020,gasiunas_siksnys_Cas92012}

虽然还是 \citep{} 不是 \cite{},但还是能用,编译成 pdf 可行。

但还是不知道如何把 [cite:@east_lisi_Allosteric2020; @gasiunas_siksnys_Cas92012] 转为 [cite//b:@east_lisi_Allosteric2020; @gasiunas_siksnys_Cas92012] 啥的

你这些都是对 org 和 latex 不熟悉, 而不涉及 oc 的问题. 你用 keyword #+cite_export 设置的 natbib 实际上是 override 了自己对 oc 导出的默认设置 (按照你前面写的, 默认设置是 biblatex). 这种情况下你还不如直接把默认设置改为 natbib. 然后 natbib 本身的规范命令中就没有 \cite (能够识别, 但是只是为了兼容老语法, 但是不建议用户使用), 只有 citep, citealp, citenum 这种语法.

最后一个 //b 我都是自己手打的, 不知道存不存在自动插入的命令

1 个赞