PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Multibib: nur eine bib-Datei als Grundlage?



jenethan
31-10-2008, 14:24
Hallo Community,

ich habe gelesen, dass man bei dem Paket Multibib statt mehreren bib-Dateien mit Literaturangaben auch nur eine einzige Datei verwenden könne. Die Einträge, die im Literaturverzeichnis dann getrennt voneinander sein sollen, werden dann durch die \citexxx-Befehle definiert.

Ich habe das auf diese im scrrprt auf diese Weise probiert:



\usepackage{multibib}
\newcites{mono}{Monographien und Aufsätze}
\newcites{website}{Internetquellen}
\newcites{doc}{Offizielle Dokumente}
\newcites{speech}{Reden und Stellungnahmen}

...

\bibliographystylemono{jurabib}
\bibliographymono{literaturverzeichnis}
\bibliographystylewebsite{jurabib}
\bibliographywebsite{literaturverzeichnis}
\bibliographystyledoc{jurabib}
\bibliographydoc{literaturverzeichnis}
\bibliographystylespeech{jurabib}
\bibliographyspeech{literaturverzeichnis}


Nur leider funktioniert das nicht. Laut Warnungsmeldung beim Kompilieren vermisst er dann die Dateien mono.bbl, website.bbl, doc.bbl und speech.bbl.

Weiß jemand eine Lösung für dieses Problem? Denn theoretisch soll es ja gehen.

Grüße
JenEthan

edico
31-10-2008, 18:49
Deine compiling-Folge dürfte nicht vollständig sein; versuche


bibtex mono
bibtex website
bibtex doc
bibtex speech


edico

jenethan
31-10-2008, 22:44
Wie kann ich die denn einzeln "compilen", wenn ich da keine eigenen bib-Dateien habe, sondern nur eine? Oder müsste ich dann irgendwas mit den aux-Dateien anstellen?

jotbe
01-11-2008, 07:27
Wie kann ich die denn einzeln "compilen", wenn ich da keine eigenen bib-Dateien habe, sondern nur eine? Oder müsste ich dann irgendwas mit den aux-Dateien anstellen?


Genau das tust Du mit den von edico genannten Kommandos. BibTeX liest die zusätzlich entstandenen .aux Dateien ein und erstellt ebendie vermissten .bbl Dateien aus Deiner Datenbank.

Du solltest auch das Lesen der Dokumentation des multibib-Paketes erwägen.


Jens

jenethan
01-11-2008, 08:15
Versteh ich ehrlich gesagt nicht. So steht da nix in der Anleitung. Nur dieser Befehl, bei dem ich aber nicht weiß, ob er der richtige ist:



#!/bin/bash
for file in *.aux ; do
bibtex ‘basename $file .aux‘
done


Also zumindest ist mir unklar, wie ich das einbinden soll.

jotbe
01-11-2008, 08:24
Versteh ich ehrlich gesagt nicht. So steht da nix in der Anleitung. Nur dieser Befehl, bei dem ich aber nicht weiß, ob er der richtige ist:



#!/bin/bash
for file in *.aux ; do
bibtex ‘basename $file .aux‘
done


Ok - ich lese vor:

Multibib.pdf, Abschnitt 1.2 "BibTEX Processing":

For each bibliography a corresponding auxiliary file .aux is generated, that needs to be compiled through BibTEX.
[...]


Multibib.pdf, Abschnitt 2, "Example":


[...]
To process your document, three runs of LATEX and two runs of BibTEX are
required.

latex mydoc
bibtex mydoc <=====!
bibtex ltex <=====!
latex mydoc
latex mydoc
[...]

Jens

jenethan
01-11-2008, 08:35
Funktioniert nicht. Ich glaub, ich geb auf.

Ich habe die Dokumentation gelesen und werde daraus auch nicht schlau. Die entstehenden .aux-Dateien kann man nicht bibtexen. Eine eigene bib-Datei gibt es für die einzelnen Literaturdatenbanken nicht. Ich bleib jetzt einfach bei mehreren dateien und gut is.

jotbe
01-11-2008, 08:40
Funktioniert nicht. Ich glaub, ich geb auf.

Ich habe die Dokumentation gelesen und werde daraus auch nicht schlau. Die entstehenden .aux-Dateien kann man nicht bibtexen. Eine eigene bib-Datei gibt es für die einzelnen Literaturdatenbanken nicht. Ich bleib jetzt einfach bei mehreren dateien und gut is.


Das musst Du wissen. Aber mit Deinen dürftigen Angaben kann auch keiner was anfangen ...

Was heisst, "kann man nicht bibtexen"? Kommt eine Fehlermeldung? Welche?

Was passiert, wenn Du bspw. "bibtex website" auf der Kommandozeile eingibst?


Jens

jenethan
01-11-2008, 08:43
Da passiert gar nix - das hab ich schon die ganze Zeit probiert. Das ist ja das Ding. Ich weiß ja auch, was ich laut Handbuch machen müsste, aber entweder übersehe ich was oder ich bin echt zu doof.

jotbe
01-11-2008, 08:46
Da passiert gar nix - das hab ich schon die ganze Zeit probiert. Das ist ja das Ding. Ich weiß ja auch, was ich laut Handbuch machen müsste, aber entweder übersehe ich was oder ich bin echt zu doof.

Wenigstens einen \citewebsite{key} hast Du aber in Deinem Dokument?

"Gar nichts" kann ja auch nicht sein, es kommt auf jeden Fall eine Ausgabe von BibTex => hier zeigen.


Jens

jenethan
01-11-2008, 08:56
Also jetzt nochmal, um die dürftigen Angaben zu relativieren.

