PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eine Million Fehler ;-)



Ono Sendai
05-07-2007, 00:33
Hallo, bin noch Neuling und habe das Problem, dass ich mir dieverse Fehlermeldungen nicht erklären kann.

Ich habe ein Dokument angelegt, dass aus mehreren Dateien besteht, meine Abbildungen werden angezeigt, aber es tauchen dazu Fehlermedlungen im Log auf, das Literaturverzeichnis funzt garnicht, dafür erhalte ich an den Zitatstellen einen Verweis auf EG04, den ich nirgends definiert habe, der aber scheinbar automatisch in die bbl-Datei geschrieben wird.

Hier mal alles im Detail:

Hauptdatei:


\includeonly{kapitel/mvc}
\makeindex

\input{header}

\begin{document}



\include{kapitel/titelseite}

\include{kapitel/mvc}
\appendix
\printindex
\bibliographystyle{geralpha}
\bibliography{literatur}

\end{document}


Datei kapitel/mvc.tex:

\section{MVC-Architekturmuster}
blablabla
Abbildung \ref{fig:mvc} zeigt den grundsätzlichen Aufbau des MVC-Patterns

\begin{figure}[hb]
\centering
\includegraphics{images/mvc.jpg}
\caption{MVC-Pattern}
\label{fig:mvc}
\end{figure}

Eine enge Kopplungen wie in \ref{fig:observer} bla bla bla

\begin{figure}[ht]
\centering
\includegraphics[width=9cm ]{images/observer.jpg}
\caption{Beobachter mit enger Kopplung}
\label{fig:observer}
\end{figure}

blablabla
Dies stellt die Motivation für das \emph{Beobachter-Muster} dar \cite{GAMMA}.



literatut.bib:

@INBOOK{GAMMA,
author={"Erich Gamma", "Richard Helm Ralph Johnson", "John Vlissides"},
title={"Entwurfsmuster"},
publisher={"Addison-Wesley"},
isbn={3-8273-2199-9},
year={2004},
language={"Deutsch"}
}

Beim ersten Kompilerlauf kommen Fehlermeldungen zu:

Reference fig:mvc on page 1 undefined
Reference fig:observer on page 2 undefined
Citation GAMMA on page 2 undefined
No file Diplomarbeit.ind
No file Diplomarbeit.ddl

Dann lasse ich Bibtex laufen:

Warning--empty chapter and pages in GAMMA
(Damit kann ich erstmal leben)

Zweiter Kompilerlauf (12 Fehler, 4 Warnungen):
Warning: Citation GAMMA on page 9 undefined
! Missing \endcsname inserted (damit kann ich garnix anfangen)
! Extra \endcsname (damit kann ich garnix anfangen)
...
und jede Menge weitere Fehler, die sich scheinbar auf die automatisch generierte Datei Diplomarbeit.bbl beziehen:


\begin{thebibliography}{EG04}

\selectlanguage{\"Deutsch"}
\bibitem[EG04]{GAMMA}
{\sc "Erich~Gamma", "Richard Helm Ralph~Johnson", "John~Vlissides"}: {\em
"Entwurfsmuster"}.
\newblock "Addison-Wesley", 2004.

\end{thebibliography}

Ausserdem noch drei Warnings:
Empty 'thebibliography' environment on input line 9
There were undefined references
Label(s) may have changed

Beim dritten Kompilerlauf bleiben alle Fehler und die erste Warning erhalten.
Was kann ich nun machen damit das Funktioniert? Was bedeuten die Fehlermeldungen?
Für mich siehts so aus als ob TexNic diese bbl Datei versaubeutelt.
Ich benutze TexNic und Miktex, in der aktuellen Version.

Bin für jeden Tip dankbar.

bobmalaria
05-07-2007, 00:58
hi,

also


\includeonly{kapitel/mvc}
\makeindex% ein kapitel vor \begin{document} wie soll dass gehen?

\input{header}

\begin{document}


dein aufruf für bibtex muss so aussehen

latex
bibtex
latex
latex

für makeindex musst du noch weitere schritte durchführenx (siehe doku oder forensuche)

versuche das mal

gruß

ps: leider kann ich dein problem nicht nachvollziehen wenn ich kein minimalbeispiel sehe -->boardregeln

sofa-surfer
05-07-2007, 07:17
Mir ist ja die bib-Datei noch etwas suspekt.



literatut.bib:

@INBOOK{GAMMA,
author={"Erich Gamma", "Richard Helm Ralph Johnson", "John Vlissides"},
title={"Entwurfsmuster"},
publisher={"Addison-Wesley"},
isbn={3-8273-2199-9},
year={2004},
language={"Deutsch"}
}


Versuchs mal eher damit:

@INBOOK{GAMMA,
author={Erich Gamma and Richard Helm Ralph Johnson and John Vlissides},
title={Entwurfsmuster},
publisher={Addison-Wesley},
isbn={3-8273-2199-9},
year={2004},
language={german}
}

Wobei ich mir mit dem language-Feld nicht sicher bin, da ich das noch nie verwendet habe.

Matthias

Ono Sendai
05-07-2007, 19:36
Hallo und Danke für die schnellen Antworten.

