裏紙に雑文

日記とか,とりとめのないこと

Ebib のススメ --- Emacs で文献管理 (その 2: 閲覧編)

その 1 に続いて,今回は Ebib による文献の検索・閲覧について書きます.

インクリメンタル検索

Emacs なので C-sC-r でインクリメンタル検索ができます. とはいえ文献データベースが巨大になってくると使いにくいと思います.

フィルターによる検索

Ebib はフィルターを用いて検索ができます. すなわち,指定したフィールドの値と含む entry のみを表示できます. また正規表現も使うことができます.

フィルター機能を使うには index buffer で & を押下します. 例えば著者に Denef, Jan を含む文献のみ調べたい場合, & を押下した後 author RET Denef, Jan RET とします.

検索条件を追加するには,続けて & (AND) や | (OR) を押下します. 否定の検索条件を追加するには M-- (メタキーと - を同時押し) をタイプしてからそれぞれ &| を押下します. またフィルターを使用中に ~ を押下すると現在の検索条件が否定 (NOT) されます.

key logical operation
& AND
| OR
~ NOT
M-- & NAND
M-- | NOR

現在の検索条件は index buffer と entry buffer の間に表示されます.

f:id:mtino1594:20190204000741p:plain

例えば上記の例は,articles.bib ファイルの中で著者に Denef を含むかまたは著者に Batyrev を含むものを表示していることを示します. また,F v で現在の検索条件がエコーエリアに表示されます.

フィルターを終了するには F c を押下します.

keywords について

フィルター検索で (私が) 一番利用するのは keywords フィールドです. Ebib では keywords の値を覚えておいて再利用 (TAB キーでの補完など) することができます. これはキーワードのスペルミスなどが防げるという利点があります.

この機能を使うには大きく二通りの方法があります. 1 つ目は Customize などを使って Ebib の設定にキーワードのリストを記述する方法です. 2 つ目はテキストファイルにキーワードを保存して,それを読み込む方法です. 私は後者を利用しています. また後者の方法には

  1. 1 つのテキストファイルを全てのデータベースで共有するか,
  2. ディレクトリごとにテキストファイルを作成するか

のどちらか一方を選ぶ必要があります. 後者の方法ではテキストファイルの名前は統一しておく必要があります. デフォルトでは ebib-keywords.txt です.

新規に追加したキーワードを ebib-keywords.txt に保存するには index buffer で K s を押下します. 自動的に保存させるように設定することもできます.

key 操作
K a 現在行の entry にキーワードを追加
K s ebib-keywords.txt にキーワードを保存

PDF (など) を開く

私は文献情報は .bib ファイルで管理し,論文の PDF は Dropbox に放り込んでいます. 例えば

next49.hatenadiary.jp

のように他の文献管理ツールを利用していても同様の方法で PDF を管理している方もいると思います.

Ebib では f を押下すると file フィールドに記述されたファイル (PDF/PS) を開くことができます. 標準では PDF は xpdf で,PS ファイルは gv で開くようです. 私は macOSopen コマンドで開くように設定しています. また file フィールドには複数のファイルのパスを記述することができます.

file フィールド値が空の entry に対し f を押下したとき,Ebib は ebib-name-transform-function 関数にしたがって指定されたディレクトリ下に見つかったファイルを開きます. ディレクトリの指定は ebib-file-search-dirs 変数で設定できます. これらの設定についてはその 3 で書きます.

その 1 で書いたように, uI を押下することで urldoi を開くこともできます. これらを押下したときは標準の Web ブラウザが起動します.