(doom) emacs 写论文的小 tweak

最近开始写本科毕业论文,老师让我先读文献。读文献的时候找到一些小 tweak 分享出来。

emacs = jabref + onenote + tex studio

和学术搜索集成

org-ref 有回车然后可以搜索这篇文章在 Google Scholar/ web of science 这样的功能。切换到 vertico、用 org-mode 的cite 之后 org-ref显得有些重了,我想到了 doom 的 lookup 功能。

(setq! +lookup-provider-url-alist
      '(
        ("Google" +lookup--online-backend-google "https://google.com/search?q=%s")
        ("DevDocs.io" "https://devdocs.io/#q=%s")
        ("Google Scholar" "https://scholar.google.com/scholar?q=%s")
        ("Xueshu" "https://xueshu.baidu.com/s?wd=%s")
        ("Github" "https://github.com/search?ref=simplesearch&q=%s")))

这样用 K 就在这些学术搜索网站上搜到相应论文,下载后在 bibtex entry 中添加文件路径(利用 embark)

org-roam-bibtex

每周跟老师汇报读文献进展,用 org-roam-bibtex 配合 org-roam 做摘要,显得比老师给的用 excel 好看些(Intel Mac excel太卡了,还容易崩溃)。分类是老师给我的示例做的,配合 org-cite 而非 org-ref。

(use-package! org-roam-bibtex
  :after org-roam
  :hook (org-roam-mode . org-roam-bibtex-mode)
  :config
  (setq! orb-process-file-keyword t
         orb-citekey-format "@%s"
         orb-insert-generic-candidates-format 'entry
         orb-file-field-extensions '("pdf"))
  (add-to-list 'org-roam-capture-templates
               '("b" "Bibliography note" plain
                 "%?"
                 :target (file+head "thesis/${citekey}.org" ":PROPERTIES:
:ROAM_REFS: @${citekey}
:END:
#+TITLE: ${title}\n
#+filetags: :thesis:
#+bibliography: ../reference.bib
[[${file}][${title}]]
* 主题
* 数据
* 分析方法
* 模型
* 结论")
                 :unnarrowed t)))
;; bibtex-completion essentials
(setq!  bibtex-completion-bibliography citar-bibliography
       ebib-file-associations '(("pdf" . "open"))
       bibtex-completion-pdf-field "file"
       bibtex-completion-display-formats '((t . "${=has-pdf=:1}${title:*}")))

第一行是文献的链接,方便查看

11 个赞

下午就被 orb 打脸 :sneezing_face:, orb 更新后

  (setq!  orb-roam-ref-format 'org-cite)

如果你用 vertico,可以看看 citar,bibtex-completion 和 org-ref-cite 的替代

我在用 citar , bibtex-completion ,没有用 org-ref-cite

可以具体说说是怎样用embark快速插入路径的嘛

find-file 之后 embark-insert(C-; i)

THX, 顺便请教一下你的bib文件是如何管理的?

ebib 当 JabRef

1 个赞

增加一个美化的东西, all-the-icons-completion 增加类似 all-the-icons-ivy-rich 的 icon

(after! all-the-icons-completion
  (defun all-the-icons-completion-get-icon (cand cat)
    "Return the icon for the candidate CAND of completion category CAT."
    (cl-case cat
      (file (all-the-icons-completion-get-file-icon cand))
      (project-file (all-the-icons-completion-get-file-icon cand))
      (buffer (all-the-icons-completion-get-buffer-icon cand))
      (command (concat (all-the-icons-octicon "gear":height 0.9 :v-adjust -0.05) " "))
      (org-roam-node (concat (all-the-icons-octicon "database":height 0.9 :v-adjust -0.05) " "))
      (t ""))))

复制 PDF 之后粘贴去掉空格

(defun erase-space-in-line()
  "Clear space in line after copy"
  (interactive)
  (setq buf (s-replace " " "" (thing-at-point 'line)))
  (kill-whole-line)
  (insert buf))

这个方案能导出带交叉引用的pdf吗?做得很棒,谢谢分享

可以。你也可以使用citar作者的 oxr,不过偶尔有bug

1 个赞