Zunächst mal Sorry, ich dachte durch das vollständige Posting der Dateien die Anforderungen an das Minimalbeispiel zu erfüllen, da dann ja mit Copy&Paste mein Problem nachvollzogen werden kann.

Zu den Tips von bobmalaria:
\includeonly{kapitel/mvc} muss in der Präamebl stehen, sonst gibts Fehlermeldungen:
LaTex Error: Can be used only in preamble!
Hab ich jetzt mal entfernt, solange die Arbeit noch wenige Kapitel umfasst, machts nix sie komplett zu erstellen.

\makeindex ist momentan garnicht das Problem, mir gehts mehr um das Literaturverzeichnis


dein aufruf für bibtex muss so aussehen

latex
bibtex
latex
latex
Schon klar, daher hab ich auch von erstem, zweiten und dritten Compilerlauf gesprochen ;-)

Tip von sofa-surfer:
Ok, das mit den Anführungszeichen stimmt: Ohne gehts besser. Bibtex meckert zwar, dass zu viele Kommas im Autor vorkommen, aber das lässt sich nicht ändern.

Immerhin wird jetzt das Verzeichnis am Ende richtig erstell, und siehe da:
Jetzt weiss ich auch woher das verhasste EG04 kommt:
Steht für den Erstautor Erich Gamma und ne Publikation aus 2004 ;-) Jetzt such ich mir erstmal nen Stil, der die Referenzen (zumindest für mich) plausibler einfügt.

Passender Spruch zum Thema: Kaum macht mans richtig, klappts.
Danke für den Schubs in die richtige Richtung.

sofa-surfer
05-07-2007, 20:11
Ok, das mit den Anführungszeichen stimmt: Ohne gehts besser. Bibtex meckert zwar, dass zu viele Kommas im Autor vorkommen, aber das lässt sich nicht ändern.

Dann machst du immer noch nicht alles richtig. Die einzelnen Autoren sind in der bib-Datei mit 'and' zu trennen (vergleiche mein Beispiel) und nicht mit einem Komma. Was aus dem 'and' tatsächlich in der ausgegebenen Datei gemacht wird (eben zum Beispiel ein Komma), ist eine Frage des BibTeX-Stils.

Matthias

Salnic
05-07-2007, 21:11
Hi Ono Sendai,


Zunächst mal Sorry, ich dachte durch das (fast! [salnic]) vollständige Posting der Dateien die Anforderungen an das Minimalbeispiel zu erfüllen, da dann ja mit Copy&Paste mein Problem nachvollzogen werden kann.
obwohl man es besser machen kann, ist es schon so in Ordnung.

Du hast in Deinem ersten Posting so viele Code-Fenster benutzt, dass es vielleicht ein wenig unübersicht wurde. Tatsächlich hast Du vergessen, die header.tex zu veröffentlichen. Deine Grafiken haben wir auch nicht (images/mvc.jpg, images/observer.jpg). Und höchstwahrscheinlich haben die nichts mit den Fehlermeldungen zu tun (also rauswerfen, bzw. zumindestens den \includegraphics-Befehl). Bobmalaria hat durch das Rot-Markieren von Deinem \includeonly{kapitel/mvc} wohl bloß andeuten wollen, dass man das für ein Minimalbeispiel nicht braucht. Das kann man also minimieren und gleichzeitig alle anderen \include auch rausschmeißen. Und wenn man schon beim Minimieren ist, kann man statt des übriggebliebenen \include auch gleich die Datei an diese Stelle packen.

aber wie oben geschrieben, ist OK. (besser als gar nichts und wir müssen raten)

jetzt zu Deinen Fehlermeldungen


Beim ersten Kompilerlauf kommen Fehlermeldungen zu:

Reference fig:mvc on page 1 undefined
Reference fig:observer on page 2 undefined
Citation GAMMA on page 2 undefined
No file Diplomarbeit.ind
No file Diplomarbeit.ddl
das ist normal nach dem ersten Latex-Durchlauf. Latex fehlen ja alle temporären Dateien, die erst im ersten Durchlauf erstellt werden. Diese Fehlermeldungen sollten nach dem zweiten Durchlauf verschwinden, wenn es nicht "echte" Fehler sind.


und jede Menge weitere Fehler, die sich scheinbar auf die automatisch generierte Datei Diplomarbeit.bbl beziehen:
ja, tatsächlich erhältst Du viele Fehlermeldungen, die sich alle auf die gleiche Ursache beziehen, Deine bib-Datei ist nicht *perfekt*. Sofa-surfer hat Dir die Datei ja schon ein wenig bereinigt, wobei Dir die *.blg (Bibo-Log) weiterhelfen sollte.


This is BibTeX, Version 0.99cThe top-level auxiliary file: *.aux
The style file: geralpha.bst
Database file #1: literatut.bib
Warning--empty chapter and pages in GAMMA
(There was 1 warning)
geralpha.bst (die Style-Datei, die Bibtex benutzt, um die Bib-Datenbank (*.bib) zu formatieren) verlangt für INBOOK eine Angabe zu Kapitel und Seite (keine Fehlermeldung, nur eine Warnung, dass da was fehlt).



