Emacs + anything で快適にPDFを閲覧する

この記事の設定をやってみました.
anythingでPDFファイルをプレビューしながら高速に選びたい - 技術日記@kiwanami
これはすごい!
anything で PDF を選択し,さらに設定を加えることで Emacs 内で閲覧できるようになりました!

記事に書いてある通りのことをやっただけですが,一応まとめます.

環境

Ubuntu だったら標準で問題ないと思いますが,いろいろと必要なものがあるので詳しくは上記のURLを見てください.

インストール

autoinstall があれば以下を評価するだけでインストールできるので楽です.

;; auto-installを使う場合
(auto-install-from-url "https://github.com/kiwanami/emacs-deferred/raw/master/deferred.el")
(auto-install-from-url "https://github.com/kiwanami/emacs-deferred/raw/master/concurrent.el")
(auto-install-from-url "https://github.com/kiwanami/emacs-anything-books/raw/master/anything-books.el")

入ってなければ以下のコマンドでダウンロードしてきましょう.

$ cd ~/.emacs.d/
$ wget --no-check-certificate https://github.com/kiwanami/emacs-deferred/raw/master/deferred.el
$ wget --no-check-certificate https://github.com/kiwanami/emacs-deferred/raw/master/concurrent.el
$ wget --no-check-certificate https://github.com/kiwanami/emacs-anything-books/raw/master/anything-books.el

設定

.emacs に以下を記述.
設定項目はいろいろありますが,とりあえず2行目のディレクトリだけでも指定しておけば動きました.

(require 'anything-books)
(setq abks:books-dir "/home/foo/bar/pdf-files") ; PDFファイルのあるディレクトリ(★必須)
(setq abks:open-command "acroread") ; LinuxのAdobeReaderを使う (default)

;; for evince setting (default)
(setq abks:cache-pixel "600")
(setq abks:mkcover-cmd-pdf-postfix nil)
(setq abks:mkcover-cmd '("evince-thumbnailer" "-s" size pdf jpeg))

;; for ImageMagick and GhostScript setting
;; (setq abks:cache-pixel "600x600")
;; (setq abks:mkcover-cmd-pdf-postfix "[0]")
;; (setq abks:mkcover-cmd '("convert" "-resize" size pdf jpeg))

(global-set-key (kbd "M-8") 'anything-books-command) ; キーバインド

上記の設定だけだと外部のビューアで開くんですけど,以下の設定をすると Emacs 内で閲覧までできます!(Emacs23以降)

(defadvice abks:open-file (around my-abks:open-file activate)
  (if (require 'doc-view  nil t)
      (find-file (ad-get-arg 0))
    ad-do-it))
(add-hook 'view-mode-hook
          (lambda ()
            (when (eql major-mode 'doc-view-mode)
              (define-key view-mode-map "-" nil)
              (define-key view-mode-map "n" nil)
              (define-key view-mode-map "p" nil))))
emacs で PDF を読む設定 - わからん

使い方

M-8 または M-x anything-books-command で指定したディレクトリを開けます.
あとは anything インターフェースで思う存分絞り込んで目的の PDF を探しましょう.
すっごい便利!
なお,Emacs 内で PDF を表示するのに doc-view.el を使っています.
詳しくは Emacs 23でPDFを表示させる--新機能「DocView」を試す - builder by ZDNet Japan