Zotero・Obsidian・Codex+Pandocで、論文サーベイから執筆・引用管理までつなぐ

Zotero・Obsidian・Codex(OpenAI Codex CLI)とPandocをつないで、論文サーベイから執筆・引用管理までを一つにする手順。Better BibTeXのcitekey設定や、引用が解決できないときの対処まで、実際の設定そのままに解説します。

三匹の犬を手綱でつないで歩かせる手元の線画——Zotero・Obsidian・Codexを使いこなすイメージ

前回の記事で、論文サーベイから執筆までを一本につないだ話をしました。今回はその続編。みんながいちばん気になるであろう「で、結局どうやってつないでるの?」に、手順でちゃんと答えます。

正直に言うと、ここがこの仕組みのいちばんの山場です。でも、だからこそ書く意味がある。環境によって細かいところは変わるので、「自分ならこうかな」と読み替えながらついてきてください。一緒に組んでいきましょう。

まず全体像:何を、どの子に任せる?

最初に役割分担だけ頭に入れておくと、このあと迷子になりません。ざっくりこんな分担です。

  • Zotero:書誌情報とPDFの原本を管理する
  • Better BibTeX:citekey と BibTeX を生成する
  • Obsidian:文献ノートと論文草稿を管理する
  • Codex:PDFの読解・要約・引用候補と活用アイデアの整理を行う
  • Pandoc:引用表記と参考文献一覧を最終的に生成する

この仕組みの心臓部は、AIに引用情報を一から作らせないこと。書誌情報の出どころは、ぜんぶ Zotero に一本化します。ここだけは絶対にブレさせません。

1. 環境

  • OS:macOS 26.5(Apple Silicon の Mac)
  • Codex:OpenAI の Codex CLI(確認時点で v0.137.0)。ターミナルから起動します
  • Pandoc:v3.9.0.2

ポイントは、Codex を Obsidian の Vault を作業ディレクトリにして起動していること。こうしておくと、Vault の中の文献ノートや草稿を、Codex がそのまま検索・閲覧・編集できるんです。これが地味に効きます。

2. Zotero から BibTeX へ

BibTeX の出力には Better BibTeX for Zotero(確認時点で v9.0.23)を使います。

citekey の生成規則はこう設定しています。

auth.lower + year

これで chen2023yamamoto2018 みたいな「第一著者の姓+出版年」のキーができます。同じ著者・同じ年の文献が複数あるときは、tabata2026a のように末尾に文字が付く、というわけ。シンプルで覚えやすいでしょ?

そして Better BibTeX の Auto Export をオンにして、ライブラリ全体を次のファイルへ勝手に書き出させています。

article/article.bib

Zotero で論文を足したり書誌情報を直したりすると、Vault の中の article.bib も自動で追従してくれます。**このファイルを、Obsidian と Pandoc が共通で見にいく“文献データベース”**にしている、ここがキモです。

3. BibTeX と Obsidian をつなぐ

Obsidian 側で使っているのは Zotero Integration プラグイン(Citations プラグインじゃないので、そこだけ注意!)。

Zotero から文献を取り込むと、citekey をそのままファイル名にした文献ノートができます。

article/{{citekey}}.md

たとえば citekey が chen2023 なら article/chen2023.md ができる感じ。ノートの中には、タイトル・著者・DOI・Abstract・Zotero へのリンク・PDFの注釈・AI要約なんかを詰め込んでいます。

そして草稿の中では、Pandoc Markdown の引用記法を使います。

DiffusionDet [@chen2023] が提案されている。

複数の研究 [@chen2023; @yang2013] が示している。

Zotero Integration が挿入してくれる引用候補も [@citekey] 形式にそろえています。こうすると、草稿の書き方と、あとで動かす Pandoc がピタッと噛み合うんです。

4. Codex に要約・整理してもらう

ここがいちばん楽しいパート。Codex には、おもに Zotero Integration が作った文献ノートと、Zotero に保存した PDF を読ませます。必要なら、関連する文献ノートや、書きかけの草稿も一緒に見せます。

PDF が手に入らない文献は Abstract だけで要約してもらうんですが、そのときは「全文を読んだフリ」をされると困るので、はっきり注記を残させます。

PDFが取得できなかったため、Abstractに基づく要約です。全文の詳細は含まれていません。

指示の出し方は、たとえばこんな感じ。そのままコピペで使えます。

article/chen2023.md に対応する論文PDFを確認してください。

以下を日本語で整理し、文献ノートの「## AI要約」に追記してください。

