PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit cite in caption



bene
15-02-2011, 12:38
Hallo,

vorweg, diesmal hab ich wirklich lang gesucht und auch die faq gelesen. Hat aber alles nichts geholfen, ich hab ständig Probleme mit cite innerhalb von caption.
Zwei Lösungsvorschläge hab ich gefunden:
1. \caption[Test]{Test, nach \cite[S.\,2]{Gioia2009}}
2. \caption{Test, nach protect\cite[S.\,2]{Gioia2009}}

Beides funktioniert bei mir teilweise nicht. Ich hab versucht ein Minimalbeispiel zu erstellen, aber ich kann es nicht sicher reproduzieren. Weiß hier jemand was bei mir schief läuft?

Xenara
15-02-2011, 12:48
Wenn du uns noch verrätst, was deine Probleme überhaupt sind und was "funktioniert teilweise nicht" bedeutet, wäre es signifikant einfacher.

Sepp99
15-02-2011, 13:00
Warum soll das nicht funktionieren?


\listfiles
\documentclass{scrreprt}
\usepackage[english, ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[demo]{graphicx}
\usepackage[backend=bibtex8,style=authoryear]{biblatex}
\bibliography{testbib}
\usepackage[german=guillemets]{csquotes}
\usepackage{blindtext}
\usepackage{filecontents}
\begin{filecontents}{testbib.bib}
@book{Mittelbach:2010,
author = {Mittelbach, Frank and Goossens, Michel and Braams, Johannes},
year = {2010},
title = {Der Latex-Begleiter},
publisher = {Pearson Studium},
address = {M{\"u}nchen},
edition = {2., {\"u}berarb. und erw. Aufl., [Nachdr.], Baf{\"o}g-Ausg.},
isbn = {978-3-8273-7166-9},
series = {ST - scientific tools}
}
\end{filecontents}


\begin{document}
\listoffigures

\chapter{Eins}
\section{Eins.eins}
\blindtext

\begin{figure}[htbp]
\centering
\includegraphics{eure graphik.jpeg}
\caption[Test]{Test, nach \cite[S.\,2]{Mittelbach:2010}}
\end{figure}

\blindtext

\printbibliography

\end{document}

Sepp.-

bene
15-02-2011, 13:08
Ich hab am Ende zwei Auszüge aus der Log. Ich kann damit wenig anfangen, bspw macht der Fehler "! LaTeX Error: Missing \begin{document}." und die Warning "LaTeX Warning: Citation `Gioia2009' on page 1 undefined on input line 45." für mich kein weil sowohl \begin{document} als auch Gioia2009 vorhanden sind. setze ich \cite[]{} außerhalb von \caption läuft auch alles ohne Warning/Fehler durch.

Ein pdf wird trotz Fehler erstellt, die erste Seite besteht hier bspw nur aus "[?, S. 2]2]Gioia200933testunterschrift.caption.4", auf den folgenden Seiten kommt dann das Dokument. In dem Dokument, das ich jetzt gerade kompiliert hab, kommt insgesamt 3 mal cite innerhalb einer caption vor, beim ersten und letzten auftreten funktioniert es ohne Probleme, bei der zweiten wird aber die caption aus den vorhergehenden latex-Läufen gesetzt, bevor das cite in der caption drin stand. "testunterschrift" was ich oben schon erwähnt hab, ist genau das was dort beim vorhergehenden Durchlauf stand, es wird nicht die neue caption genommen.

Wie gesagt, es ist unterschiedlich, bei manchen geht es, bei manchen nicht, ich hab noch keine Regelmäßigkeit ausgemacht.

Ich hoff, das war ausführlich genug und auch verständlich.




! Missing \endcsname inserted.
<to be read again>
\protect
l.45 ...ärkers\relax \relax }{figure.caption.4}{}}

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.


! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.45 ...ärkers\relax \relax }{figure.caption.4}{}}

You're in trouble here. Try typing <return> to proceed.
If that doesn't work, type X <return> to quit.

\citation{Gioia2009}

LaTeX Warning: Citation `Gioia2009' on page 1 undefined on input line 45.

! Extra \endcsname.
\@ifundefined ...dafter \ifx \csname #1\endcsname
\relax \expandafter \@firs...
l.45 ...ärkers\relax \relax }{figure.caption.4}{}}

I'm ignoring this, since I wasn't doing a \csname.

! Missing \endcsname inserted.
<to be read again>
\protect
l.45 ...ärkers\relax \relax }{figure.caption.4}{}}

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Extra \endcsname.
\@namedef ...xpandafter \def \csname #1\endcsname

l.45 ...ärkers\relax \relax }{figure.caption.4}{}}

I'm ignoring this, since I wasn't doing a \csname.

)

! Missing \endcsname inserted.
<to be read again>
\protect
l.45 ...ärkers\relax \relax }{figure.caption.4}{}}

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

\citation{Gioia2009}
! Extra \endcsname.
\@newl@bel ... \bbl@tempa \csname #1@#2\endcsname
\def \bbl@tempb {#3}\@safe...
l.45 ...ärkers\relax \relax }{figure.caption.4}{}}

I'm ignoring this, since I wasn't doing a \csname.

Sepp99
15-02-2011, 13:18
Offensichtlich hast Du in deiner Präambel etwas stehen, was esrt nach \begin{document} stehen darf.
Ohne Minimalbeispiel wird es schwer, dir zu helfen.

Gruß, Sepp.-

EDIT: läuft denn mein MB fehlerfrei durch?

bene
15-02-2011, 13:22
Asche über mein Haupt, ich hab den Fehler gefunden. \label und \caption haben bei mir den selben Inhalt (relativ lang) und da bin ich in einer Zeile dann verrutscht, als ich \cite eingefügt hab. Hab ich grad rausgefunden, als ich mein Dokument auf Minimalbeispiel kürzen wollte.

Xenara
15-02-2011, 13:26
Asche über mein Haupt, ich hab den Fehler gefunden. \label und \caption haben bei mir den selben Inhalt (relativ lang) und da bin ich in einer Zeile dann verrutscht, als ich \cite eingefügt hab. Hab ich grad rausgefunden, als ich mein Dokument auf Minimalbeispiel kürzen wollte.

Womit wiedermal bewiesen wäre, wozu ein MB gut ist ;)

Was meinst du aber damit, dass du in caption und label den gleichen Inhalt hast? In label sollten keine Leerzeichen, Umlaute und Sonderzeichen stehen, das macht häufig Ärger.

Sepp99
15-02-2011, 13:29
@Xenara
Du hast mir die Worte aus dem Mund genommen :D

bene
15-02-2011, 13:30
Was meinst du aber damit, dass du in caption und label den gleichen Inhalt hast? In label sollten keine Leerzeichen, Umlaute und Sonderzeichen stehen, das macht häufig Ärger.
ja, das weiß ich. Stimmt auch nicht ganz, was ich gesagt hab. Leerzeichen hab ich aber natürlich durch underscore ersetzt und da der Text englisch ist, gibts keine Probleme mit Sonderzeichen.

zubzerro
28-11-2011, 16:36
Bei mir ist der Fehler gerade auch aufgetreten. Ich hatte auch Text im Label stehen, der eigentlich in die Caption sollte:



\begin{figure}[htb]
\centering\includegraphics[width=.9\linewidth]{Bilder/gross/Bild.jpg}
\caption{text text}
\label{zufällig Text, der eigentlich auch in die Caption sollte}
\end{figure}


Auch nachdem ich den Text aus dem Label entfernt habe, blieb der Fehler bestehen, bis ich die *.toc, *.nlo, *.idx, *.aux Dateien gelöscht habe, dann ging wieder alles super! :)
Danke für eure Tips!

Viele Grüße...Zub



PS: Fehler Meldung hatte folgenden Text: relax relax figure.caption.15



---------------------------------------------------------------
Programs and Tutorials - http://www.soft-hummingbird.com/