Ich benutze TexShop. Ich benutze scrreprt. Ich benutze jurabib. Und ich benutze multibib.

Ich habe über den Befehl


\usepackage{multibib}
\newcites{mono}{Monographien und Aufsätze}
\newcites{website}{Internetquellen}
\newcites{doc}{Offizielle Dokumente}
\newcites{speech}{Reden und Stellungnahmen}

vier unterschiedliche Arten von Literaturangaben definiert, um sie im Literaturverzeichnis unter unterschiedlichen Überschriften aufführen zu können.

Normalerweise könnte ich nun (was auch klappt), für jede dieser Literaturangaben eine eigene bib-Datei anlegen und mit diesen Befehlen am Ende des Dokuments aufrufen bzw. ausführen:


\bibliographystylemono{jurabib}
\bibliographymono{mono}
\bibliographystylewebsite{jurabib}
\bibliographywebsite{website}
\bibliographystyledoc{jurabib}
\bibliographydoc{website}
\bibliographystylespeech{jurabib}
\bibliographyspeech{website}


Das ist aber nicht, was ich möchte. Ich möchte, dass alle Literaturangaben nicht in vielen verschiedenen Dateien zu finden sind, sondern nur in einer. Welche Angabe am Ende also einer spezifischen Überschrift im Literaturverzeichnis zugeordnet ist, entscheidet sich einzig und allein durch die \newcite-Befehle in der Präambel des Dokument. Demnach sieht die Erstellung des Literaturverzeichnisses am Ende des Dokuments ja z.B. so aus:


\bibliographystylemono{jurabib}
\bibliographymono{literatur}
\bibliographystylewebsite{jurabib}
\bibliographywebsite{literatur}
\bibliographystyledoc{jurabib}
\bibliographydoc{literatur}
\bibliographystylespeech{jurabib}
\bibliographyspeech{literatur}

Alle zitierte Literatur greift also auf die gleiche Datenbank zurück, nämlich - in diesem Falle - "literatur".

Kompiliere ich nun die Latex-Datei, so bekomme ich vier Warnungen: mono.bbl, website.bbl, doc.bbl und speech.bbl nicht gefunden. Sie entstehen nicht, weil ich ja keine eigenen bib-Dateien dafür habe, die ich kompilieren könnte.

Mhm, weiß nicht, ob das jetzt wirklich deutlich war.

jotbe
01-11-2008, 09:12
Kompiliere ich nun die Latex-Datei, so bekomme ich vier Warnungen: mono.bbl, website.bbl, doc.bbl und speech.bbl nicht gefunden. Sie entstehen nicht, weil ich ja keine eigenen bib-Dateien dafür habe, die ich kompilieren könnte.


1. Es werden keine .bib-Dateien kompiliert! BibTeX liest zunächst .aux-Dateien ein und greift dann auf die .bib-Datei zu, um die zitierten Werke (diese stehen in der .aux-Datei) zu extrahieren und eine .bbl Datei zu erstellen.



2. Es sind modifizerte BibTeX-Aufrufe nötig! (Bei Aufruf aus einem Editor kann das schonmal schiefgehen, weil dort meistens nur die .aux-Datei des Hauptdokumentes an BibTeX übergeben wird)


Es ist völlig richtig, dass es mit einer .bib-Datei funktionieren sollte. Ich denke, das Problem liegt im Aufruf von BibTeX bei Dir.
Du musst ein Terminal aufmachen und Dich in das Verzeichnis begeben, in dem Dein Dokument liegt. Dann der Reihe nach


bibtex mono
bibtex website
bibtex doc
bibtex speech


eingeben.

Voraussetzung ist, dass Du jeweils wenigstens einen \citemono, \citewebsite, \citedoc und \citespeech-Befehl benutzt.

Anschließend noch zweimal LaTeX aufrufen (das geht wieder über den normalen Weg aus TeXShop heraus)



Jens

jenethan
01-11-2008, 09:17
Das mit dem Terminal habe ich probiert - da entstehen bei mir keine bbl-Dateien. Sehr seltsam. Die Pfadangaben müssten eigentlich stimmen, da ich das Verzeichnis per Drag-and-Drop ins Terminalfenster gezogen habe.

Sah bei mir dann so aus:
cd Pfadangabe bibtex mono --> Enter

Resultat: nix. Ich habe auch schon geschaut, ob er bibtex über terminal überhaupt erkennt. Das macht er.

jenethan
01-11-2008, 09:23
Ich glaub, ich hab den Fehler entdeckt. Ich habe bei der Kommandoausführung im Terminal IMMER die Pfadangabe mit angegeben. Dabei muss ich ja nur einmal das directory wechseln und dann nacheinander bibtex mono, bibtex doc, bibtex website, bibtex speech eingeben.

Solche trivialen Fehler - könnt mich ohrfeigen.

@Jotbe: Danke, dass du versucht hast, mir zu helfen.

Kennst du dich zufällig mit terminal-skripten aus, so dass ich ein skript schreiben kann, dass ich einfach doppelklicken kann, um alle befehle nacheinander auszuführen?

jotbe
01-11-2008, 10:08
Kennst du dich zufällig mit terminal-skripten aus, so dass ich ein skript schreiben kann, dass ich einfach doppelklicken kann, um alle befehle nacheinander auszuführen?

TeXShop kann wohl Scripte als sogenannte .engine Dateien einbinden: Hier findest Du eine Anleitung für bibtopic, das sollte 1:1 auch für multibib funktionieren.

http://newsgroups.derkeiler.com/Archive/De/de.comp.text.tex/2006-01/msg02002.html


Im Prinzip wird nichts anderes gemacht, als in einer for-Schleife für alle .aux-Dateien einmal bibtex aufzurufen.



Jens