如何使用多个不合并的、不相交的 .bib 文件?

如何使用多个不合并的、不相交的 .bib 文件?

假设我有一个cats.biband,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由于它不使用外部工具,因此应该兼容。

需要注意的一点是,你的源 bib 文件应该以一个或多个换行符结尾,这样你就不会在合并点处出现垃圾行(如果你有你的 bibfile 中的评论

相关内容