✒️

LaTeX で文献情報を取得するときにハマったこと

2023/05/21に公開

本記事について

\LaTeX で論文執筆をしていて、文献情報を取り込む際にハマってしまったことと対処法です。

\LaTeX での文献引用

\mathrm{BIBTEX} というツールを \LaTeX と合わせて使用することで、自動的に文献データベースから参考文献リストを作成することができます。詳細は奥村・黒木(2017)をご覧ください。

何が起こったか

R の {rticles} パッケージを使って論文執筆を進めていました。{rticles} は、RMarkdown(Rmd)で論文を執筆して knit することで、指定した各出版社のフォーマットに沿った PDF ファイルを出力できるという便利なパッケージです。詳細はこちら

ただ、論文を投稿する際には \LaTeX のソースファイルも一緒に提出する必要があったため、Rmd を knit したときに生成された tex ファイルを実行し、きちんと PDF ファイルが出力されるかを確認する必要がありました。

今回の問題は、tex ファイルを実行して出力した PDF に引用文献が反映されなかったというものです。

tex ファイルから出力された PDF ファイルは以下です。本文中に文献情報が入っておらず、文献リストもありません。

本当は以下のように出力されてほしいです。

なお、tex ファイルを実行すると、以下のようなエラーメッセージが出てきます。{natbib} は文献データベースから文献情報を引用するための \LaTeX パッケージです。今回は「文献情報が定義されていない」という趣旨の警告でした。{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 ファイルを実行する必要があるというものでした。ファイル名は仮で、ここで重要なのは texclsbbl の各ファイルが作業ディレクトリにあるということです。tex ファイルは文書の中身、cls ファイルは出力 PDF のフォーマット情報、bbl ファイルは文献情報です。texcls は Rmd を knit したときに自動的に生成されますが、bbl は生成されません。そのため、TeX Live\mathrm{BIBTEX} を実行して bbl ファイルを生成しました。

manuscript.tex
interact.cls
manuscript.bbl

エラーの要因はシンプルで、私が作業したディレクトリには上記のうち bbl ファイルが存在していなかったのです。

{rticles} ではうまくいくのに tex ファイルを直接実行するとうまくいかない理由は、(恐らくですが){rticles} で実行するときには裏で \mathrm{BIBTEX} が走り bbl ファイルが自動生成されているものの、bbl ファイルそれ自体はディレクトリ上には保存されないためだと思います(この辺り、教えてもらったのですがきちんと理解できているか自信がないです。いつかきちんと確かめたいです)。結果的に、ディレクトリに bbl がない状態で tex を実行したため文献情報をうまく引用できなかったのでした。

今後

\LaTeX は普段使う頻度が少なく勉強不足なのですが、Git 管理や作業の軽さといった観点から、もっと積極的に使っていきたいです。{rticles} はコンセプト的にとても便利ですが、投稿時には行番号やダブルスペース等の設定が別途必要だったりするので、最初から \LaTeX で書けるならそれが良いという気もします。

参考

奥村 晴彦・黒木 裕介(2017). LaTeX2ε 美文書作成入門(改定第 7 版). 技術評論社

GitHubで編集を提案

Discussion