- 一言要約
- 研究の背景と目的
- 提案手法
- 使用データ
- 主要な結果。数値があれば明記する
- 研究の新規性
- 限界
- 自分の研究で引用できる点
- 自分の研究への活用アイデア

PDF本文で確認できない内容は推測しないでください。
Abstractしか確認できない場合は、そのことを明記してください。
citekey、DOI、著者名などの書誌情報は変更しないでください。

出力先は、その論文に対応する Obsidian 文献ノートの「AI要約」欄。

ここでこだわってるのが、ただ要約させて終わりにしないこと。「この論文のどの主張なら自分の論文で引用できる?」「手法や比較実験、考察にどう活かせる?」まで整理させちゃいます。この一手間があるから、文献がただの要約じゃなく“使える形”になるんです。

5. Pandoc で書き出す

ラストは Pandoc。Obsidian の Markdown 原稿・article.bib・投稿先に合わせた CSL ファイルの三つを渡して、引用表記と参考文献リストを一気に生成します。

まず Word へ出す基本形:

pandoc draft.md \
  --citeproc \
  --bibliography=article/article.bib \
  --csl=path/to/style.csl \
  -o output.docx

PDF で出したいときは、こう:

pandoc draft.md \
  --citeproc \
  --bibliography=article/article.bib \
  --csl=path/to/style.csl \
  --pdf-engine=lualatex \
  -o output.pdf

引用スタイルは CSL ファイルで決まります。ここで一個ハマりやすいのが、Zotero Integration 側の CSL 設定と、Pandoc の CSL 設定はまったくの別物だということ。Zotero Integration に the-isme-journal を設定してても、Pandoc の出力を同じ見た目にするには、Pandoc を動かすときに対応する .csl を自分で指定しないとダメなんです。ここ、要注意。

※ 正直に白状すると、実際に使った Pandoc コマンド・出力形式・CSL は Vault に残していませんでした……。なので上のコマンドは、いまのファイル構成に合わせた基本例です。自分の投稿先の CSL に置き換えて使ってくださいね。

6. 最大の山場:citekey を一致させ続けること

ここが本題。つまずくのは、実はツール個々の使い方じゃないんです。Zotero・Obsidian・Pandoc の三者で citekey をズレさせないこと、これがいちばん難しい。

たとえば、いまの article.bib で DiffusionDet に付いてる citekey は chen2023。ところが昔のテスト原稿を見たら、こんな二種類が混ざってました。

[@chen2023]
[@chenDiffusionDetDiffusionModel2023]

後者はいまの article.bib にいないので、そのまま Pandoc を回すと「その引用、誰?」となって解決できません。これ、Better BibTeX の citekey ルールを途中で変えたときや、Zotero で著者名・出版年を直したときに、しれっと起きるんですよね。

ほかにも、わたしがハマったポイントを置いておきます(みんなは踏まないように!)。

  • Better BibTeX の citekey 規則を変えると、既存の草稿の引用が壊れる
  • Zotero の書誌情報を直すと、citekey も変わることがある
  • citekey・文献ノート名・本文内の引用がずれる
  • PDFがない文献を、AIが全文を読んだように要約してしまう危険
  • Zotero Integration の CSL 設定と Pandoc の CSL 設定を混同しやすい
  • Markdown 原稿・BibTeX・CSL のどれかのパスが違うと書き出しに失敗する
  • AIに書誌情報を作らせると、実在しない文献やDOIが混入する危険

結局のところ、効くのは「役割分担」

こういうトラブルを避けるためにやってるのが、最初に話した役割分担です。どの子に何を任せて、何を任せないかをハッキリさせる。これに尽きます。

軸になる原則はたったひとつ。AIに引用情報を一から作らせないこと。Zotero を唯一の“書誌情報の親元”にして、Codex には登録済みの論文を読み解いて「どう活かせる?」を整理してもらう。こうすれば、AIのスピードを楽しみながら、引用の正確さは Zotero と原文献がしっかり守ってくれます。

三つのツールをつなぐ最大のコツは、結局このシンプルな線引きだったんです。

おわりに

つなぐところ、正直めんどくさいです(笑)。でも一回組んじゃえば、あとは「集めた文献が、そのまま書くことに直結する」状態がずーっと続きます。

最初の山さえ越えれば、サーベイはもう重労働じゃない。むしろちょっと楽しくなりますよ。一緒にがんばりましょう。

#Zotero#Obsidian#Codex#Pandoc#Better BibTeX#citekey#論文執筆