
.bib
Als ich anfing, Dokumente zu schreiben, entschied ich mich, eine einzelne Datei im Hauptdokumentverzeichnis zu verwenden . Jedes Dokument würde in einem Unterverzeichnis erstellt und endet mit
\bibliography{../biblio}
\end{document}
Mir ist jetzt klar, dass dies möglicherweise nicht die beste Wahl war, da meine .bib
Datei erheblich wächst.
Um nicht gezwungen zu sein, alle meine .tex
Dateien zu reparieren, würde ich gern wissen, ob es möglich ist, andere .bib
Dateien (z. B. eine für Artikel, eine für Bücher, eine für URLs usw.) in die „Hauptdatei“ einzubinden.
Oder wenn Sie andere Vorschläge haben, die mir diese mühsame (aber wahrscheinlich verdiente) Aufgabe ersparen würden.
Antwort1
Die kurze Antwort auf Ihre Frage lautet nein. Wie @daleif in den Kommentaren erwähnt hat, .bib
verfügt das Dateiformat nicht über eine eingabeähnliche Funktion oder ein eingabeähnliches Feld. Das .bib
Dateiformat ist lediglich eine Reihe von Feldkennungen wie @BOOK
und @ARTICLE
sowie die Felder @PREAMBLE
und @STRING
. DieDokumentationfür die eigentliche bibtex
Postfix-Sprache wird (soweit ich weiß) auch keine Eingabefunktion erwähnt. Es scheint, dass dies bibtex
fest codiert ist, nur um die Bib-Daten aus der .aux
Datei abzurufen. Die einzige Möglichkeit für ein Dokument, auf Referenzen in mehreren Dateien zuzugreifen, .bib
besteht also darin, sie als kommagetrennte Liste im Argument von anzugeben \bibliography
.
Die einzige Lösung, die ich für Ihr Problem vorschlagen kann, ist, ein kurzes Skript zu schreiben, das eine Suche und Ersetzung von \bibliography{../biblio}
durch durchführt \bibliography{file1,file2,etc}
. Wie Sie dies tun, hängt von den Tools ab, die Ihnen auf Ihrem Computer zur Verfügung stehen. Auf einem Unix-ähnlichen System könnten Sie beispielsweise wahrscheinlich find
mit kombinieren sed
. Für einen plattformunabhängigeren Ansatz könnte eine Skriptsprache wie Perl verwendet werden.
Wenn Sie das Bearbeiten einer großen Datei in einem Texteditor jedoch einfach als umständlich empfinden .bib
, verwenden Sie möglicherweise lieber einen Referenzmanager wie JabRef.