論文の文献情報管理ソフトウェアをJabRefからMendeleyに置き換える。ついでに論文PDFファイルもいくつかのデバイスで共有したい。想定環境は以下のとおり。
- ノートPC、自宅デスクトップPC
- OS: Windows XP
- 用途:論文閲覧、論文収集
- 職場マシン
- OS: Ubuntu 11.10
- 用途:論文閲覧、論文収集、論文執筆
Mendeleyのアカウント作成
Mendeleyでアカウント作成する。
Ubuntu 11.10での操作
Dropboxのインストール
Dropbox:インストールから、Ubuntu用インストールファイルをダウンロードする。
% sudo dpkg -i nautilus-dropbox_0.7.1_i386.deb
これで、~/Dropbox が作成され、このディレクトリ以下に置かれたディレクトリやファイルがDropboxに同期される。私は~/References 以下にPDFファイルを保存していたのでこいつをDropboxへ移動させる。
% mv ~/Refernces ~/Dropbox
これで自動的に同期開始。
Mendeleyのインストール
必要なライブラリーをインストール。
% sudo aptitude install libqtwebkit-dev
Mendeley: How to install Mendeley Desktop for Ubuntu/DebianからUbuntu/Debian用のインストールバイナリーをダウンロードしてくる。
% sudo dpkg -i mendeleydesktop_1.3_i386.deb
起動する。
% mendeleydesktop &
JabRefで管理していた書誌情報から移行
JabRefのデータベースをBibTeXのbibファイルとしてエクスポートする。JabRefのbibファイルとMendeleyのbibファイルには違いがあるとのこと。
JabRefで新たに作ったフィールドについては annoteタグを用いて書き換える。例えば以下のとおり。
fileno = {49} を annote = {File:49}
PDFのファイルと書誌情報の関連付けはC:\rob/PDFs以下にPDFファイルを格納している場合に以下のようになっているとのこと。
- JabRef最近版 "file = {deSilEtAl2009_EM.pdf:deSilEtAl2009_EM.pdf:PDF}"
- JabRef古い版 "pdf = {deSilEtAl2009_EM.pdf}"
- Mendeley版 "file = {:C$\backslash$:/rob/PDFs/deSilEtAl2009_EM.pdf:pdf}"
Mendeleyは絶対パスでファイルのありかをかかなければならないらしい。
また、Mendeleyが出力するbibファイルの文字コードはUTFとのこと。
私のbibファイルは以下のようになっている。
- 独自フィールドとしてjaabstract(概要日本語訳)を使っている
- pdfの紐付けでは最近版と古い版の記述が混ざっている
- JabRefが出力したbibファイルの文字コードがEUC-JP
- PDFファイルに拡張子がついていない。
そこで、まずはUTF8版を生成する。JabRefが出力した bibファイルを JabRef.bibとする。
% iconv -f EUC-JP -t UTF-8 JabRef.bib > JabRef.bib.utf8
Ruby 1.9系で動く書き換えプログラムは以下のとおり。
# -*- encoding: utf-8 -*- unless ARGV.size == 2 puts "% ruby JabRefToMendeley.rb inputifle path-of-directory-for-PDFs" puts "Please input filename as full path." exit end inputfile = ARGV[0] pathOfDirectory = ARGV[1].sub(/\/$/,'') unless File.exist?(inputfile) puts "#{inputfile} file doesn't exist" exit end File.open(inputfile){|file| file.each do |line| line.gsub!(/\s+jaabstract\s=\s\{/ , 'annote = {jabstract:') line.gsub!(/pdf\s=\s\{(.+)\}/){ pdfFile = $1.sub(/\.pdf$/,'') pdfFile.gsub!(/\_/,'\_') "file = {:#{pathOfDirectory}/#{pdfFile}.pdf:pdf}" } line.gsub!(/file\s=\s\{(.+):(.+):PDF\}/){ pdfFile = $1.sub(/\.pdf$/,'') pdfFile.gsub!(/\_/,'\_') "file = {:#{pathOfDirectory}/#{pdfFile}.pdf:pdf}" } puts line end }
上記のプログラムを、JabRefToMendeley.rbとして保存する。そして、PDFファイルが置いてあるディレクトリの絶対パスが /home/next49/Dropbox/References であるとき以下のように使う。
%ruby JabRef.bib.utf8 /home/next49/Dropbox/References > New.bib
Mendeley Desktopを起動する。
% mendeleydesktop &
左側のウィンドウにある"Welcome to Mendeley ..."をクリックし、生成したNew.bibをインポートする。日本語の見栄えはいまいちながら、データを移行できた。
続く予定。