文献管理ソフト Zotero ~ 設定編~

f:id:humosy:20170927091235p:plain

前の記事で紹介したZoteroについて、私が便利だと思った設定やアドオンを紹介していきます。設定の自由度がとても高いので、設定項目を網羅的に紹介するのではなく、目的別に利用手順や関連する設定項目を紹介していくことにします。そのため、紹介する項目選びは私の利用スタイルが強く影響していることをご了承ください(数理系の英語文献を主に扱う人種です、念のため)。

前回記事: humosy.hatenablog.com

基本設定

ここではZotero本体の動作に関する設定を目的別に紹介します。

PDFの本文を検索したい

検索をPDFの本文に対して行うためには、pdftotextpdfinfoが必要になります。これはPreferences > SearchタブのPDF Indexingという囲みでダウンロードとインストールを実行できます。インストールできたら、その上部にあるRebuild Indexから、インデックスの再構築を行いましょう。これで既にライブラリに入っているPDFファイルに対しても全文検索が有効になります。また、これ以降に追加されたPDFファイルについては、自動的にindexが作成されます。

Dropboxで他のPCと文献データベースを共有したい(公式には非推奨?)

Zoteroのウェブアカウントを作成することで300MBのストレージが手に入るので、これを使って文献情報を共有することはできます。しかし、アドオンのZotFileを使ってPDFファイルをDropboxに保存するので、これを参照する文献情報も一貫してDropboxに置いて置くことにします。なお、この途中で警告が出てくることから非推奨の設定と思われます。データベースが壊れるなどしても責任は負いかねますので、自己責任で行ってください(私のデータベースにトラブルが生じたらここで報告します)。

  1. Preferences > Advanced > Files and Foldersの上部にあるテキストボックスBase directoryDropboxのフォルダを指定する
    これをしないと、PDFファイルのパスが絶対パスで保存されてしまうため、他のPCのZoteroからPDFファイルが参照できなくなる場合があります。
  2. 同じタブのData Directory Locationと書かれた囲みでDefaultと書かれたフォルダをDropbox内にコピペする
  3. 同じ囲みでCustomをチェックし、2.のコピペ先のフォルダを指定する
    この時、警告が出てきますので、自己責任で進んでください。

Webページのスナップショットを取るのをやめる

デフォルトでは、Zotero connectorからブラウザ経由で文献情報を取り込む際にそのページをまるごと添付ファイルとして保存します。いちいち取り込みに時間が掛かりますしファイル数も無闇に増えるので、この動作をオフにしています。

  • 設定方法:Preferences > GeneralタブのMiscellaneous内で、Automatically take snapshots when creating items from web pagesのチェックを外す

アドオン

