PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Jurabib macht schwere Probleme bei \nocite{*}



felix000
22-02-2007, 13:32
Hallo!

Ich schreibe meine Diss in einer WinXP/TeXnicCenter/MikTex-Umgebung und habe seit einigen Tagen (plötzlich aufgetaucht, ohne wissentlich was verändert zu haben) ein Problem, daß ich mittlerweile auf folgende Konfiguration eingrenzen konnte:

Ich verwende Jurabib 0.6 für Zitation und Litverzeichnis, das funktioniert auch alles bestens, seit einigen Tagen aber kompliliert das Dokument nicht mehr richtig und zwar NUR!, wenn ich \nocite{*} gesetzt habe, um alle Einträge der bib-Datei anzuzeigen. Ohne nocite zitiert er anstandlos die im Text verwendeten Stellen. Ich hab nach vielem Herumversuchen keinen Plan mehr, was ich weiter machen soll und bitte um eure Hilfe.

Hier Auszüge die entsprechenden Auszüge meines Doks:

\documentclass[12pt,german,english,bibtotoc,liststotoc,a4paper,op enbib]{scrreprt}
\setkomafont{sectioning}{\normalfont\normalcolor\b fseries}
\setkomafont{pagehead}{\footnotesize}
\setlength{\parindent}{0cm}

\usepackage[automark]{scrpage2}
\usepackage[latin1]{inputenc}
\usepackage[english,ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{jurabib}


%-LITERATURVERZEICHNIS---

\setstretch{1}
\nocite{*}
\bibliographystyle{jurabib}
\bibliography{litverz}


Und hier die produzierten Fehlermeldungen bei Verwendung von \nocite{*}

! Use of \jb@lbibitem doesn't match its definition.
\DeclareInputText #1#2->\def \reserved@a ##
1 ${}\def \reserved@b {#2}\ifcat ...
l.1982 ...}{} \apyformat {2004} } {\bibhowcited}

If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

)
! Incomplete \iffalse; all text was ignored after line 1982.
<inserted text>
\fi
l.166 ...liography{litverz}

The file ended while I was skipping conditional text.
This kind of error happens when you say `\if...' and forget
the matching `\fi'. I've inserted a `\fi'; this might work.

)
! Incomplete \iffalse; all text was ignored after line 1982.
<inserted text>
\fi
<*> ...DISS-WORKING-ROOM/MainDiss.tex

The file ended while I was skipping conditional text.
This kind of error happens when you say `\if...' and forget
the matching `\fi'. I've inserted a `\fi'; this might work.

! Emergency stop.
<*> ...DISS-WORKING-ROOM/MainDiss.tex

*** (job aborted, no legal \end found)



Wie gesagt, der Fehler tritt nur bei gesetztem \nocite{*} im Hauptdokment auf. Kennt jemand dieses Problem? Wo kann ich ansetzen?

Schon mal vielen Dank & schöne Grüße,
FA

sofa-surfer
22-02-2007, 13:46
Hallo,

nur eine Nachfrage: Hast du der bib-Datei irgendeinen Eintrag hinzugefügt, den jurabib vielleicht nicht mag (der nicht im normalen Text zitiert ist, bei \nocite aber mit ins Spiel kommt)?

Matthias

charder
22-02-2007, 14:13
Überprüf mal alle Bibeinträge bei denen " vorkommen. Der Fehler sieht stark nach solch einer Unverträglichkeit aus.

felix000
22-02-2007, 14:24
Hallo,

ich hab mir das gerade angeschaut, auf die Idee wäre ich gar nicht gekommen, daß es ja auch was an der .bib-Datei haben könnte. Vielleicht auch deshalb, weil sie im JabRef keine Fehler in der Struktur mehr angezeigt hat.

Wie auch immer, ich habe jetzt den besagten Eintrag der .bib-Datei, der in Zeile 1981 und (2004), wie ja in der Fehlermeldung angegeben, rausgenommen, obwohl nicht auffälliges zu sehen war. Danach einen neuen Durchlauf versucht, es hat sich aber nichts geändert, das gleiche Problem, an den Einträgen der .bib-Datei dürfte es wohl nicht liegen. Zudem funktioniert die selbe Datei mit einem auf chicago.sty basierenden Dokument einwandfrei, nur eben nicht mit jurabib und nocite zusammen.

