Wie kann ich mehrere nicht-eintragsdisjunkte BIB-Dateien unzusammengeführt verwenden?

Wie kann ich mehrere nicht-eintragsdisjunkte BIB-Dateien unzusammengeführt verwenden?

Angenommen, ich habe ein cats.bibund hats.bibdas ich in einem Artikel über Katzen mit Hüten verwenden möchte. Es gibt bereits einvorhandenes Papier darüber(naja, so ungefähr), was ich in beiden Dateien habe.

Jetzt mache ichnichtdiese Dateien zusammenführen möchten (anders als indiese FrageUndDieses hier). ICHBinbereit, jedem von mir verwendeten Tool zu erlauben, die Möglichkeit von Unterschieden zwischen den Einträgen zu ignorieren und einfach den auszuwählen, der ihm gefällt (nicht einmal konsequent; ich meine, ich bin bereit zu garantieren, dass es sich wirklich um Kopien desselben Eintrags handelt). Was kann ich unter diesen Bedingungen tun, um beide Bibliografien in meinem LaTeX-Dokument verwenden zu können, ohne dass Fehler auftreten?

Wenn Sie vorschlagen, die Dateien vorübergehend zusammenzuführen, nur um das Dokument zusammenzustellen, schlagen Sie bitte etwas vor, das sich beispielsweise in integrieren lässt, latexmksodass ich es nicht immer wieder manuell tun muss. Außerdem sollte das Tool, das dies tut, die Bibliografienamen hoffentlich aus der .texDatei selbst und nicht a priori erhält.

Antwort1

Sie können so viele Dateien verwenden, .bibwie Sie möchten. Doppelte Einträge führen zu einem BibTeX-Fehler, der jedoch keine Konsequenzen hat und nur den ersten gefundenen Eintrag speichert.

\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}

Hier ist die Warnung von 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)

Bildbeschreibung hier eingeben

Antwort2

Bib-Dateien bestehen nur aus reinem Text und es gibt kein Äquivalent dazu, \end{document}Sie können sie also einfach aneinanderreihen (da Sie die Verantwortung für doppelte Einträge übernehmen).

Unter Linux --shell-escapekönnten Sie so etwas tun wie

\documentclass{article}
\immediate\write18 {cat nice_papers*.bib > \jobname.bib}
\addbibresource{\jobname.bib}
\begin{document}

Unter Windows wäre es ähnlich: Statt cat...würden Sie verwenden copy /y nice_papers*.bib \jobname.bib. Dies setzt Biblatex voraus, aber die Änderung für Biblatex ist trivial ( \bibliography{\jobname}).

Dies sollte kompatibel sein, latexmkda keine externen Tools verwendet werden.

Eine Sache, auf die Sie achten sollten, ist, dass Ihre Quell-Bib-Dateien mit einem oder mehreren Zeilenumbrüchen enden, damit Sie am Zusammenführungspunkt nicht mit einer Müllzeile enden (das gilt insbesondere, wenn SieKommentare in Ihrer Bibfile)

verwandte Informationen