LaTeX で文献情報を取得するときにハマったこと
本記事について
\LaTeX での文献引用
何が起こったか
R の {rticles}
パッケージを使って論文執筆を進めていました。{rticles}
は、RMarkdown(Rmd)で論文を執筆して knit することで、指定した各出版社のフォーマットに沿った PDF ファイルを出力できるという便利なパッケージです。詳細はこちら。
ただ、論文を投稿する際には tex
ファイルを実行し、きちんと PDF ファイルが出力されるかを確認する必要がありました。
今回の問題は、tex
ファイルを実行して出力した PDF に引用文献が反映されなかったというものです。
tex
ファイルから出力された PDF ファイルは以下です。本文中に文献情報が入っておらず、文献リストもありません。
本当は以下のように出力されてほしいです。
なお、tex
ファイルを実行すると、以下のようなエラーメッセージが出てきます。{natbib}
は文献データベースから文献情報を引用するための {natbib}
パッケージの詳細はこちら。
Package natbib Warning: Citation `Ade09' on page 1 undefined on input line 99.
Package natbib Warning: Citation `Alb05' on page 1 undefined on input line 99.
どう解決したか
niszet さん(Twitter: @niszet0)に助けてもらい、解決しました。大感謝です。。。
結論、以下のファイルがディレクトリに存在する状態で tex
ファイルを実行する必要があるというものでした。ファイル名は仮で、ここで重要なのは tex
、cls
、bbl
の各ファイルが作業ディレクトリにあるということです。tex
ファイルは文書の中身、cls
ファイルは出力 PDF のフォーマット情報、bbl
ファイルは文献情報です。tex
と cls
は Rmd を knit したときに自動的に生成されますが、bbl
は生成されません。そのため、TeX Live で bbl
ファイルを生成しました。
manuscript.tex
interact.cls
manuscript.bbl
エラーの要因はシンプルで、私が作業したディレクトリには上記のうち bbl
ファイルが存在していなかったのです。
{rticles}
ではうまくいくのに tex
ファイルを直接実行するとうまくいかない理由は、(恐らくですが){rticles}
で実行するときには裏で bbl
ファイルが自動生成されているものの、bbl
ファイルそれ自体はディレクトリ上には保存されないためだと思います(この辺り、教えてもらったのですがきちんと理解できているか自信がないです。いつかきちんと確かめたいです)。結果的に、ディレクトリに bbl
がない状態で tex
を実行したため文献情報をうまく引用できなかったのでした。
今後
{rticles}
はコンセプト的にとても便利ですが、投稿時には行番号やダブルスペース等の設定が別途必要だったりするので、最初から
参考
奥村 晴彦・黒木 裕介(2017). LaTeX2ε 美文書作成入門(改定第 7 版). 技術評論社
Discussion