Eines noch, das habe ich vorhin vergessen: Der erste Kompilierungslauf (nachdem ich alles .aux usw. Dateien entfernt habe) funktioniert ohne Fehlermeldung, allerdings ohne Erstellung eines Litverzeichnis, erst ab dem zweiten Durchlauf, wo er dann bibtex fährt, kommt es zum besagten Fehler, das ändert sich auch durch weitere Durchläufe nicht mehr.

Saublöd jedenfalls.

lG,
Felix

felix000
22-02-2007, 14:39
Ok, jetzt habe ich das ganze wohl noch mehr eingegrenzt, indem ich einen Minimal .bib-Datei mit drei harmlosen Einträgen generiert habe und diese laufen ließ - ohne Probleme mit jurabib und nocite. Es liegt offenbar tatsächlich daran, daß ihm gewisse Einträge der bib-Datei nicht schmecken.

Noch habe ich nicht herausgefunden, welche das sind, wird auch etwas mühsam, bei 800 Einträgen. Dennoch, das hilft mir schon mal weiter, danke für die Fährte.

Falls jemand noch eine Idee hat, was jurabib an bibtex-syntax nicht verarbeiten kann, wär's toll.

Viele Grüße,
FA

sofa-surfer
22-02-2007, 14:43
Ich bezweifle mal, dass sich die Zeilenangabe in deiner Fehlermeldung auf die bib-Datei bezieht. Wissen tu ich es auch nicht, aber du kannst es ja mal in der bbl-Datei versuchen.

Matthias

felix000
22-02-2007, 15:27
So, hallo nochmal,

jetzt scheint's, ich hab den Verursacher gefunden, trotzdem bleibt es mir etwas mysteriös:

Es sind solche Einträge wie dieser hier:

title = {Coopetition in buyer-supplier relationships – A conceptual investigation of competition and cooperation in the construction industry}

und zwar der zweite "-" der über Funktionieren oder Scheitern entscheidet. Läßt man es so, bricht die Kompilation ab, nimmt man ihn raus, funktioniert es. Schreibt man ihn anschließend MANUELL (im einfachen Windows editor.exe) wieder sein, funktioniert es auch, kopiert man den Originaleintrag aus der Jabref-Datei .bib rein, funktioniert es wieder nicht.

Das heißt es gibt hier offenbar unterschiedliche Kodierungen, im Jabref ist "-" ein andere Zeichen als das "-" im editor.exe.

Was kann ich da machen (außer sie manuell "umzuschreiben"). Kann das auch an der Verwendung der Kodierungspackages in meiner Präambel liegen?

\usepackage[latin1]{inputenc}
\usepackage[english,ngerman]{babel}
\usepackage[T1]{fontenc}

Im Grunde ist das Problem also gelöst, die Ursache ist mir allerdings noch nicht klar. Weiß da wer was?

lG,
Felix

JanBremen
22-02-2007, 17:35
Probiere anstelle von latin1 doch mal utf8

felix000
22-02-2007, 20:25
Einmal noch hallo,

jetzt ist es behoben, danke allen für die Hinweise. Tatsächlich war der Bibfile unter jabref in UTF8-Codierung gespeichert, man kann das dort einstellen, ist wohl default auch so, da ich seit der Installation dort nichts eingestellt habe.

Wenn man nun in meinem Fall, im jabref bei Eigenschaften die Codierung von UTF8 auf ASCII ändert, dann hat auch bibtex und jurabib keine Probleme mehr damit, auch den kritischen "-" schlucken sie dann problemlos. Komisch nur, daß ich mit chicago.sty bisher keine Troubles damit hatte, der verträgt wohl UTF besser.

Also ASCII-Codierung für bib-files ist für mich nun die Erkenntnis daraus (wahrscheinlich eh ein alter hut für profis ...)

Schönen Abend,
FA