PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : zentrale .bib Datei einbinden



tempestas
01-07-2009, 15:51
Hallo,

ich möchte gern in mein Großprojekt mehrere .bib Dateien einbinden. Da diese aber immer wieder aktualisiert werden, möchte ich diese Dateien gern in meinem Literaturordner belassen und nicht ständig in den bib Ordner meines Latexprojektes kopieren.

Ich hab versucht, einen Pfad anzugeben in \bibliography{home/blabla/bib/Literatur}. Funktioniert leider nicht. Dann habe ich eine Umgebungsvariable erstellt (BIBINPUTS), so wie ich es irgendwo gegoogelt hab - irgendwie wird das aber in den bib-Pfad nicht mit eingebunden.

Und jetzt bin ich mit meinen Künsten am Ende... :confused:

Kann mir evt. jemand weiterhelfen?

Ach ja: ich benutze texmaker unter MacOSX (Leopard 10.5.7)



Vielen Dank im Voraus,
tempestas

mechanicus
01-07-2009, 18:41
Hallo,

du kannst in LaTex auch relative Pfade nutzen.

Gruß
Marco

tempestas
03-07-2009, 13:19
Hallo Marco,

danke für Deien Antwort. Aber als Nicht-EDV-experte muss ich jetzt mal ganz blöd fragen: was sind relative Pfade? Wie sieht sowas aus? :o

Danke im Voraus!


Viele Grüße,
tempestas

u_fischer
03-07-2009, 13:29
Finde (d)einen lokalen texmf-Baum (i.A. heißen die irgendwie texmf-local oder so.) Verschiebe deine bib-Datei nach
<lokaler texmf>/bibtex/bib/meinebibdateien/

Rufe texhash auf. Dann sollte die bib von allen gefunden werden können.



Ulrike Fischer

Xenara
03-07-2009, 13:41
Ich hab versucht, einen Pfad anzugeben in \bibliography{home/blabla/bib/Literatur}. Funktioniert leider nicht.
Inwiefern funktioniert es nicht? Gibt es Fehlermeldungen? Hast du irgendwo in dem Pfad ein Leezeichen, Umlaut o.ä.?

Zur Zeit arbeite ich zwar unter Windows und nur mit einer .bib-Datei, die liegt aber auch in einem eigenen Ordner zusammen mit den PDFs der Artikel (alles verwaltet mit JabRef), und das Einbinden erfolgt dann in jedem Dokument (egal wo es liegt) so:


\bibliographystyle{abstract}
\bibliography{H:/Literatur/Literatur-Datei}


Das geht imho auch auf dem Mac.

tempestas
03-07-2009, 15:43
Hallo zusammen,

danke für die Tipps!
Ich möchte ungern die Datei in den texbaum verschieben. Die Version mit der Pfadangabe wäre mir lieber.

Ich hab das so versucht (vielleicht habe ich das aber auch falsch geschrieben?):



\bibliographystyle{jneurosci}
\bibliography{~/Uni/Doktorarbeit/Literatur/ErsteBibDatei,ZweiteBibDatei,DritteBibDatei}


wobei ich an die Dateinamen NICHT die Endung .bib angefügt hab (hab ich irgendwo gelesen, dass man das nicht machen soll).
Hm, wo habe ich einen Fehler gemacht?
Kann es sein, dass ich beim Mac keinen slash, sondern einen backslash verwenden muss? Jedenfalls kenne ich dieses Problem von MATLAB.


Vielen Dank für die Hilfe!!!

Xenara
03-07-2009, 16:32
Hast du mal Schritt für Schritt getestet?
Also erstens funktioniert es denn mal mit nur einer Datei?


\bibliographystyle{jneurosci}
\bibliography{~/Uni/Doktorarbeit/Literatur/ErsteBibDatei}

Wenn ja, dann probiers mit mehreren.

Hast du Backslash einfach mal ausprobiert? Hab hier leider grad keinen Mac zum Testen.

Wenns nicht klappt, fang mal mit einer ganz einfachen Pfadangabe an, zum Testen kanns ja auch ein includegraphics mit Bild in anderem Ordner sein.
Erstmal Bild im gleichen Verzeichnis aufrufen, dann ein Verzeichnis tiefer, um rauszufinden, ob Slash oder Backslash, dann mal versuchen, wie man an den absoluten Pfad kommt.

tempestas
07-07-2009, 01:20
Hallo Xenara,

