論文の文献情報管理ソフトウェアを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をインポートする。日本語の見栄えはいまいちながら、データを移行できた。
続く予定。