私の研究おすすめツール(文献管理編)
私が日々の研究に使うツールのうち、愛着が湧いているものをシーン別にご紹介していくこのコーナー(初回)。今回は文献管理・論文読みのツールをご紹介します。
2021年3月15日、Mendeleyが突然モバイルアプリを終了したということで結構困った方がいたのではないでしょうか。今回ご紹介するのはZoteroというMendeleyの競合オープンソースプロジェクトを中心にした構成なので、Mendeleyのサポートがなくなって困った方にも移行をお勧めできます。自分はこの構成で丸4年ほどおおむね安定して使えています。
2023/02 UPDATE
ついにZoteroから公式モバイルアプリが出ました!
https://www.zotero.org/support/ios
PaperShipも引き続き現役で使えますが,使用感はかなり似ており移行も簡単なので,ユーザーとしては上記のモバイルアプリ(「Zotero」)に移行することをおすすめします.WebDAVストレージの設定はこの記事に書かれている設定と全く同じ設定で利用できます.使用感もかなりPaperShipに似ていますが,アノテーションツール等も無料で利用できます.
基本構成
Zotero + PaperShip (iPad) + WebDAVストレージ
という構成をご紹介します。それぞれの概要はざっくりと、
・Zotero:オープンソースな文献管理ソフト。自分だけの論文図書館を作れる母艦的なツール。公式のモバイルアプリがないのが玉に瑕。無料アカウントを作るとZoteroCloudの250MBストレージがもらえる(が普通はそれでは足りない)。
・PaperShip:iPadで使える論文リーダー。ZoteroやMendeleyなどの文献管理クラウドと連携できる(連携しないと多分ほぼ意味がない)。書き込みはPDFファイル本体に保存される(Mendeley公式アプリは書き込みがPDFと別に保存される)。
・WebDAVストレージ:WebDAVはファイルやり取り用のプロトコル。数多あるクラウドストレージのうち一部が対応している。ZoteroはWebDAV経由でファイル保存をする設定ができるので、そうすることで大量のPDFを保存することが可能になる。
この組み合わせによって、Zoteroを「母艦」として文献収集などを行い、収集した文献はPaperShipに同期してiPadで読む、というストレスほぼフリーな作業環境が作れます。WebDAVストレージは、私はTeraCloudという国産クラウドを使わせて頂いています。
構成の仕方
それでは早速構成していきましょう。まずはZoteroをダウンロードします。未登録の場合は、Zoteroにアカウント登録をしておきましょう。
続いてWebDAVクラウドストレージに登録しておきます。私はこの3年間くらいはTeraCloudを使わせて頂いています。
WebDAVを使うときのURL(エントリポイント)を調べておきます(サービスによって異なります)。TeraCloudの場合はユーザーごとに異なるURLになるらしいので、マイページに行って調べる必要があります。
ここまで事前準備が済んだら、PC側でZoteroを開きます。メニューから設定画面を開きます(Mac版ならZotero>環境設定)。「同期」タブを開きます。
こんな感じで設定します。URLのところはお使いのクラウドサービスに合わせて、調べておいたWebDAVエントリポイントのURLを入力してください。ユーザー名・パスワードはZotero登録時のものではなく、クラウドストレージでのログイン情報を入力します。「サーバーを検証する」を押すと設定できているかどうかが確認できます。
この段階で、何でもいいので何かしら文献をZoteroに入れてみてください。動作確認用です。PDFをドラッグ&ドロップするだけでOKです。ファイルが追加されたら、PC版Zoteroの右上の同期ボタンをクリックしておきます。
ここまでできたらZoteroの設定は完了です。
続いてPaperShipを設定します。PaperShipのiPadアプリを落としておきます。起動したら、最初に作っておいたZoteroアカウントでログインしてください。すると、PaperShipのホーム画面が現れます:
この上のところの歯車?のマークを押すと設定画面が開きます。設定画面で「Zotero File Hosting」を押します。ここでWebDAVの設定ができます。先ほどZoteroに入力したのと同じ内容をここにも入力します(URLはhttps://から入力し、最後の/zoteroは不要です。例:https://hogehoge.cloud/dav)。後述しますが、この「Verify Server」ボタンはバグっているらしく、接続に成功しても「Cannot Verify Server」と表示されます。一応押してみて、失敗した場合も気にせずメイン画面に戻って同期できるかどうか試してみた方が良いです。
ここまで来たらZotero側からPaperShipへの同期は準備完了です。PaperShipのメインの画面に戻って、左側のペインを下に引っ張ると、同期が行われます。先程のファイルが現れたでしょうか?
書き込みも試してみてください。書き込んだ内容はちゃんとPDF本体に保存されています。書き込みを行なったあと、そのPDFを「アプリで開く...」から別のPDFリーダーで開いてみると、ちゃんと保存された書き込みが見えるはずです。
続いて、PaperShipで行なった書き込みをPC側のZoteroに逆同期できるようにするため、「lastsync.txt」という名称の空ファイルをWebDAVストレージのZoteroフォルダー直下に作成します。本来はこの作業は不要なはずですが、既知の同期系バグ(次セクションで詳述)によって2021年5月時点ではこの作業が必要なようです。私は次のスクリプトでこのファイルを生成するようにしています:
$ touch lastsync.txt
$ curl -T lastsync.txt -su '<Teracloudのユーザー名>' https://<TeracloudのWebDAVドメイン>/dav/zotero/lastsync.txt
もし手作業で行う場合は同名のファイルをWebDAVストレージのZoteroフォルダ直下にアップロードすればOKです:
ここまで来れば、今度こそ、PaperShip側で書き込みを行なって同期を実行し、PC側のZoteroも更新すれば、ちゃんとPC側のZoteroでPDFを開いたときアノテーションが見えると思います(これでも同期されない場合は、下記のPaperShipの詳細情報の同期タイミングについてのメモをご覧ください)。
ここまでセットアップできれば、あとはお好みの使い方で論文読みが捗ると思います。自分のフローは、研究のそれぞれの段階で大量にググって出てきた文献をとにかくZoteroに突っ込んでいき、それをPaperShipに同期して書き込みながらスキミング、重要な箇所はスクショを撮って研究メモ用のノートアプリに貼り付け(文献タイトルと一緒に)、それを見ながら研究を進める、という感じです。(ちなみに査読時もPaperShipで書き込みまくっています。赤はクリティカルな情報、黄色は自分が理解できていない要素、緑はタイポやスタイルの指摘、などの分け方でハイライトや書き込みをします)
重要デバッグ情報:「lastsync.txt」という空ファイルの作成
上で「Verify Server」ボタンがバグっていると書きました。また、書き込み内容がZotero側に逆同期されないという同期エラーもありました。上で行ったようにこれらは修正方法が知られているバグで、原因はlastsync.txtというファイルがZoteroのストレージ直下に存在しないことだそうです。Zoteroバージョン5以前はこの名前のファイルが生成されていたそうですが最新バージョンではこのファイルは使われておらず、一方のPaperShipはlastsync.txtファイルを利用するため起きているエラーのようです。
lastsync.txtの生成は最初のセットアップ時に一度やれば十分なはずですが、これを生成し直すと謎の同期エラーが生じたときに直る可能性もあるのでデバッグ情報として覚えておくといいかもしれません。空のlastsync.txtを生成し直すと、直後のPaperShipの同期ではライブラリ全体の同期チェックが再度走るようです。
各ツールの細かい説明
Zotero
・インポート機能もそこそこ充実しています。Chromeの拡張機能で有名どころのサイトからは情報を抽出してくれます&PDFをドラッグすると分かる範囲で情報を抽出してくれます。
・PluginのBetter BibTeXは入れると便利です(Zotero上での変更を.bibファイルに自動で反映してくれる機能が特に便利)。Zoteroで作成したフォルダを右クリックし、「コレクションをエクスポート」を押します。「フォーマット」で「Better BibTeX」を選ぶと、「自動でアップデート」のチェックができるようになります。これにチェックを入れて「OK」を押し、好きなファイル名をつければ、このフォルダの内容が.bibファイルに自動で反映されるようになります。
PaperShip
数年前まで開発が停止していた(作者さんがElsevierに移った頃から忙しくなった?)のですが、2年ほど前に突然アップデートが入り、おすすめしやすくなりました(使い勝手は抜群に良いので、自分は使えなくなるまで使い続けるつもりでしたが・・・)。アノテーションツールは、1000円で買い切りなので買ってしまった方が良いと思います。私はこれを買ってからこのツールが手放せなくなりました。
大体の使い勝手は良いのですが、いくつかすごく細かい注意点があります。
・PaperShipから新しい文献を追加・削除する機能は、実装されているのですが、使わない方が良いかもしれません。数年前の時点ではPaperShip側でファイルを削除すると同期エラーが無限に出続けるという現象が起きていました(PaperShipで一度ログアウトしてiPad上のキャッシュを全削除し、再度設定し直す≒クリーンインストールすることで直りますが、それは面倒なので……)。押さない方が良いボタンです。なおiPadで見つけた文献をPC側に送りたいとき、私はPushbulletでリンクを送るようにしています。これ便利です。
・PaperShipで行った書き込みがPDFに保存されてクラウドに同期されるタイミングは少しクセがあります。挙動を見るにPaperShip上でファイルを閉じたタイミングで保存が行われているようです。そのため、書き込みをすぐ保存したい場合は、他のPDFを一旦タップして開いて、Syncを行う必要があります。これを行うとPC側のZoteroでもiPadから書き込んだ内容が見えるようになります。手書きの内容などはオリジナルのPDF上に保存されます。例えばPaperShipから「アプリで開く」で他のリーダーに表示させたりすると書き込みを確認できます。ただZotero側へのSync backが少し不安定なことがあり、書き込まれた後のPDFがPC側に同期できていないことが時々あるのでご注意いただいた方が良いかもしれません。
・WebDAVサーバーの接続確認を行う「Verify Server」ボタンがSettingsにありますが、設定に成功していても「Cannot Verify Server」と出ます。これはバグなので、この表示が出ても接続に成功している可能性があります(設定画面を閉じてSyncを実行してみると分かります)。
・今ない機能としてパームリジェクションが欲しいです。ですが、一旦Apple Pencilで書き始めると指ではスクロールできるようになる機能が以前のアプデで追加されたので、それで今のところ十分満足しています。
WebDAVストレージ
今はTeraCloudという国産クラウドを使わせて頂いていて、快適です。以前はBox.netを使っていたのですが、Box.netがWebDAV対応を落としてしまったので使えなくなり、こちらに移行しました。他にも色々なクラウドストレージサービスがWebDAV対応をしています(が、有名どころのDropboxやBoxなどは対応していなかったりするので、自分で適度にマイナーなお気に入りのサービスを探した方が良いです)。TeraCloud以外には自分は当時、Koofr、pCloud、4Shared、Yandexを試しました。Koofrはそれ以来未使用ですが雰囲気良さそう。pCloudはトラブル時にメールしたところサポートの対応が高圧的だったのでそれ以来使っていません。無料枠の容量的にTeraCloudが良かったので選択した記憶があります。
自分で書いている原稿の同期とチェック
PaperShip+Zoteroは自分は出版された論文を読むのに主に使っていますが、自分で執筆中の論文原稿チェックには使っていません。Zotero+PaperShipだと全体の同期チェックが毎回入りますが、執筆中は特定の1ファイルだけ同期できればいいので若干オーバーキルになると思います。
自分の原稿をiPadでチェックするときは別のアプリ「PDF Expert」を使っています。このアプリの良いところはDropboxのフォルダを自然にブラウジングできるところです。PC側でTeXからDropbox上にPDFを生成するようにしておくと、iPadでPDF Expertを開いてファイルを見つけて書き込み、という作業が素早くできます。自分は無料版のPDF Expertで満足していますがアノテーションツールを購入しても便利そうです。(注意:TeXでPDFを上書き生成してしまうとアノテーションがなかったことになってしまうので、一旦ファイルを複製してから書き込みましょう)。
なぜ他の構成ではないのか
・Mendeley:2015年〜2017年頃まで使っていました。大学アカウントがなくなるとストレージ上限がグッと下がるようだったので、それを知った段階で早めに移行することにしました。2017年にZoteroやPapers、ReadCubeなどをいくつか試してみて、最終的にZoteroに落ち着きました。
運用Tips
Zoteroでは独立メモを作成することができます。たくさんの論文をサーベイするときは、フォルダを作成してそこに(拡張機能も使って)論文PDFを放り込みながら、各フォルダにメモを作成して論文間の関係が分かる程度に文章化しておくと、後でかなり楽ができます。
おすすめの設定:
環境設定 > 詳細タブ > 高度な設定「設定エディタ」 > 「extensions.zotero.recursiveCollections」をtrueに変更
これをしておくと、Zoteroでサブフォルダ内に入れた文献が、上のレベルのフォルダを閲覧している時にも一緒に表示されるようになります(デフォルトでオンにしてほしい……)。
バックグラウンド
私は……
- 統計的機械学習の研究をしている博士課程の学生
- 文房具が好きで万年筆を長いこと使っていたけどここ数年はiPadなしには回らないので万年筆が使えず残念……