danke für Deinen Tipp.
Ich hab jetzt mehrere Möglichkeiten probiert: backslash fällt aus, da ja dann angenommen wird, es handele sich um einen Befehl.
Dann habe ich versucht, Verknüpfungen der zentralen .bib Dateien in den bib Ordner des Großprojektes zu legen (d.h. das mit den einfachen Pfaden funktioniert - sowohl mit Bildern, der Präambel und .bib Dateien in einem Unterordner des Verzeichnisses, in dem die Haupt-TeXdatei liegt). Ebenfalls Fehlanzeige. (Warum eigentlich?) :confused:
Hm, wo hab ich einen Fehler bei der Pfadangabe gemacht? Denn etwas anderes könnte ich mir nicht erklären.

Viele Grüße,
tempestas

rais
07-07-2009, 02:10
Moin moin,


Dann habe ich versucht, Verknüpfungen der zentralen .bib Dateien in den bib Ordner des Großprojektes zu legen (d.h. das mit den einfachen Pfaden funktioniert - sowohl mit Bildern, der Präambel und .bib Dateien in einem Unterordner des Verzeichnisses, in dem die Haupt-TeXdatei liegt). Ebenfalls Fehlanzeige. (Warum eigentlich?) :confused:
was genau funktioniert denn nu und was nicht?


Hm, wo hab ich einen Fehler bei der Pfadangabe gemacht? Denn etwas anderes könnte ich mir nicht erklären.

Hast Du Dir schon mal überlegt, daß `~' von Deinem Betriebssystem zwar als `$HOME' interpretiert wird, es aber für LaTeX eigentlich ein geschütztes Leerzeichen ist?

Versuch es erstmal (wieder) mit einer bib-Datei in der Art


/home/tempestas/Uni/etc.

d. h., da Du MacOSX nutzt -- ist das nicht auch ein Unix-Abkömmling? -- könntest Du vermutlich auch einen symbolischen Link in $TEXMFHOME/bibtex/bib oder in $TEXMFLOCAL/bibtex/bib auf den Ordner anlegen, in dem Deine .bib-Dateien schlummern und auf die Pfadangabe bei den .bib-Dateien bei jetzigen/zukünftigen Projekten verzichten, so Du texhash nach dem Verlinken aufrufst, vgl. Ulrikes Beitrag -- dann verschiebst Du sie nicht, Du verlinkst sie (bzw. den Ordner dahin) bloß ...

MfG

TheLawyer
07-07-2009, 10:34
Ich hatte ein ähnliches Problem. Ich arbeite an drei verschiedenen Rechnern an mehreren Projekten, die aber im Prinzip die gleiche Literaturliste haben. Jetzt verwende ich folgende Verzeichnisstruktur auf allen Systemen:

c:/irgendwas/malsomalso (Das ist auf jedem System anders)
-->LaTeX
----> Biblio
------> Bib.bib
----> DA
------> DA.tex
----> Talk
------> talk.tex

Mit


\bibliography{../Biblio/Bib.bib}

kann ich sowohl in DA.tex als auch in talk.tex auf die Literaturliste zugreifen. Bis jetzt hatte ich damit noch keine Probleme. Zur Zeit kann ich das aber weder auf Linux noch auf MacOS testen.

tempestas
13-07-2009, 22:13
Hallo,

leider konnte ich das bibfile Problem immer noch nicht lösen :o


\bibliographystyle{jneurosci}
\bibliography{~/Uni/Doktorarbeit/Literatur/ErsteBibDatei}

oder wahlweise auch


\bibliographystyle{jneurosci}
\bibliography{home/Uni/Doktorarbeit/Literatur/ErsteBibDatei}

funktioniert nicht. Leider finde ich auch nirgendswo einen Anhaltspunkt, warum die Pfadangabe nicht stimmen sollte.

Es funktioniert nur eine Möglichkeit: "zu Fuß" aus dem Ordner mit dem .tex Dokument einen Ordner hoch und dann in untergeordnete Ordner gehen. Also:


\bibliographystyle{jneurosci}
\bibliography{../Literatur/ErsteBibDatei}

Das ist zwar nicht so elegant, wie die gesamte Pfadangabe, aber damit könnte ich leben (obwohl ich das Problem schon gern lösen würde :) )

Und jetzt habe ich ein weiteres Problem:
in meinem Dokument können keine zwei oder mehr .bib Dateien eingebunden werden.


\bibliographystyle{jneurosci}
\bibliography{../Literatur/ErsteBibDatei,ZweiteBibDatei}


