UP | HOME

+emacs+配置简易org-cite

[2024-12-11 周三 10:02]

有了emacs-使用pandoc导出当前org-buffer为docx功能,就可以配合pandoc在org-mode中进行论文写作了。如果需要进行很学术、很专业的论文写作,推荐查阅 LaTeXBibTeXorg-ref 等工具。这里配置一个简单的摘要功能,便于引用。

1. 设置bib文件内容及路径

在org文件顶部加上:

#+bibliography: path/to/your/bib文件.bib

声明一个在本org文件中查找引用的路径,后续可以通过 C-c C-x @ 呼出引用插入界面。

注意,在使用 vertico 的时候,需要先 RET (批量)选中引用,然后用 M-RET 插入引用。

2. 网页引用的bib写法

如果在正规的学术网站上,是可以直接复制到 bibtex 格式的引用文本,粘贴进 .bib 文件即可。但如果引用的资料在网页上,则需要进入网页引用生成器,将引用的链接粘贴进之后生成引用文本,然后根据引用文本自行填写 .bib 文件内容。

如引用文本为

李平书. 2021,谢谢你的关心[EB/OL]. (2021-12-21)[2021-12-21]. https://news.china.com/zw/news/13000776/20211221/40601066.html.

则在 .bib 文件中应为

@misc{这里自己填,应该是英文数字组合,
author = {李平书},
title = {2021,谢谢你的关心},
howpublished = {[EB/OL]. (2021-12-21)[2021-12-21]. https://news.china.com/zw/news/13000776/20211221/40601066.html.},
}

这样可以确保导出的参考文献下格式相对正确。

3. 修改pandoc导出命令

将导出函数中 shell-command 一行改为一个带判断的函数:

(if (string-match "论文" docx-file)
    (let ((bib-file "path/to/your/bib文件.bib")
          (csl-file "path/to/your/csl文件.csl")
          (ref-title "参考文献"))
      (shell-command (format "pandoc --from org+east_asian_line_breaks+citations -M reference-section-title=%s -N -C --bibliography=%s --csl=%s %s -o %s --reference-doc=%s" ref-title bib-file csl-file (my/save-buffer-to-temp-org) docx-file template-file)))
  (shell-command (format "pandoc %s --from org+east_asian_line_breaks -o %s --reference-doc=%s" (my/save-buffer-to-temp-org) docx-file template-file)))

符合pandoc标准的GB/T 7714-2015 csl相关文件可以在这里下载

这样一来,就可以把org文件导出为带引用的docx文件了。不过格式会有一点问题,需要手动修改,但也比徒手在docx文件中管理编辑引用方便多了。

▲ 编辑于 [2024-12-31 周二 15:31] | © Published by Emacs 31.0.50 (Org mode 9.7.18) on [2025-01-02 周四 15:00] | RSS