@INBOOK{GAMMA,
author={Erich Gamma and Richard Helm Ralph Johnson and John Vlissides},
title={Entwurfsmuster},
publisher={Addison-Wesley},
isbn={3-8273-2199-9},
year={2004},
pages={12--25},
chapter={1},
language={german}
}

Bibtex meckert zwar, dass zu viele Kommas im Autor vorkommen, aber das lässt sich nicht ändern.
noch mal zur Verdeutlichung, einzelne Autoren werden im author-Feld durch and (nicht durch Kommata) voneinander getrennt. Bibtex setzt dann die vom Style verlangten Trennzeichen. Das Komma ist dafür da, um Nachnamen vom Vornamen zu trennen

also entweder
Nachname, Vorname
oder
Vorname Nachname

Demnach hat bei Dir im Autor-Feld kein einziges Komma zu suchen, Bibtex wird sich dann auch nicht mehr beschweren. :-)


Für mich siehts so aus als ob TexNic diese bbl Datei versaubeutelt.
Fast richtig. :-) Aber eben nur fast.

Salnic

PS: language={german} ist so richtig, geralpha (bzw. bibgerm) erwartet dort german, USenglish oder english

pucki
05-07-2007, 22:24
alternativ kann man auch die restlichen autoren mit

... and other

entfallen lassen. es sollte dann aber der "haupt"-autor genannt werden.

grüsse

Ono Sendai
05-07-2007, 23:22
Vielen Dank Salnic für die wirklich ausführliche Analyse, jetzt weiss ich was ich beim nächsten mal besser machen werde und gelobe Besserung.


Tatsächlich hast Du vergessen, die header.tex zu veröffentlichen. Aaah, touchè. Hab selber nimmer durchgeblickt ;-)

Ich muss mich nochmals für das unflätige Verhlaten meiner Latex-Distribution entschuldigen, aber immer wenn ich Kommas in die bib-Datei beim Autor einfüge krachts.
Habe jetzt deinen Code per Copy&Paste genommen, lediglich die Seitenzahlen und den Bezeichner angepasst, dennoch krachts. Ganz ausführlich und diesmal als Minimalbeispiel:
Hauptdatei:


\documentclass[pdftex,a4paper,11pt]{scrbook}
\usepackage{ngerman}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
Dies stellt die Motivation für das \emph{Beobachter-Muster} dar \cite{GAMMA:observer}.
\bibliographystyle{gerapali}
\bibliography{literatur}
\end{document}

Zugehörige literatur.bib:


@INBOOK{GAMMA:observer,
author={Erich Gamma and Richard Helm Ralph Johnson and John Vlissides},
title={Entwurfsmuster},
publisher={Addison-Wesley},
isbn={3-8273-2199-9},
year={2004},
pages={287--300},
chapter={5},
language={german}
}


Ergebnis: 5 Fehler. (Selbstverständlich unter Einhaltung der Compileraufruffolge L-B-L-L )

Alle in der Art:

! Undefined control sequence.
<argument> {\sc Gamma} \btxetalshort
{.} 2004
l.4 ...mma} \btxetalshort{.} 2004]{GAMMA:observer}

Was mach ich denn nu falsch? :confused:

Salnic
06-07-2007, 03:35
Hi Ono Sendai,

In der *.bbl-Datei, die Bibtex anlegt, gibt es etliche Befehle, die Latex nicht kennt. Für die Style geralpha und gerapali (sowie die anderen Style dieser Familie) musst Du noch das Packet bibgerm einbinden

\usepackage{bibgerm}

dort sind dann diese Befehle definiert.


die Option pdftex musst Du nicht unbedingt laden, sollte Latex selber erkennen. Falls Du später mal (aus irgend einem Grund) nicht mehr pdflatex sonderen latex zum Kompilien nehmen möchtest, gibt es Probleme.

lade nicht das Packet ngerman, sondern übergibt das als Option der Dokumentenklasse. Nun wird diese Sprachoption an alle Packete weitergereicht.

\documentclass[a4paper,11pt,ngerman]{scrbook}
\usepackage{babel}



Salnic

sofa-surfer
06-07-2007, 07:03
lade nicht das Packet ngerman, sondern übergibt das als Option der Dokumentenklasse. Nun wird diese Sprachoption an alle Packete weitergereicht.

\documentclass[a4paper,11pt,ngerman]{scrbook}


Dann sollte aber auch noch das babel-Paket geladen werden ;)

Matthias

Salnic
06-07-2007, 07:47
yup. mein Fehler, habe ich nicht dran gedacht, darauf hinzuweisen. böse!

Ohne Packet kümmert sich ja niemand um die Option. Latex würde sich ja auch wundern, was das soll "Unused global option(s)"

Salnic

Ono Sendai
06-07-2007, 20:01
Grosses Lob und vielen Dank! Jetzt läufts endlich durch und spuckt keine Warnungen ud Fehler mehr aus ;-)

Darf ich Fragen, woher man die Abhängigkeiten erfährt? Gibt es sowas wie eine universelle API, die einen da leicht drüber aufklärt?