Pandocで参考文献が辛い話 (PandocとZoteroで参考文献:余談編)
この記事は前編・後編(+余談編)で構成されています。
- 前編:Zoteroから参考文献リストを自動エクスポートする
- Zotero → BibTeX形式
- 後編:Pandocで参考文献リストを処理する扱う方法
- Pandoc's Markdown + BibTeX形式 → HTMLやLaTeXなど出力ファイル
- 余談編:Pandocで参考文献が辛い話
- いまここ
- 結論:既存のBibTeX用参考文献スタイル(bstファイル)は、Pandocの仕組みを通して使う選択肢が限られる
「Pandocで参考文献」の課題
後編までの説明で「Pandocで参考文献できるぞ!」という話をしてきました。
こだわりがなければ、和文向けには前述のSIST02を使うのが手っ取り早いです。そのまま使うならファイルをコピーするだけですし、ちょっとしたカスタマイズであれば比較的容易です(後述)。また欧文の論文を書く際には、定番とされる参考文献スタイル(シカゴスタイルなど)は一通り揃っています。
しかし実際に“まともな”和文の参考文献リストをPandocでつくるには、課題がいくつかあります。特に「論文を書きたいが、学会誌で参考文献の形式が決まっている(もしくはbstファイルが指定されている)」という事情であれば、相当な工夫が必要となります。
CSLを使う
そもそもCSLは、日本語圏においてあまり情報がありません[1]。
また、和文向けCSLファイルの数も少ないのが現状です。2つのCSLリポジトリにおいて「japan」で検索した結果は下記の通りです。
- CSL Search by Name: 13件
- Zotero Style Repository: 16件
解決策としては、自分でCSLをカスタマイズすることが挙げられます。
- 方法A:テキストエディタでCSLファイル(XML)を開いて、頑張って修正する
- 方法B:GUIベースのCSLエディタでCSLファイルをカスタマイズする
方法Bは、Mendeleyが提供しているCSL Editorが利用できます。既存のCSLファイルをベースに、ブラウザベースのGUIでCSLファイルの編集が可能です。
公式資料としては、Mendeleyを提供しているElsevierやCSLプロジェクトが資料を公開しています。
具体例としては「徳島大学附属図書館蔵本分館日誌」のブログ記事が参考になるかもしれません。
-
徳島大学附属図書館蔵本分館日誌: はじめてのMendeley(30) Visual CSL Editorで引用スタイルを編集
- SIST02のスタイルで、参考文献の番号が
(1)
や(2)
となっているのを1)
や2)
のように変更する例
- SIST02のスタイルで、参考文献の番号が
- 目次:徳島大学附属図書館蔵本分館日誌: 「はじめてのMendeley」連載記事をまとめました
BibLaTeXを使う
LaTeXでは参考文献のために、BibLaTeX(BibTeXではない)を用いることも可能です。BibLaTeXの特徴は、LaTeXの文法を用いて参考文献スタイルを高度にカスタマイズできる点です。またPandocでは --biblatex
オプションで利用できます(この場合citeprocは使用されません)。
しかし実際にPandoc+BibLaTeXを使うには、多少のコツが必要です。詳細は次の記事を参照してください。
そして致命的なこととして、BibLaTeXではBibTeXのbstファイルはそのまま使えません。自分でカスタマイズするにしても「和文と欧文のまじった文献リストを適切な書式と順序で表示する」ことはBibLaTeXでは難しいようです。
参考:
- Use custom .bst style file with biblatex - TeX - LaTeX Stack Exchange
- bibtex - Biblatex induced headache: Bibliography bst style not found - TeX - LaTeX Stack Exchange
- biblatexとBibTeX | 武田史郎のウェブログ
- (u)pBibTeX から biblatex に移行できるか (備忘録) (未完成) - ill-identified diary
参考文献の処理をすべてLaTeX側に任せる
どうしてもpBibTeX向けの既存bstファイルをそのまま使いたい場合は、Pandoc側で参考文献を処理することを諦める選択肢もあります。その際の方針は次のとおりです。
- 本文のみをPandocでLaTeXファイルに出力する
-
-s
オプションを使わない場合(本文のみ)- LaTeXファイル側でテンプレートを作り、出力ファイルを
\begin{document}
以下に\input
などで読み込む
- LaTeXファイル側でテンプレートを作り、出力ファイルを
-
-s
オプションを使う場合(スタンドアロン文書)- Pandocのテンプレートをカスタマイズする(
pandoc -D latex > template.tex
で既定テンプレートを出力可)
- Pandocのテンプレートをカスタマイズする(
-
-
--citeproc
や--bibliography
オプションを指定しない - Pandoc's Markdownに
\cite
や\bibliography
などを直接埋め込む - LaTeXはpLaTeXを使う
- pBibTeX(BibLaTeXではない)を使って文献を処理する
注意としては、Pandocは原則としてUTF-8のテキストしか入出力できません。既存のLaTeXテンプレートがShift_JISやEUC-JPなどの場合は、Pandocの出力(UTF-8)をnkf
コマンドやiconv
コマンドなどで変換する必要があります。
また内部がUnicode化されているupLaTeX/upBibTeXについては、pLaTeXの標準文書クラス(jarticle/jreport/jbook)はそのまま使えません[2]。pLaTeX前提の文書クラス(学会誌専用の文書クラスなど)も、upLaTeXで使えるとは限らないので注意が必要です。
LaTeX側で参考文献リストをつくる方法は、下記の資料などを参照してください。
おわりに
以上、「Pandocで参考文献」がつらい話をしました。
CSLもBibLaTeXも、BibTeXに比べると日本語圏の情報があまり存在しません。その割には両者ともPandocが推しているため、参考文献に関してエコシステムをPandocに寄せようとすると特に和文で苦労するのが現状です。個人的にはCSLのエコシステムが日本語圏においても発展してくれたら幸せなように思います。
-
いくつかの大学の附属図書館では、論文管理ソフトの講習会が開かれることがあります。そこでCSLおよびそのカスタマイズに関する情報が得られるかもしれません。私の出身大学では、MendeleyとEndNoteの講習会があったようです。 ↩︎
Discussion
「pandoc 辛い」でこの記事を見つけました.共に共感する人がいたことに救われました.記事を書き,公開してくださり,ありがとうございました.