Zotero×OneDrive×Notionで最強の論文管理ソフトを作成しよう

# はじめに

研究室に配属から数か月たつと、その分野の代表的な概念や自分の研究の先行事例などを調べ、論文をチェックするかと思います。最初の方は2、3本と論文の本数が少なく、特に何も意識しませんが、本数が5本、10本、20本となっていくと、管理が大変になっていきます。特にいくつかの研究プロジェクトを持つと、どの論文がどのプロジェクトに対応しているのかわからなくなります。

以前私は、Notionでデータベースを作成し、論文のPDFとURL、タグの情報を書き込んでページに論文の内容をまとめていました。ただ、20本手前になると、だんだんと管理がつらくなり、Notionのデータベース以外の論文の管理方法を探しました。

そこで見つけたのが、**Zotero**です！他にもいくつか管理ソフトはあるそうですが（Mendeleyや、Paperpilなど）、OSに依存せず、モダンなUIであったためZoteroを選びました。あと、このサイトの紹介文章がよかったです。

- [【令和最新版】文献管理ソフト Zoteroのすゝめ｜SD (note.com)](https://note.com/sdeso/n/n013952313c1b)

Zoteroについて少し解説します。Zoteroは、以下の機能を備えたソフトです。
* アイテム
タイトル、著者、発行日、URLなどの論文の情報
* メモ機能
Markdown形式のテキストファイル。
* 複数デバイスの同期
    * 添付ファイルを除くアイテムやメモなどのデータ同期：無制限
    * 論文や画像などの添付ファイルのファイル同期：無料だと300MBデータまで
etc.

少しややこしいのは、同期のところです。Zoteroの同期は、**データ同期**と**ファイル同期**の2つに区別されています。ざっくりいうと、ファイル同期はZoteroにインポートしたファイル（論文のPDFや画像など）を同期してくれて、それ以外の自動で生成された情報はデータ同期で無制限に同期できると思っていてください。詳細は、以下の公式ページで確認してください。

https://www.zotero.org/support/sync

使用して感じたのは、PDFをインポートするだけで、ファイル名を著者-発行日-タイトルに変更して、URLやジャーナルなどを事細かに整理してくれるのがすごく助かります。WEBサイトから論文をPDFでダウンロードすると、大体変な数字とアルファベットのファイル名で保存されると思います。そのため自分でファイル名を変更していたのですが、その手間から解放されました。実際に例を出すと、適当な論文のPDFをZoteroにインポートすると、次のようにまとめられます。
![スクリーンショット 2024-08-26 013422.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/c9b3378b-a4c1-45f9-928d-0cb7c34a38ef.png)
論文のタイトル名でアイテムが作成され、その中に論文のPDFファイルが著者-発行日-タイトルのファイル名で作成されます。またアイテムには、著者らやジャーナル、DOIなどほとんどの論文情報が自動で集約されます。**ただファイルをインポートしただけなのにです。**

このようにZoteroに搭載されている機能は、非常に便利な側面もあるのですが、メモ機能が弱かったり、ファイル同期する際の容量が少なくちょっと不安要素もあります。そこで、この不安要素を、別のツールを使うことで、最強の論文管理ソフトにします。具体的には、Notionとデータを共有することでメモをNotionで行い、Zoteroのファイルの保存パスをクラウド上（ここではOneDriveを使用）にすることでファイル同期の容量制限を緩和させます。これによりZoteroの弱い要素を解消し、最強の論文管理のツールに仕上げます。ZoteroとNotionを使用することになるため、1つのツールにまとめられないことがデメリットですが、Notionも優秀なツールなのでこのデメリット以上のメリットを享受できると思います！

※追記
* Notionと連携したのですが、利便性があまりよくなかったです。後述していますが、ZoteroからNotionへの移動は楽なのですが、NotionからZoteroへ移動するちょっとめんどくさいです。そのため、あまり使わなくなりました。また後から気づいたのですが、Zoteroのメモ機能であるNoteが結構優秀でした。特に不便なく使え、Zotero内のアイテム（論文や本など）のサイテーションが可能です。そのため、Notion強いこだわりがなければ、ZoteroのNoteを使った方がいいと思います。この記事を書いたとき何を不満に思ったのやら。

では、以下はZoteroの設定手順について説明します。

※2024/08/25時点ではZoteroの最新バージョンはZotero7です。ここではZotero7に対応した設定をします。

# Zotero×OneDrive×Notionの連携

## Zoteroのアカウントの作成とインストール

まず、Zoteroのアカウントを作成し、インストールします。

https://www.zotero.org/

## Zoteroの初期設定

まず、Zoteroの同期機能について設定していきます。「Edit」→「Settings」→「Sync」とクリックしていき、データ同期をオンにするために、上の2つのチェックボックスを選択し、ファイル同期をオフにするために、下の2つのチェックボックスを未選択の状態にします。

![スクリーンショット 2024-08-29 001928.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/03bb2c74-6caa-aa32-dd78-cba169fd5500.png)

次に、指定するクラウドストレージのパスに「base directory」を変更します。「Choose」を選択し、パスを指定してください。Zoteroはこのbase directoryから相対パスとしてファイルを管理します。これによりbase directoryが異なったとしても相対パスが同じであれば同様の状態にできるため複数のデバイスを同期することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/9bd25081-25cc-4cfe-acdf-db59bf956543.png)

