Label definiert, trotzdem Warnung "Reference ... undefi

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Label definiert, trotzdem Warnung "Reference ... undefi

von KOMA » Di 21. Sep 2010, 18:22

Ich habe sogar revtex4-1.cls in Version 2010/07/25/20:33:00 4.1r (http://publish.aps.org/revtex4/ for documentation) und der Fehler, dass das Material für die aux-Datei in der log-Datei landet (Grund siehe oben) tritt definitiv auf. Das ist mit dem kleinen Minimalbeispiel von sommerfee sehr schön nachzuvollziehen. Obiges ist übrigens die neuste Version, die ich unter der angegebenen Adresse, auf CTAN und in TeX Live 2010 finden konnte.

von bloodworks » Di 21. Sep 2010, 17:59

Hallo ich habe gerade das Beispiel von sommerfee ausprobiert. Ich kann den Bug (oder wie auch immer) bestätigen.

MacTeX 2010 pdflatex snow leo
*File List*
filecontents.sty    2009/03/17 v1.2 Create an external file from within a LaTeX
 document
revtex4-1.cls    2010/02/25/18:00:00 4.1p (http://publish.aps.org/revtex4/ for 
documentation)
  aps4-1.rtx
aps10pt4-1.rtx
textcase.sty    2004/10/07 v0.07 Text only upper/lower case changing (DPC)
     url.sty    2006/04/12  ver 3.3  Verb mode for urls, etc.
  natbib.sty    2009/11/07 8.31a (PWD, AO)
  natbib.cfg
revsymb4-1.sty    2010/02/25/18:00:00 4.1p (http://publish.aps.org/revtex4/ for
 documentation)
 test_02.tex
 ***********
Mag auch sein, dass das eine Inkompatibilität ist.

von dave » Di 21. Sep 2010, 17:46

Ich habe die Autoren von revtex angeschrieben und ihnen das Minimalbeispiel von Mechanicus geschickt. Laut deren Angabe wird die Datei fehlerlos kompiliert. Ist irgendwie schwer von einem Bug zu sprechen, wenn die Entwickler ihn nicht reproduzieren können. :?

von KOMA » Mo 20. Sep 2010, 10:08

Die Klasse definiert \clearpage um, was dazu führt, dass bei \include die Unter-aux-Datei zur per \include geladenen Datei bereits geschlossen ist, wenn die letzte Seite dieser Datei ausgegeben wird. Daher landet dann alles, was in diese aux-Datei gehört in der Konsole und der log-Datei.

Ich würde das als Bug bezeichnen. Du solltest das an den Autor der Klasse melden.

Workaround: Am Ende der per \include geladenen Datei ein \clearpage einfügen.

von sommerfee » So 19. Sep 2010, 21:09

dave hat geschrieben:Das Problem scheint auch wirklich bei revtex4 zu liegen.
Definitiv. Wenn ich dies hier übersetze:
\RequirePackage{filecontents} 
\begin{filecontents*}{test_02.tex} 
\section{Lorem ipsum} 
\begin{figure}[!ht] 
\rule{2cm}{2cm} 
\caption{foo\label{bild}}
\end{figure}
\ref{bild} 
\end{filecontents*} 
\documentclass{revtex4-1} 
\begin{document} 
\include{test_02} 
%\input{test_02} 
\end{document}
sieht man folgendes im log-file:
) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
\@writefile{toc}{\contentsline {section}{\numberline {I}Lorem ipsum}{1}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces foo}}{1}{
}}
\newlabel{bild}{{1}{1}{}{}{}}
] (./test.aux (./test_02.aux))
Die \@writefile und \newlabel haben aber in der Log-Ausgabe rein gar nichts zu suchen, die gehören eigentlich in die aux-Datei!

von dave » So 19. Sep 2010, 20:22

Sehr seltsam ... eigentlich dürfte zwischen \include und \input kaum ein Unterschied sein, aber es ist doch einer. Bei einem Originaltext funktioniert das Labeln und Referieren problemlos mit \input. Damit ist mein eigentliches Problem gelöst.

Das Problem scheint auch wirklich bei revtex4 zu liegen. Wenn ich z.B. die article-Klasse und \include verwende, funktioniert das Labeln ebenfalls. Ich werd die Leute bei revtex mal anschreiben und sie auf diesen Thread hier verweisen.

Danke für deine Hilfe, hast mir den Tag gerettet. :D

von Mechanicus » So 19. Sep 2010, 19:43

dave hat geschrieben:Wie meinst du das, dass die Dokumentklasse unbekannt ist?
Ich dachte, ich hätte diese nicht. Sorry.

