Wie verwaltet man Bibliografiedateien mit einem VCS, während sie von einem externen Programm verwendet werden?

Wie verwaltet man Bibliografiedateien mit einem VCS, während sie von einem externen Programm verwendet werden?

Ich verwende Mendeley, um Zitate zu organisieren. Es exportiert eine .bibDatei automatisch in einen Ordner auf meinem Mac.

Ich habe auch eine andere .bibDatei, die ich für andere Zitate verwende, die nicht in Mendeley gespeichert sind (meistens Websites). Diese Datei ist in einem Ordner gespeichert, der alle meine LaTeX-Projekte in separaten Ordnern enthält.

Der Grund dafür, dass die .bibDateien getrennt vom LaTeX-Projekt gespeichert werden, besteht darin, dass mehrere Projekte dieselben Zitate verwenden und ich auf diese Weise nur eine .bibDatei pflegen muss (die andere wird von Mendeley gepflegt).

Inspiriert vondie Frage zu VCSIch habe mein aktuelles LaTeX-Projekt mit git zu bitbucket.org hinzugefügt. Es ist ein Verzeichnis, das meine .texDateien und Bilder enthält,nichtdie .bibDatei.

In meinem Buch main.texfüge ich die beiden Bibliographien wie folgt ein:

\bibliography{~/Documents/Dropbox/Mendeley/library,../other_refs}

Mein Ziel besteht nun darin, das Repository in sich geschlossen zu machen, sodass jemand es einfach klonen und das LaTeX-Dokument kompilieren kann.

Da meine .bibDateien nicht im Repo sind, wie kann ich das erreichen?
Symlinks sind keine Optionda Git keinen symbolischen Links mehr folgt.

Antwort1

natbibIch bin schließlich von auf biblatex+ umgestiegen biber. Letzteres unterstützt den Befehl, der einen Link zu einer Datei als Eingabe \addbibresources[location=remote]verwenden kann ..bib

\bibliography{~/Documents/Dropbox/Mendeley/library,../other_refs}

wurde:

\IfFileExists{../thesis_refs.bib}
{
    \addbibresource{~/Documents/Dropbox/Mendeley/library.bib}
    \addbibresource{../thesis_refs.bib}
}
{
    \addbibresource[location=remote,type=file]{https://dl.dropboxusercontent.com/s/library.bib}
    \addbibresource[location=remote,type=file]{https://dl.dropboxusercontent.com/s/thesis_refs.bib}
}
\printbibliography

Nun wird geprüft, ob die lokalen .bibDateien vorhanden sind. Wenn ja, werden sie einfach verwendet, wenn nicht, werden die .bibDateien von Dropbox heruntergeladen, wo ich sie öffentlich zugänglich gemacht habe (die hier angezeigten Links sind nicht die tatsächlichen Links).

Antwort2

Ich habe das Problem gelöst, indem ich die Bib mithilfe einer Make-Datei (die von latexmk aufgerufen wird) in den lokalen Ordner kopiert habe. Auf diese Weise haben Sie auch die richtige Version in Ihrem Repo. Eines der Hauptprobleme, die ich mit Mendely hatte, war, dass sich die Reihenfolge der Einträge jedes Mal ändert, wenn die Datei geschrieben wird. Also habe ich das Makefile erweitert, um es durchzulaufen bibtool. Mein Makefile ist etwas komplexer, aber für Sie läuft es auf Folgendes hinaus:

PROJECT.bib:~/Documents/Dropbox/Mendeley/library
        cat $< | bibtool -o $@ -r ./bib.rsc

Und die bib.rsc sieht so aus

resource {sort_fld.rsc}
sort                     = on
preserve.keys            = on
preserve.key.case        = on

verwandte Informationen