2012-06-02 139 views
16

我剛開始使用org-mode,至今發現它非常有用。我在目錄樹中有大量的技術論文集,我想通過它們並通過組織模式對它們進行索引。我想要的是有一種方法去瀏覽它們,看看沒有註釋的,然後一個一個地註釋它們。我想通過首先編寫一個像[[xxx.pdf] [尚未完成]]的鏈接文件,然後提交未完成的文件,瀏覽它們,並決定如何添加註釋。此外,我想添加標籤。我真正喜歡的是能夠即時創建新的標籤。有沒有人在組織模式下做過這樣的事情?以組織我的論文的組織模式

維克多

+1

如果你沒有得到這裏的答案,然後[嘗試org-模式列表(HTTP: //news.gmane.org/gmane.emacs.orgmode)。所有的組織大師都在那裏。 – Tom

+1

這裏沒有什麼,你不能只使用股票組織模式和Emacs。什麼阻止你? –

回答

15

如果你有你的文件組織這樣的,

% ls -1 ~/References/functional-programming 
The Lambda Calculus.pdf 
Recursive Functions of Symbolic Expressions and Their.pdf 

你可以運行一個快速腳本來構建組織文件。將以下內容保存爲make-org並從您的論文目錄中運行(sh make-org > papers.org)。在Emacs

#! /bin/sh 
# 
# make-org -- generates an org-mode file from a directory of PDFs 
# 
# AUTHOR: 
# Jon-Michael Deldin 
# USAGE: 
# cd ~/path/to/papers && make-org > papers.org 
# 

echo "#+TITLE: Research Papers" 
echo "#+STARTUP: align hidestars indent lognotedone" 
echo 

for f in *.pdf; do 
    name=${f%.*} # strip extension 
    path=$(echo $f | sed 's/ /%20/') # encode spaces as %20 
    echo "* TODO $name :unread:" 
    echo 
    echo "[[file:$path][$name]]" 
    echo 
done 

打開papers.org,運行C-u C-c C-q重新調整標籤。你的文件現在應該是這樣的:

org-mode research papers

另外我想補充的標籤。我真正喜歡的是能夠即時創建新的標籤。

一旦你在一開始有一個標題(事與*,你可以打C-c C-c並添加任何你想要的標籤。

您可能會發現this detailed write-up of using org-mode and RefTeXthis alternate approach有用的,特別是如果你使用的乳膠。

+0

有什麼方法可以在子目錄中查找文件,並且可以將創建的新文件添加到現有的papers.org文件中?我們可以隨時手動添加它,但我想可能有一個命令行解決方案運行腳本並只添加最近添加的文件。謝謝。 – Anusha

+0

@Anusha:對於子目錄中的文件,你可以將'* .pdf'中的f改爲'for $(find。-name'* .pdf')'中的f。在使用數據庫或在Emacs內部重新實現一個數據庫的情況下,僅添加新文件就很不幸。 – jmdeldin

2

繼承人是修改後的版本上的目錄工作

#! /bin/sh 
# 
# make-org -- generates an org-mode file from a directory of PDFs 
# 
# AUTHOR: 
# Jon-Michael Deldin 
# USAGE: 
# cd ~/path/to/papers && make-org > papers.org 
# 

echo "#+TITLE: Research Papers" 
echo "#+STARTUP: align hidestars indent lognotedone" 
echo 

for f in $(find . -name '*.pdf'); do 
name=${f%.*} # strip extension 
path=$(echo $f | sed 's/ /%20/') # encode spaces as %20 
echo "* TODO $name :unread:" 
echo 
echo "[[file:$path][$name]]" 
echo 
done