dave hat geschrieben: Und genau dieses Label findet man test_02.tex Datei, trotzdem kommt die Warnung "undefined".
Bei der Verwendung von include, findet es gar kein label bei mir. Nur wenn ich input verwende:
\RequirePackage{filecontents}
\begin{filecontents*}{test_02.tex}
\section{Lorem ipsum}
\lipsum[1]
\begin{equation}
\label{eq:th01}
|\psi\rangle = \frac{1}{2} \cdot \left( |+\rangle_1 \cdot |-\rangle_2 + |-\rangle_1 \cdot |+\rangle_2 \right) ,
\end{equation}
\lipsum[1]
\begin{equation}
    \label{eq:th02}
    S = |E(\vec{a},\vec{b})-E(\vec{a},\vec{b'})|+|E(\vec{a'},\vec{b})+E(\vec{a'},\vec{b'})| \leq 2,
\end{equation}

siehe \ref{eq:th01} und \ref{eq:th02}
\begin{figure}[!ht]
\rule{2cm}{2cm}
\caption{foo} \label{bild}
\end{figure}

\ref{bild}
\end{filecontents*}
\documentclass[11pt,a4paper,twoside,aps,prl,twocolumn,groupedaddress]{revtex4-1}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{lipsum}

\begin{document}
\include{test_02}
%\input{test_02}
\end{document}
Die Dokumentation lässt sich aber auch nicht richtig aus. (zumindest habe ich nichts gesehen, was wiederum nichts zu bedeuten hat :) )

Gruß
Marco

von dave » So 19. Sep 2010, 18:57

Wie meinst du das, dass die Dokumentklasse unbekannt ist? In der log-Datei steht, welche Dokumentklasse (revtex4-1 vom revtex4-Packet) benutzt wird, und es werden dazu keine Warnungen oder Fehler aufgezeigt. Weiters ist in der Zeile 691 der log-Datei beschrieben:
LaTeX Warning: Reference `fig:th01' on page 2 undefined on input line 35.

Und genau dieses Label findet man test_02.tex Datei, trotzdem kommt die Warnung "undefined".

Deswegen kann ich deine Antwort nicht nachvollziehen. Ich habe auch dein Minimalbeispiel ausgeführt, aber es erscheint mir nicht gerade sinnvoll, da ich ja geschrieben habe, dass die ersten drei Labels ordnungsgemäß erkannt werden.

Mfg,
dave

von Mechanicus » So 19. Sep 2010, 17:57

Hi,

die Dokumentenklasse ist ebenfalls unbekannt. Ich habe zudem dein Minimalbeispiel etwas gekürzt:
\RequirePackage{filecontents}
\begin{filecontents*}{test_02.tex}
\section{Lorem ipsum}
\lipsum[1]
\begin{equation}
\label{eq:th01}
|\psi\rangle = \frac{1}{2} \cdot \left( |+\rangle_1 \cdot |-\rangle_2 + |-\rangle_1 \cdot |+\rangle_2 \right) ,
\end{equation}
\lipsum[1]
\begin{equation}
    \label{eq:th02}
    S = |E(\vec{a},\vec{b})-E(\vec{a},\vec{b'})|+|E(\vec{a'},\vec{b})+E(\vec{a'},\vec{b'})| \leq 2, 
\end{equation}

siehe \eqref{eq:th01} und \eqref{eq:th02}
\end{filecontents*}
\documentclass[11pt,a4paper,twoside,aps,prl,twocolumn,groupedaddress]{article}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{lipsum}
\begin{document}
\include{test_02}
\end{document}
Gruß
Marco

EDIT: in der log gibt es nur den Fehler, dass das Bild nicht existiert.

Label definiert, trotzdem Warnung "Reference ... undefi

von dave » So 19. Sep 2010, 17:41

Moin.

Ich sitze gerade an einem Latex-Projekt, das aus mehreren tex-Dateien besteht, da mehrere Leute gleichzeitig dran arbeiten, d.h. es gibt eine main-Datei, in der die externen Dateien per \include{} eingebunden werden.

Das Problem ist nun folgendes: anscheinend kann (pdf)Latex nicht alle Labels erkennen. Bei der externen Datei werden die ersten drei Labels erkannt, alle weiteren jedoch nicht. Wenn ich nun z.B. das Bild referiere, so erscheint - trotz existentem Label - der Fehler "Reference ... undefined". Merkwürdigerweise verschwindet der Fehler, sobald ich den Inhalt der externen Datei direkt in die main-Datei reinkopiere. Aber die Arbeit schreibt vor, dass ich die Dateien externalisieren muss.

Ich benutze Texmaker mit MikTex 2.8 auf Windows 7. Ich habe auch schon probiert, das ganze mit TexWorks zu kompilieren, aber der Fehler bleibt der gleiche.

Die zwei tex-Dateien (zu einem Test abgeändert) und die log-Datei sind in den folgenden Links gespeichert.

test_main.tex
test_02.tex
test_main.log
test_main.aux
test_02.aux

Ich bedanke mich bereits im Vorraus für jede Hilfe.

P.S.: ich finde es klasse, dass auch Gäste hier schreiben können

Mfg,
Samiel

Nach oben