
Angenommen, ich habe ein cats.bib
und hats.bib
das 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, latexmk
sodass ich es nicht immer wieder manuell tun muss. Außerdem sollte das Tool, das dies tut, die Bibliografienamen hoffentlich aus der .tex
Datei selbst und nicht a priori erhält.
Antwort1
Sie können so viele Dateien verwenden, .bib
wie 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)
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-escape
kö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, latexmk
da 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)