2011-01-24 65 views
9

許多科學論文,特別是生命科學論文,都以pdf格式出版。有關如何在Emacs中工作時註釋PDF的建議?

我想在emacs(尤其是組織模式)內儘可能多地工作。我知道DocView模式,它至少可以讓我在emacs中查看pdf。我懷疑它可以爲我做更多,但我沒有超越只是查看基於圖像的PDF文件的渲染。

任何人都可以推薦使用pdfs的方式,特別是鏈接到文件,施加文本和添加註釋到pdf(在邊緣書寫的電子等值)?

編輯:只是爲了澄清我並不想實際編輯PDF圖像。相反,我想在組織文件中使用超鏈接或書籤註釋。我之前沒有看過DocView的文本模式,這可能會給我我想要的,但我不知道我是否可以爲其添加書籤/超鏈接。

回答

7

IMO,沒有一個用於管理emacs中的出版物的最佳工作流程。我個人只是在org模式下存儲PDF的鏈接,並在外部查看器(evince或Acrobat,根據平臺)中打開它們。有些解決方案可以通過在PDF的頁邊空白處編寫註釋(原則上,Xournal,Jarnal和一些專有的Windows軟件可以實現),但我從未發現其中任何一個都可用。當我在紙上記筆記時,我會將它們作爲摺疊項目存儲在組織結構中,或作爲外部文件的鏈接。

其他人都拿出了類似的工作流程 - 見例如,一個漂亮的截屏在這裏:http://tincman.wordpress.com/2011/01/04/research-paper-management-with-emacs-org-mode-and-reftex/

對於我來說,理想的紙張管理環境將接口到Mendeley組織模式。不幸的是,門德利的封閉來源本質使得這個不太可能。

+0

I second Xournal - 看起來不錯,如果您在平板電腦上使用LINUX,則允許您手動註釋PDF文檔。 – Tilo 2011-11-17 04:21:37

4

DocView模式可以在編輯和查看之間切換。但是,從doc-view-mode的信息頁面來看,PDF不是(很容易)人爲可編輯的,而且文檔不會談論有關PDF註釋功能的任何信息。

否則,Xournal或此類工具應該是註釋PDF的方式,除非您找到了在Emacs下運行的方法。

10

pdf-tools等等,允許在emacs中註釋pdf文件。年輕但有希望的項目!

https://github.com/politza/pdf-tools

+0

我想知道爲什麼這個答案是downvoted。 pdf工具有什麼缺點嗎? – YoungFrog 2015-03-26 11:28:14

+0

我剛剛安裝了pdf工具並在linux上嘗試了一下 - 像廣告一樣工作。能夠快速查看pdf,進行註釋並保存。 – 2015-03-28 17:47:53

0

這是不是一個真正的答案,但在PDF的工具,這是可能的附加處理函數與選定的註釋。只是有人需要實施它。

;; Toy Example for custom annotations. 

(require 'pdf-annot) 

(add-hook 'pdf-annot-activate-handler-functions 'pdf-org-annotation-handler) 
(add-hook 'pdf-annot-print-annotation-functions 'pdf-org-print-annotation) 

(setq pdf-annot-activate-created-annotations t) 

(defvar pdf-org-annot-label-guid "www.orgmode.org/annotation" 
    "Unique annotation label used for org-annot annotations.") 

(defun pdf-org-add-annotation (pos) 
    (interactive 
    (list (pdf-util-read-image-position "Click ..."))) 
    (pdf-util-assert-pdf-buffer) 
    (pdf-annot-add-text-annotation 
    pos 
    "Circle" 
    `((color . "orange") 
    (label . ,pdf-org-annot-label-guid)))) 

(defun pdf-org-annotation-handler (a) 
    (when (equal (pdf-annot-get a 'label) 
       pdf-org-annot-label-guid) 
    (pop-to-buffer (get-buffer-create 
        (format "%s-annotations.org" 
          (pdf-annot-get-buffer a)))) 
    ;; Do SOMETHING. 
    t)) 

(defun pdf-org-print-annotation (a) 
    (when (equal (pdf-annot-get a 'label) 
       pdf-org-annot-label-guid) 
    "Org annotation, click to do SOMETHING")) 

(provide 'pdf-org)