最後に、Webのスナップショット機能と自動のタグ付けの機能をオフにします。Webのスナップショット機能は、特に使わないため、使用デスク容量を減らすためオフにしました。自動のタグ付け機能は、タグがあふれてしまうのでオフにすることをお勧めします。


<div align="center">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/b317fc2c-0320-112c-acd5-789c7a04eaff.png" width="300px" height="auto">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/6ec8cab1-d6ab-d25f-e47c-d165317c0afe.png" width="300px" height="auto">
</div>


## クラウドストレージにパスを設定

クラウドストレージにパスを設定するために[ZotMoov](https://github.com/wileyyugioh/zotmoov)または、[Zotero Attanger](https://github.com/MuiseDestiny/zotero-attanger)を使用します。
ここでは、ZotMoovの設定の仕方について説明します。

https://github.com/wileyyugioh/zotmoov

https://github.com/MuiseDestiny/zotero-attanger

Zoteroに拡張機能を追加するためにxpiファイルをダウンロードします。ZotMoovのGithubページのlatest releaseからxpiファイルをダウンロードしてださい。
そのあとZoteroの「Tools」→「Plugins」→「⚙」→「Install Plugins…」を押して、ダウンロードしたxpiファイルを選択してください。すると、Zotero Settingsの下にZotMoovが追加されます。

ZotMoovの「Directory to Move File to」にクラウドストレージのパス（先ほど「base directory」で設定したパス）を指定してください。特に理由がなければすべてのチェックボックスを付けることを推奨します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/e2bc80de-d172-4f27-96c5-174a94ba023c.png)



これでZoteroのファイルをクラウドで管理することができます。ほかのデバイスにも同様の設定をすることで同期が可能です。

## Notionとの連携