Komischerweise geht es aber in einem Minimalbeispiel. Und zwar sowohl mit den originalen .bib Dateien als auch mit extra erstellten Dateien.
Hat jemand dieses Problem schon mal gehabt und kann mir vielleicht einen Tipp geben, wo ich da nach dem Fehler suchen kann? In der entsprechenden .blg file steht:


I couldn't open database file ZweiteBibDatei.bib


Vielen Dank im Voraus!


Viele Grüße,
tempestas

Xenara
14-07-2009, 07:46
Zur Pfadangabe:
Du schreibst, du hättest den Pfad mit


\bibliographystyle{jneurosci}
\bibliography{home/Uni/Doktorarbeit/Literatur/ErsteBibDatei}

angegeben.
Hast du es schonmal mit dem Slash vor home probiert, wie es Rais in Post #9 vorgeschlagen hat? Damit sollte es eigentlich als absolute Pfadangabe unter Unix gelten (siehe auch hier (http://www-doc.informatik.uni-tuebingen.de/user/html/user_2.html), Abschnitt 2.1.10: "Jeder absolute Pfad beginnt mit dem /-Zeichen, das für das root-Verzeichnis steht.")
Damit müsste so heissen:


\bibliographystyle{jneurosci}
\bibliography{/home/Uni/Doktorarbeit/Literatur/ErsteBibDatei}

Das muss doch irgendwie noch hinzukriegen sein ;)


Bei dem Problem, dass die .bib nicht gefunden wird, probier mal, ob es klappt, wenn du explizit den Pfad auch für die zweite Bib angibst (wenn sie denn im gleichen Ordner wie die erste liegt).
Also


\bibliographystyle{jneurosci}
\bibliography{../Literatur/ErsteBibDatei,../Literatur/ZweiteBibDatei}

tempestas
16-07-2009, 00:09
Hallo Xenara,

danke für Deine unermüdlichen Tipps! :)


Hast du es schonmal mit dem Slash vor home probiert, wie es Rais in Post #9 vorgeschlagen hat? Damit sollte es eigentlich als absolute Pfadangabe unter Unix gelten

Ja, das hatte ich schon ganz am Anfang probiert: funktioniert leider nicht. Hab auch wahlweise "home", "HOME", "Home" geschrieben. Leider ebenfalls erfolglos. Mir ist immer noch schleierhaft, warum das nicht funktioniert. Ansonsten habe ich nämlich nie Probleme mit Unixbefehlen. :confused:

Dein zweiter Tipp mit der expliziten Pfadangabe für jede einzelne .bib Datei funktioniert tatsächlich!


\bibliographystyle{jneurosci}
\bibliography{../Literatur/ErsteBibDatei,../Literatur/ZweiteBibDatei}

Darauf wär ich nie gekommen! Danke! Aber logisch ist das doch auch irgendwie nicht wirklich, oder? Mal davon abgesehen, dass das auch nicht besonders elegant ist, weil ich eigentlich noch ein paar mehr Literaturdateien einbinden will. Hm,... nun ist guter Rat teuer.

Kann es vielleicht sein, dass sich irgendwelche usepackages nicht vertragen? Ich würde jetzt mal (sehr ungern) auf die Suche nach der Nadel im Heuhaufen gehen und nacheinander alle usepackages entfernen und immer wieder kompilieren (allerdings hoffe ich sehr, dass mir davon abgeraten wird - denn ich kann mir bessere nächtliche Beschäftigungen vorstellen... ;) )

Viele Grüße,
tempestas

rais
16-07-2009, 01:16
Moin moin,


Ja, das hatte ich schon ganz am Anfang probiert: funktioniert leider nicht. Hab auch wahlweise "home", "HOME", "Home" geschrieben. Leider ebenfalls erfolglos. Mir ist immer noch schleierhaft, warum das nicht funktioniert. Ansonsten habe ich nämlich nie Probleme mit Unixbefehlen. :confused:

ich seh hier keine Unixbefehle, lediglich Pfadangaben ... hast Du Dich schonmal von der Richtigkeit Deines Pfads überzeugt?


ls /home/Uni/Doktorarbeit/Literatur

sollte eigentlich eine Liste Deiner .bib-Dateien ergeben ... wenn nicht, kannst Du das vllt mit


pwd

bzw.


echo $PWD

