2012年9月26日 星期三

ubuntu 12.04使用emacs的org mode內嵌圖片/pdf連結方法

網路上有很多講到iimage的文章,但是使用ubuntu 12.04原來附的emacs 23是不能動作的。解決方式參考 http://orgmode.org/worg/org-faq.html 更新 org

 如此下達 M-x org-display-inline-images 或C-c C-x C-v才會顯示圖片

還有設置 pdf 的閱讀器,不要使用 emacs 直接去打開 pdf 檔,要加入 openwith 設定於.emacs中,請參考 Emacs的插件openwith.el 。在win32平台上直接打開~/.emacs檔即可,不用去找它的位置,因為經常隨版本而改變 (冏>)

在以命令列啟動 adobe reader 時可以下達參數以指定開啟頁面,可參考 Adobe Reader Command Line Reference [closed] ,參數列表可見 http://partners.adobe.com/public/developer/en/acrobat/PDFOpenParameters.pdf 。而在org mode中的外部連結有 shell 參數可指定,可參考 External links 。目錄名稱需使用8.3形式,可參考 http://en.wikipedia.org/wiki/8.3_filename 。因此連結形式為

[[shell:C:\Progra~1\Adobe\Reader~1.0\Reader\AcroRd32.exe  /A "page=149&pagemode=none" C:\a.pdf][a]]

想要使各平台使用一致的file:形式連結,需要改寫 org-file-apps-defaults-gnu 及 org-file-apps-defaults-windowsnt 。節錄相關說明如下:

               - Regular expression which contains (non-shy) groups:
                 ...

                 Example: (\"\\.pdf::\\(\\d+\\)\\'\" . \"evince -p %1 %s\")
                     to open [[file:document.pdf::5]] with evince at page 5.


目前看來以下兩篇講的都是如何修改 evince 為預設 pdf 文件檢視器
Org-mode export to LaTeX: temptation or nuisance?

How do I make Org-mode open PDF files in Evince?

綜合起來,可以work的版本如下,注意數字的部分\d要改成[0-9]才能工作,不知道為何…

;; PDFs visited in Org-mode are opened in Evince (and not in the default choice)
(eval-after-load "org"
  '(progn
     ;; Change .pdf association directly within the alist
     (setcdr (assoc "\\.pdf\\'" org-file-apps) "evince %s")
     (add-to-list 'org-file-apps '("\\.pdf::\\([0-9]+\\)\\'" . "evince -p %1 %s") t)
))

win32上修改為

;; PDFs visited in Org-mode are opened in Evince (and not in the default choice)
(eval-after-load "org"
  '(progn
     ;; Change .pdf association directly within the alist
     (if (assoc "\\.pdf\\'" org-file-apps)
(setcdr (assoc "\\.pdf\\'" org-file-apps) "C:\\Progra~1\\Adobe\\Reader~1.0\\Reader\\AcroRd32.exe %s")
       (add-to-list 'org-file-apps '("\\.pdf\\'" . "C:\\Progra~1\\Adobe\\Reader~1.0\\Reader\\AcroRd32.exe %s") t)
     )
     (add-to-list 'org-file-apps '("\\.pdf::\\([0-9]+\\)\\'" . "C:\\Progra~1\\Adobe\\Reader~1.0\\Reader\\AcroRd32.exe  /A page=%1 %s") t)
   )
)

沒有留言:

張貼留言