PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IfFileExists verhält sich unerwartet



stolzi
23-09-2009, 15:54
Hallo,

ich verstehe folgendes nicht. Wenn ich



\IfFileExists{Meine_Bibliothek.bib}{
Der Testtext
}


verwende funktioniert der Befehl wie erwartet: Der Text steht nur im File wenn die Datei vorhanden ist.

Wenn ich aber


\IfFileExists{Meine_Bibliothek.bib}{
\appendix
\bibliographystyle{dinat}
\bibliography{Meine_Bibliothek.bib}
}

verwende, dann wird auch wenn die Datei nicht vorhanden ist versucht, die Bibliothek zu erstellen.

Kann mir da jemand helfen?

Danke
Stolzi

u_fischer
23-09-2009, 16:16
Kann ich nicht nachvollziehen. Was meinst du mit "wird versucht die Bibliothek zu erstellen"?

stolzi
23-09-2009, 17:03
Ein anderes Wort dafür wäre: Literaturverzeichnis

Ich bin wie geschrieben davon ausgegangen, dass der Code

\IfFileExists{Meine_Bibliothek.bib}{
\appendix
\bibliographystyle{dinat}
\bibliography{Meine_Bibliothek.bib}
}
in der If Anweisung auch nicht ausgeführt wird, wenn die Datei nicht vorhanden ist. Wenn ich ihn aber in mein Latex Dokument integriere, dann bekomme ich folgende Fehlermeldung von BibTeX:

This is BibTeX, Version 0.99c (Web2C 7.5.6)
The top-level auxiliary file: VO_W10_090603.aux
I found no \citation commands---while reading file VO_W10_090603.aux
I found no \bibdata command---while reading file VO_W10_090603.aux
I found no \bibstyle command---while reading file VO_W10_090603.aux
(There were 3 error messages)

Also gehe ich davon aus, dass versucht wird den Code in der If Anweisung auszuführen.

u_fischer
23-09-2009, 17:33
Nö, das heißt nur, dass bibtex aufgerufen wird. Das macht wahrscheinlich texify oder ein Skript, das du benutzt. Da bibtex sich über das fehlende bibstyle beschwert, zeigt, dass \bibliographystyle{dinat} nicht ausgeführt wurde.

stolzi
23-09-2009, 17:42
Nein, es wird an keiner Stelle aufgerufen. Versuche folgendes Minimalbeispiel:


\documentclass[a4paper,10pt]{scrartcl}
\usepackage{natbib}
\begin{document}

Test

\IfFileExists{Meine_Bibliothek.bib}{
\appendix
\bibliographystyle{dinat}
\bibliography{Meine_Bibliothek.bib}
}

\end{document}

Hier entsteht ein Fehler. Hier nicht:


\documentclass[a4paper,10pt]{scrartcl}

\begin{document}

Test

\IfFileExists{Meine_Bibliothek.bib}{
Und noch ein Test
}

\end{document}

u_fischer
23-09-2009, 18:10
Nun, dann benutzt du halt irgendein cleveres Skript, das deine tex-Datei analysiert und wegen eines der Befehle bibtex aufruft. LaTeX ignoriert jedenfalls den Code und selbst wenn es das nicht täte: LaTeX ruft bibtex nicht auf. Du musst ja einfach mal in die aux-Datei schauen. Wenn der Code ausgeführt würde, müsste da sowas stehen:

\bibstyle{dinat}
\bibdata{Meine_Bibliothek.bib}

stolzi
23-09-2009, 18:13
Ok, verstehe ;-) Dann wird das mein Kile machen, nicht Latex. So gibt das Sinn. Danke dir.