
帽子をかぶった猫に関する記事で使用したいとしますcats.bib
。すでにhats.bib
それに関する既存の論文(まあ、ある意味)、両方のファイルに含まれています。
今私がやりますないこれらのファイルを結合したい(この質問そしてこれです)。 私午前私が使用するツールが、エントリ間の違いの可能性を無視して、好きな方を選択することを許可します (一貫しているわけではありません。つまり、実際には同じエントリのコピーであることを保証できます)。このような状況で、エラーなしで LaTeX ドキュメントで両方の参考文献を使用できるようにするにはどうすればよいでしょうか。
ドキュメントをコンパイルするためだけに一時的にマージすることを提案する場合は、たとえば に統合する何かを提案してください。そうすれば、latexmk
手動で繰り返し行う必要がなくなり、また、これを行うツールが何であれ、参考文献名を.tex
事前ではなくファイル自体から取得するようになることを期待します。
答え1
.bib
必要な数のファイルを使用できます。重複したエントリがあると BibTeX エラーが発生しますが、影響はなく、最初に見つかったエントリのみが保持されます。
\begin{filecontents*}{\jobname-cats.bib}
@article{unique-cats,
author={A. Uthor},
title={Title},
journal={Journal},
year=2016,
}
@article{duplicate,
author={W. Riter},
title={Title},
journal={Journal},
year=2016,
}
\end{filecontents*}
\begin{filecontents*}{\jobname-hats.bib}
@article{unique-hats,
author={P. Laywright},
title={Title},
journal={Journal},
year=2016,
}
@article{duplicate,
author={W. Riter},
title={Title},
journal={Journal},
year=2016,
}
\end{filecontents*}
\documentclass{article}
\begin{document}
\title{Cats in hats}
\author{Einpoklum}
\maketitle
We want to cite \cite{unique-cats}, but also \cite{unique-hats}.
There is a duplicate \cite{duplicate}.
\bibliographystyle{plain}
\bibliography{\jobname-cats,\jobname-hats}
\end{document}
BibTeX による警告は次のとおりです。
This is BibTeX, Version 0.99d (TeX Live 2016)
The top-level auxiliary file: einmulti.aux
The style file: plain.bst
Database file #1: einmulti-cats.bib
Database file #2: einmulti-hats.bib
Repeated entry---line 7 of file einmulti-hats.bib
: @article{duplicate
: ,
I'm skipping whatever remains of this entry
(There was 1 error message)
答え2
Bib ファイルは単なるプレーンテキストであり、同等のものはないので、\end{document}
それらを連結するだけです (重複エントリの責任を受け入れる必要があります)。
Linuxでは--shell-escape
次のようにすることができます
\documentclass{article}
\immediate\write18 {cat nice_papers*.bib > \jobname.bib}
\addbibresource{\jobname.bib}
\begin{document}
Windows でも同様です: の代わりにcat...
を使用しますcopy /y nice_papers*.bib \jobname.bib
。これは biblatex を想定していますが、bibtex の場合の変更は簡単です ( \bibliography{\jobname}
)。
latexmk
外部ツールを使用しないため、互換性があるはずです。
注意すべきことの1つは、ソースbibファイルは1つ以上の改行で終わる必要があることです。そうしないと、マージポイントでゴミ行が発生してしまいます(これは、bibfile 内のコメント)