Zoteroから参考文献リストを自動エクスポートする (PandocとZoteroで参考文献:前編)

公開:2020/12/04
更新:2020/12/05
7 min読了の目安(約6600字TECH技術記事

この記事は Pandoc Advent Calendar 2020 の4日目の記事です。

本や論文を書くときに、参考文献を専用のシステム(文献管理ソフト)で管理すると便利です。

これから前編・後編にわたって、文献管理ソフトの1つであるZoteroの参考文献リストを、文書変換ツールPandocから利用する方法について紹介します。

参考文献リストをZoteroからPandocへ渡すために、次のファイル形式が利用できます。

  • BibTeX形式
    • LaTeXにおいてよく用いられる参考文献リストの形式
  • BibLaTeX形式
    • BibTeXにおける機能の大半(ソート機能以外)LaTeXで実現した参考文献リストの形式
  • CSL JSON形式
    • CSL(Citation Style Language)プロジェクトで用いられるJSON形式の参考文献リスト

今回はBibTeX形式のファイル (.bib) を主に使います。ここでは単に、BibTeX形式のことを「参考文献リストのファイル形式」だと思っていただければ結構です(BibTeXの詳細については立ち入りません)。

  • 前編:ZoteroからBibTeX形式の参考文献リストを自動エクスポートする
    • Zotero → BibTeX形式
    • いまここ
  • 後編:Pandocで参考文献リストを処理する扱う方法
    • Pandoc's Markdown + BibTeX形式 → HTMLやLaTeXなど出力ファイル
  • 余談編:Pandocで参考文献が辛い話
    • 結論:既存のBibTeX用参考文献スタイル(bstファイル)を使いたいなら、Pandocの参考文献機能を諦めよう

スクリーンショット内では、次のページを参考文献のサンプルとして利用させていただきました。

Zotero

(図:Zoteroの画面)

Zoteroのインストール

Zotero本体は 公式サイト からダウンロードします。
ローカルで動作しますが、アカウントを作成しておくとクラウド同期できて便利です。

ついでにChrome拡張のZotero Connectorもインストールしておくと、Webページを直接インポートできるのでさらに便利です。

Better BibTeX for Zoteroのインストール

Zoteroに「Better BibTeX for Zotero」というアドオンを追加することで、BibTeX出力の機能を拡張できます。

公式の説明はInstallationにあるので、必要な方はご参照ください。

  1. GitHubのlatest releaseからダウンロード&インストール
  2. Zoteroを開き、メニューバーの「ツール」→「アドオン」を開く
  3. 右上の歯車をクリックし「Install Add-on From File ...」をクリック
  4. ダウンロードした zotero-better-bibtex-x.x.xx.xpi を選択
  5. 以下、指示にしたがう(途中でZoteroを再起動する)

Better BibTeXのカスタマイズ

まず設定画面を開きます。

  • macOS:メニューバー「Zotero」→「環境設定 (Preferences)」
  • Windows:メニューバー「編集」→「設定」

以下、macOSベースで説明します。Windows等の方は適宜読み替えてください。

またこの記事では日本語表記のメニューで説明します。英語表記から日本語表記に変更したい場合は「Advanced」→「Language」を「日本語」にして、「Restart Now」をクリックしてください。

Zoteroの設定画面

Citation key format

引用キーの形式を、お好みでカスタマイズします。

  • 「Better BibTeX」タブ
    • Citation keys
      • Citation key format: 好きなフォーマットに変更

個人的には [auth:lower][year] (例:fujiwara2020)を使っています。

ただし日本語名の著者・タイトルだと(おそらく)中国語に変換されてしまうので、そのままだと引用キーがカオスになります。

そこで文献ごとに後述の方法で引用キーをカスタマイズすることで、引用しやすくします。方法は後半で説明します。

Citation Keys :: Better BibTeX for Zotero

QuickCopy

Pandoc's Markdown形式の引用キーを Command(Ctrl)-C キーでコピーできるようにします。
具体的には [@fujiwara2020] のようなテキストを一発でコピーできるようにします。

  • 「Better BibTeX」タブ
    • Citation keys
      • QuickCopy format: 「Pandoc」を選択
      • 「Surround Pandoc citations with brackets」にチェック
  • 「エクスポート」タブ
    • デフォルトのフォーマット: 「Better BibTeX Citation Key Quick Copy」を選択

自動エクスポート

BibTeX形式のファイルを自動的にエクスポートしてくれるように設定します。

  • 「Better BibTeX」タブ
    • Automatic export
      • Automatic export: 「On Change」(またはWhen Idle)を選択
  • 「詳細」タブ
    • 「ファイルとフォルダ」→「データ・ディレクトリの場所」
      • 「デフォルト」(macOS: $HOME/Zotero)または「個人設定」(好きなフォルダを選択)

これだけでは同期してくれないので、エクスポート用のフォルダ(Zoteroではコレクションと呼ぶ)をつくりましょう。

  • 設定画面を閉じる
  • 「マイ・ライブラリ」を右クリック→「新規コレクション...」
  • 好きなコレクション名を入力する

新規コレクション

コレクションができたら、そのコレクションを右クリック→「コレクションをエクスポート...」をクリックします。

コレクションをエクスポート(1)

出てきたダイアログで次のように設定します。

  • フォーマット:「Better BibTeX」
  • トランスレータのオプション:「Keep updated」にチェックを入れる

コレクションをエクスポート(2)

「OK」をクリックすると、エクスポートする場所を指定するダイアログが表示されます。
ここで指定したフォルダに、BibTeX形式のファイル (.bib) が生成されます。このBibTeXファイルをPandocに読み込ませます。

個人的なお勧めとしては、このBibTeXファイルの保存場所を参考文献の引用元となる原稿(Pandoc's Markdown)と同じフォルダにすると便利です。
Pandocのコマンドラインオプション等でこのファイルを指定する際に便利です。

「Keep updated」にチェックを入れておくと、これ以降もBibTeXファイルが自動的に同期されます。
つまりBibTeXファイルを直接プロジェクトフォルダに出力するようにすれば、
「Zoteroで文献を追加・編集→ビルドするだけで出力ファイルに反映される」という便利なワークフローが作れます[1]

以上で、下準備は完了です。

Zoteroで文献を登録する流れ

いったん設定が完了すれば、文献登録はスムーズに進められます。

文献登録の方法は、主に次のいずれかです。

  • A. Webブラウザから:Zotero Connector(Chrome拡張)
  • B. BibTeXファイルがある場合:「ファイル」→「インポート...」
  • C. BibTeX形式のテキストがある場合:「ファイル」→「クリップボードからインポート」

Aの方法は、Webページと書籍の両方で利用できます。Webページをそのまま取り込みたいときにZotero Connector拡張のボタンを押せば取り込まれます。

書籍の場合はGoogle Booksが利用できます。Zotero Connector拡張を入れた状態で「BibTeX」ボタンを押すと、「Zotero Connector」というダイアログが出ます。「OK」をクリックすればZoteroに取り込まれます。

Google Books

(図:Google Books)

Bの方法は、Zotero Connectorが対応していない論文リポジトリ等で利用できます。

Cの方法は、たとえばCinii ArticlesCinii Booksから日本語の論文・書籍情報をインポートする際に便利です。具体的には日本語の書籍を検索する際は次の手順で可能です。

  1. CiNii Books で本を探す
  2. 右下「書き出し」の「BibTeXで表示」をクリック
  3. 表示されたテキストをクリップボードにコピー(Command-C or Ctrl-C)
  4. Zoteroで「ファイル」→「クリップボードからインポート」

CiNii Books

(図:CiNii Books)

CiNii Books:BibTeXで表示

(図:CiNii Books:BibTeXで表示)

クリップボードからインポート

(図:クリップボードからインポート)

このようにZoteroでは文献を次々と追加できるので、参考文献や出典を明確にした文書を気軽に作成できます。

引用キー (citation key) の変更方法

前述のように日本語名の著者・タイトルの場合は、引用キーがめちゃくちゃになります。そこで引用キーを任意に変更したくなります。

そこで引用キーを変更しようと思ってクリックしようとすると……なんと変更できません!

実際には、引用キーの変更は次の手順で行います。

  1. 引用キーを変更したい文献を右クリック
  2. 「Better BibTeX」→「Change BibTeX Key...」
  3. 任意の引用キーに変更する

一度覚えたら難しくはないですが、初見殺しでした……。

Change BibTeX Key

前編のおわりに

前編(ZoteroからBibTeX形式をエクスポート)は以上です。
初期設定は大変ですが、一度設定してしまえば気軽に参考文献を引用できるようになります。

後編では、エクスポートしたBibTeX形式のファイルをPandoc's Markdownから引用し、Pandocで処理する方法について説明します。

参考文献

(1) 奥村晴彦, 黒木裕介. LATEX2ε美文書作成入門. 改訂第8版, 技術評論社, 2020. https://ci.nii.ac.jp/ncid/BC0385507X.
(2) Sakuraba, Kouhei. “Zotero+BibTeXで参考文献の出力を自動化&論文の引用で出てきた順にソートする”. Qiita. https://qiita.com/skrb_hs/items/73061b7a8e39f1e73e0d, (参照 2020-12-04).

おまけ:Zoteroから参考文献リストのテキストを取得する

上記の参考文献リストはZoteroから直接出力しました。手順は以下の通りです。

  • コレクションを右クリック→「コレクションから参考文献目録を作成する...」
    • 引用スタイル:「SIST02 (Japanese)」
    • 出力方法:「クリップボードにコピー」
  • 「OK」をクリック
  • テキストエディタに貼り付ける
脚注
  1. Zoteroとの違いとして、Mendeleyは1つのフォルダにしか自動エクスポートのBibTeXファイルを生成できません。
    私はこのファイルに対するシンボリックリンクをプロジェクトフォルダに置き、必要に応じて参照またはcp -f で実体をコピーしていました。 ↩︎