既に書いたように、Zoteroはアドオンで機能を追加できます。Zotero単体ではMendeley等に比べて劣る部分も少なくないとも言えますが、アドオンが使える柔軟性は、私の場合、特にBibTeX連携で威力を発揮しています。はっきり言ってMendeleyの出力するbibファイルはヒドいものでしたが、文献管理の読み取り精度が高いZoteroBibTeX出力を制御するBetter BibTeXというアドオンの組み合わせは、非常に快適な執筆環境を実現しています。私が使っているのは次の2つのアドオンです:

  • Better BibTeX (BBT, 公式サイト
    Zotero本体のbibファイル出力が持つ問題を修正した上で、多くの独自機能と柔軟な設定項目を追加してくれる。
  • ZotFile (公式サイト)
    Zoteroに保存しているPDFファイル等を適当な名前にリネームしてフォルダに整理する。

なお、アドオンは次の手順でインストールできます:

  1. 各サイトから.xpiファイルをダウンロード
  2. メニューからTools > Add-onsを開く
  3. 出てきたウィンドウにダウンロードしたファイルをドラッグ&ドロップ
  4. セキュリティに関する警告に答えてインストール完了したらZoteroを再起動

Better BibTeX

Zotero自体もbibファイルの出力機能を持っていますが、文献情報を編集するたびに引用キーが変更される、キーの一意性が保証されない、等の問題がありました。BBTはこれらを修正し、次のような機能を追加してくれます:

  • 引用キーの生成規則を設定できる
  • 文献情報が更新された時にbibファイルも自動で更新する
  • Unicode文字をLaTeX形式に変換する
  • bibファイルに含める書誌情報のデータ項目を設定できる
  • 自作スクリプトを設定して、bibファイルに出力する前に出力内容を修正できる

設定は、PreferencesメニューのBetter BibTeXタブから行います。執筆時点(2017/09/27)でZotero 5への対応が完全ではないようですが、対応が進められているようです。私が使っている範囲では、既に全く問題無く動作しています。

基本の使い方と自動更新

BBTを使ってbibファイルを作成する手順は次のとおりです。

  1. bibファイルに含めたいライブラリ、またはコレクション、または文献を選択(複数可)
  2. 右クリックからExport xxxを選択(xxxItem, Collection, Libraryなど1.で選択したものによる)
  3. プルダウンメニューからBetter BibTeXを選択
  4. 保存場所を選んで保存

プルダウンメニューでBetter BibLaTeXを選ぶだけでBibLaTeXにも対応します。

また、ExportダイアログのTranslator OptionKeep updatedにチェックを入れることで、以後ライブラリが更新されるたびにbibファイルが自動更新されるように設定できます。自動更新されるタイミングについては、Preferences > Better BibTeX > Automatic exportで、On change(ライブラリに変更があった時)とWhen idel(アイドル時)から選択できます。同じタブで、自動更新されているbibファイルのリストが確認できます。

引用キーのフォーマットを固定する

LaTeXciteコマンドで指定する引用キーを、Zoteroに登録した書誌情報から決められたフォーマットで生成できます。

  • 設定場所:Preferences > Better BibTeX > Citation keysの一番上にあるCitation key formatと書かれたテキストボックス
  • 設定例:[auth]_[journal][year]
    この場合、(第一著者姓)_(論文誌略称)(出版年)という形式で出力される。ここに指定するパターンの詳細についてはこちら

出力から除外するデータ項目を設定する

初期設定ではアブストラクトやPDFファイルのパスまでbibファイルに出力されます。bibファイルを直接覗く機会はほとんどありませんが、共同執筆者にゴミだらけのファイルを送るのも忍びないので、不要な項目は出力しないように設定しました。

  • 設定場所:Preferences > Better BibTeX > Exportの下部にあるFields to omit from exportというテキストボックス
  • 設定例:abstract,file
    これでbibファイルからアブストラクトとPDFのパスを取り除ける。これ以外にもBibTeXのフィールド名を指定すれば、どのフィールドも除外できる。

数式を含むタイトルを数式として出力する(Scripting機能について)

BBTは標準で、書誌情報に含まれる一部の記号と非ascii文字を自動でLaTeX形式にエスケープします。特に、$記号やバックスラッシュをエスケープするため、タイトル等に数式を含む理数系にとって辛い仕様となっています。この動作をカスタマイズするには、BBTのscripting機能を使います。

  • 設定場所:Preferences > Better BibTeX > Advanced
  • テキストボックスに下記コードをコピペ:
if (Translator.BetterBibTeX && this.has.title) {
  this.add({ name: 'title', value: this.item.title.replace(/(\$.*?\$)/g, '<pre>$1</pre>'), replace: true });
}

titleフィールドに含まれる$で囲まれた部分を$も含めて<pre>タブで囲んでいます(<pre>についてはここの最下部に記述があります)。なお、アブストラクトに含まれる数式についても、上記コードのtitleabstractに置き換えることで、$に囲まれた部分が数式として処理されるはずです。

Scriptingの他の応用例はこちらで紹介されています。私はフィールドの並び順を変更しています:

if (Translator.BetterBibTeX || Translator.BetterBibLaTeX) {
    // 配列`order`で指定された順番に並びます
    // 順序が指定されていないフィールドは最後に順不同で配置されます
    // https://github.com/retorquere/zotero-better-bibtex/issues/512
    var order = ['author', 'title', 'journal', 'volume', 'number', 'pages', 'year', 'doi'];
    this.fields.sort(function(a, b) {
      var oa = order.indexOf(a.name);
      var ob = order.indexOf(b.name);
      if (oa < 0) { return 1; } 
      if (ob < 0) { return -1; } 
      return oa - ob;
    });
}

ZotFile

ZoteroはデフォルトでPDFファイル等の名前を自由に設定できません。PDFファイルは文献情報とは関係のない名前が付けられますので、保存されたディレクトリを見てもどこになんのファイルがあるのかわかりません。この動作を修正して、任意の場所に自分で設定できる命名規則に従ってリネームする機能を追加するのがZotFileです。

設定は、Tools > ZotFile Preferencesから行います。

添付ファイルを好きな場所に保存したい

デフォルトではZoteroのデータベースが保存されているディレクトリに保存されるPDF等を任意の場所に移動できます。私はここでDropboxディレクトリを指定し、iPadなどからも見られるようにしています。

  • 設定場所:Tools > ZotFile Preferences, General Settingsタブ内のLocation of Files
  • 設定方法
    1. Custom Locationをチェック
    2. ディレクトリを選ぶ
      私の場合は、Windows機とMacbookDropbox内の同じディレクトリを指定しています。そのような設定は場合によってファイルの衝突を引き起こす可能性があるので、自己責任で行ってください。
    3. 必要ならUse subfolder defined byをチェックし、サブディレクトリ構造を指定する
      私は\%cと指定し、Collectionの構造がディレクトリ構造に反映するように設定しています。

添付ファイルを規則的にリネームしたい

わかりやすいファイル名を付けましょう。

  • 設定場所:Tools > ZotFile Preferences, Renaming Rulesタブ内のRenaming Format
  • 主なプレースホルダーの説明
    • %a: 著者名リスト(著者が多い場合の取り扱いについては下部のAdditional Settingsから設定できます)
    • %I: 著者イニシャルリスト
    • %s: 論文誌略称
    • %j: 論文誌名称
    • %y: 出版年
    • %t: 文献タイトル
  • {}で囲まれている部分は、これに含まれるプレースホルダーが空の場合に省略されます。
  • {}の中を|で区切ると、最初に現れたから出ない部分が出力されます。
  • 設定例: {%a_}{%s_|%j_}{%y_}{%t}
    • 著者名_雑誌省略名_年_タイトル.pdfという形式になります
    • 著者Humosy, 論文誌 Journal of Humosy (略称 JoH), 2017年出版, タイトルが「How to use Zotero」の場合、次のような出力が得られます:
      • Humosy_JoH_2017_How to use Zotero.pdf
      • Humosy_Journal of Humosy_2017_How to use Zotero.pdf (論文誌略称が未設定の場合)
      • JoH_2017_How to use Zotero.pdf (著者名が未設定の場合)