成功运行 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
.
我不行, 你能帮忙看看在 minibuffer-local-map
里你的 C-return
是用来干啥的吗?
dcy
4
打开vertico
是选中key
后C-return
,是(vertico-exit-input)
关掉vertico
后选中key
后return
,是(minibuffer-complete-and-exit)
个人感觉org-mode
的cite
功能做得不如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
ccp
7
你的 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)
.
ccp
9
现在搞得差不多了。。。
首先确实需要 (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 个赞