aus Deinem Arbeitsverzeichnis heraus (in Verbindung mit Deiner relativen Pfadangabe ../Literatur/*) vergleichen.

Obwohl, einen direkten Vorteil absoluter Pfad gegenüber relativer Pfad seh ich hier nicht für Dich, dann schon eher via $BIBINPUTS

BTW: wieso soll Xenaras zweiter Tip unlogisch sein? Mit


\bibliography{../irgendwo/foo,bar}
gibst Du ``../irgendwo/foo.bib'' und ``bar.bib'' an, das heißt ja nicht automagisch, daß ``bar.bib'' sich im selben Ordner wie ``foo.bib'' befinden müsse ...

MfG

Xenara
16-07-2009, 07:48
Hi tempestas,

zu deiner Pfadangabe, probier mal Rais Tipps aus, ich bin gespannt, was dabei rauskommt.

Zum Einwand mit der Literatur, es sei unübersichtlich, Rais hat dir ja schon die Erklärung geliefert. Um den Überblick zu behalten, könntest du es ja so schreiben:



\bibliographystyle{jneurosci}
\bibliography{% Ab hier beginnen die Literaturdateien.
../Literatur/ErsteBibDatei,% Erste Literaturdatei
../Literatur/ZweiteBibDatei,% Zweiter Literaturdatei
DritteBibDatei,% Dritte Literaturdatei, liegt diesmal im gleichen Ordner wie das .tex-File
/blabla/VierteBibDatei,% Und noch ne Literaturdatei
}% Ende Literaturdateien


Die Kommentare brauchst du natürlich nicht dazuzuschreiben, aber die Kommentarzeichen (%) sollten auf jeden Fall verwendet werden, damit hier keine Fehlerquellen entstehen können.

tempestas
16-07-2009, 09:47
Guten Morgen,



... hast Du Dich schonmal von der Richtigkeit Deines Pfads überzeugt?


Ja, das habe ich zuallererst gemacht. Das stimmt alles. Ich hab das dann aus dem Terminal in mein .tex Dokument kopiert.
Und das mit dem BIBINPUTS hab ich nicht hingekriegt: als ich das versucht hatte, waren danach alle anderen Pfadangaben zu den ausführbaren Dateien gelöscht und nur noch der Pfad zu meinen Literaturdateien drin. Leider bin ich nicht so bewandert mit Linux und Unix :(

Hm, ich bin jetzt erstmal ein paar Tage nicht da und kann mich leider erst am Montag wieder damit beschäftigen...


Viele Grüße und vielen Dank für die Hilfe!

tempestas

rais
17-07-2009, 09:10
Moin moin,


Und das mit dem BIBINPUTS hab ich nicht hingekriegt: als ich das versucht hatte, waren danach alle anderen Pfadangaben zu den ausführbaren Dateien gelöscht und nur noch der Pfad zu meinen Literaturdateien drin. Leider bin ich nicht so bewandert mit Linux und Unix :(

ich weiß ja nicht, was Du da versucht hast, aber ich seh beim besten Willen nicht, wie ein Setzen von $BIBINPUTS die $PATH-Variable auch nur beeinflussen kann ...
Aber dann brauchst Du $BIBINPUTS nicht zu verändern: mach mal ein Terminal auf


kpsexpand '$BIBINPUTS'

das zeigt Dir, in welchen Pfaden bei Dir nach *.bib-Dateien gesucht wird, bei mir sähe das etwa so aus:


.:{/home/rais/.texlive2008/texmf-config,/home/rais/.texlive2008/texmf-var,/home/rais/texmf,!!/usr/local/texlive/2008/texmf-config,!!/usr/local/texlive/2008/texmf-var,!!/usr/local/texlive/2008/texmf,!!/usr/local/texlive/2008/../texmf-local,!!/usr/local/texlive/2008/texmf-dist}/bibtex/bib//

davon suchst Du Dir einen Pfad aus, der entweder ``home'' oder ``texmf-local'' enthält (abhängig davon, ob Du auch Anderen auf Deinem System Zugriff auf Deine .bib-Dateien gewähren willst oder nicht), ich nehm hier mal den blau hervorgehobenen Pfad, den Du an Dein System entsprechend anpassen mußt:


cd /home/rais/texmf
cd bibtex
cd bib

sollte `cd' eine Meldung in der Art ``No such file or directory'' werfen, dann musst Du das entsprechende Verzeichnis erstmal anlegen, `mkdir' und eine Wiederholung des entsprechenden `cd' kriegste ja wohl hin.;-)
Nun brauchst Du bloß noch einen symbolischen Link anzulegen


ln -s /Pfad/zu/Deinen/bib/Dateien tempestas-bib

und texhash aufzurufen


texhash

Nun solltest Du die Pfadangaben bei \bibliography{...} komplett weglassen können.

MfG