ZoteroとNotionを連携するには[Notero](https://github.com/dvanoni/notero)を使用します。

https://github.com/dvanoni/notero


※NoteroはZotero→Notionの一方通行になります。そのためNotionの変更はZoteroに反映されません。
まず、ZotMoov同様にNoteroをZoteroにインストールします。次のようにZotero Settingの画面でNoteroのインストールされていることを確認できたら、Notionの設定をしていきます。

![image 5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/6a4c83bd-68d5-0f4b-2276-797853189e60.png)


NoteroはNotion APIインテグレーションで内部インテグレーションシークレットが必要です。次のページからZoteroという名前の新しいインテグレーションを作成してください。

https://www.notion.so/profile/integrations

以下のように設定できたら、内部インテグレーションシークレットの値をNoteroのIntegration Tokenにペーストしてください。

<div align="center">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/48dc6393-914c-5e24-f1e0-50cd9102e28e.png" width="300px" height="auto">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/6b8dd1e0-7f7c-e5c0-f7fa-aafb143c9d50.png" width="300px" height="auto">
</div>



Zoteroアイテムを同期するためのNotionデータベースを作成します。今回はNoteroにあるAdvanced Examplesしようしてみましょう。
[](https://www.notion.so/79b17005bc374209b0f373b1a3cde0ae?pvs=21) 

自分のアカウントにデータベースを作成したら、ページに移動してください。その後、右上の「・・・」→「接続先」→ インテグレーションの名前（Zotero）を検索し、選択してください。

![05df5dad-8199-4de7-9ecf-3fb4323dfa2a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/85f93acc-5ea4-bf49-d220-6bcb36e7489c.png)



するとNoteroの「Database」でNotero Advancedを選択することができます。

![image 8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/89a77722-e99d-0680-c790-294cef3adc15.png)


以上でZoteroとNotionの連携の準備ができました！
実際にZoteroにアイテムをインポートし、アイテムを右クリックすると、一番下の項目に「Sync to Notion」が追加されてるため、選択するとNotionにアイテムが反映されます！

# より便利な設定
## Zotero⇔Notionのデータベースの移動を少しスムーズにする方法

ZoteroのアイテムをNotionにデータベースを連携して、論文もNotionで見たいという方がいるかと思います。残念ながらZoteroにアップロードした論文をNotionで見る方法は見つかりませんでした。またデータベースカラムにあるZotero URLはZoteroのストレージにアップロードしたものしかできず、今回のやり方では閲覧できません。そのため論文の閲覧とノート取りをするためには見たい論文をZoteroのデータベースとNotionのデータベースの2つから探さなければなりません。これは少し苦痛です。ここではZoteroとNotionの移動をスムーズに移動する方法を説明します。

### Zotero→Notionへの移動

ZoteroからNotionへ行くには「Sync to Notion」を選択後に生成される「Notion」というファイルを選択するとページが開きます。

![image 8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/cea894f6-895d-9ebd-1d9a-311758c2a42f.png)


### Notion→Zoteroへの移動

NotionからZoteroは無理やりZoteroデスクトップのアイテムのWebアドレスを作成し、開くという強引な方法をしています。（よりよいやり方があれば教えてほしいです。）Zotero URLの`IY999J7E`はアイテムの識別値です。これを指定することでアイテムを開きます。

```jsx
http://zotero.org/users/6393329/items/IY999J7E
```

これをZoteroデスクトップで開くために次のように変換します。

```jsx
zotero://select/library/items/IY999J7E
```

これをWebアドレスに入力すると、「このサイトは、Zoteroを開こうとしています。。。」と表示されるため、開くを選択するとZoteroデスクトップが開き、識別値のアイテムが選択された状態で開きます。

![image 10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/fb1130c6-a54a-124d-d6ea-01b3ec425be0.png)



少し手間ですが、今のところこの方法しかわかりません。便利な方法があれば情報を更新します。

またZotero URLからZoteroデスクトップ開くためのURLに変換はNotionに自動化させちゃいましょう。Zoteroと連携してるデータベースにカラムを作成し、プロパティから種類でNotion数式を選択後、次のコードを張り付けてください。

```jsx
("zotero://select/library/items/"+last(split(prop("Zotero URI"),"/")))
```

自動で、Zotero URLからZoteroデスクトップ開くためのURLに変換されるようになります。

## ZoteroのPDF閲覧時の翻訳

Zoteroはデフォルトでは翻訳機能が搭載されていません。英語弱者にとっては由々しき事態です。これだとZoteroで論文を読むことができません。そこで、翻訳機能をZoteroに追加するために[Zotero-pdf-translate](https://github.com/windingwind/zotero-pdf-translate)を使用します。

https://github.com/windingwind/zotero-pdf-translate


ZotMoovやNoteroと同じように次のGithubからxpiファイルをダウンロードして、Zoteroにインストールしてください。翻訳したい文字を選択するだけで翻訳してくれます！

![image 11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/a8c8df77-efbd-0d10-51de-70dbb1b3dcd3.png)

## BibTexの出力方法
Collection内にある論文の文献情報をまとめて、BibTexで出力する方法について説明します。
まず、zotero-better-bibtexをインストールします。

https://github.com/retorquere/zotero-better-bibtex

1. 出力したいCollectionを右クリック
2. 「Export Collection..」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/584439b3-1776-443f-9acb-aaa1e4734919.png)

3.  Formatで「Better BibTex」を選択し、「OK」を選択（チェックは必要がなければ外す）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2734306/14784c02-a85a-4577-a867-b5ed770d3da5.png)

すると、Collectionの名前でbibファイルが生成されます。
また、「keepUpdated」にチェックを入れると、Collection内の変更が自動で反映されるようになります。

## 他の拡張機能

### 研究室内での共有論文データベースの作成

https://github.com/linuxserver/docker-zotero

ファイルをサーバーPCにアップロードしてから、Zoteroに読み込ませる必要があった。そのページ内で可能ではあるが、二度手間で使い勝手が良くなかった。またVNCであるため同時接続できない。

### 引用数のカウント

https://github.com/eschnett/zotero-citationcounts


# おわり

以上が論文管理ツールZoteroの設定でした。このセットアップを通じて、一人でも多くの人の研究効率を向上させる一助となれば幸いです。この記事にミスやより良い方法がある場合は気軽にコメントください。今後も新しい発見があれば、さらに便利な情報を共有していきたいと思います。