\label und \ref klappt nicht

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

\label und \ref klappt nicht

Beitrag von MoonKid »

Ich bekomme diese Fehlermeldung, wenn ich \ref einsetzen möchte.
aTeX Warning: Reference `ddd' on page 1 undefined on input line 13.

[1] (./x.aux
! Missing number, treated as zero.
<to be read again>
\l@german
l.3 \select@language {german}

)

LaTeX Warning: There were undefined references.
Das ist der code dazu.
\documentclass[12pt]{scrartcl}

\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\begin{document}

\section{Diagnoseliste} \label{ddd}
diagnose1, diagnose2

\section{Krankeheiten \& Operationen}
(siehe auch ~\ref{ddd})

\end{document}
XeLaTeX, TeX Live, vim-latexsuite

Seerosengiesser
Forum-Anfänger
Forum-Anfänger
Beiträge: 32
Registriert: Do 5. Aug 2010, 11:02

Beitrag von Seerosengiesser »

Bei mir gehts. Musste zwar die geladenen Packages auskommentieren (benutze MikTex und Texniccenter nicht XeLatex), dann ging es aber.
Die Fehlermeldung von dir sieht mir auch eher wie eine Warnmeldung aus, die üblicherweise nach einem zweiten oder dritten kompilieren verschwindet...

hth
Paul

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Hallo mit polyglossia 2012/04/29 v1.2.1 und ak. xelatex als TeX-Maschine geht das. Schau dass du mal den aux file löscht und ggf. deine Packte auf den neusten Stand bringst.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Also ich weiß zwar nicht welche Polyglosia-Version ich habe und ob die texlive-packete im Ubuntu-Rep uptodate sind, aber der Fehler liegt woanders.

Mein buildscript verschiebt nach 15 sec (fast) alle output-files in einen Unterordner - der Übersichtlichkeit halber.

Wenn ihr mir kurz verratet, wie *tex solche Referenzen (\label, \ref) verarbeitet und welche Dateien dabei mitspielen, kann ich mein script entsprechend anpassen.
XeLaTeX, TeX Live, vim-latexsuite

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Der Anker wird in diesem Fall einfach zwischen die entsprechenden Ankerbefehle für die Section geschrieben im .aux sieht das dann so aus
\@writefile{toc}{\contentsline {section}{\numberline {1}Diagnoseliste}{1}}
\newlabel{ddd}{{1}{1}}
\@writefile{toc}{\contentsline {section}{\numberline {2}Krankeheiten \& Operationen}{1}}
Im einem zweiten Durchgang wird das dann aus dem .aux file gelesen und die Marke entsprechend verteilt. Deshalb braucht es bei einem neuen Anker auch 2 Druchläufe. Dieses Verfahren wird benötigt um verschiedene Informationen den latex Druchlauf überleben zu lassen. (analog toc lof lot). (Wir erinnern uns dunkel an die erste Stunde TeX: tex kann vorausschauen nicht aber zurück.)

-> aux. Datei muss vorhanden sein.

Wobei das imo keine Erklärung für den Fehler ist. (Es sei denn du erzeugst wie auch immer einen korrupten .aux file. )
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

bloodworks hat geschrieben:Wobei das imo keine Erklärung für den Fehler ist. (Es sei denn du erzeugst wie auch immer einen korrupten .aux file. )
Das ist simple. Beim ersten Lauf wird das aux erzeugt. Bis zum zweiten Lauf, wird dieses aber automatisch (15sec später, von einem Hintergrund-Script) ein einen Unterordner (.out) verschoben.
Deshalb ist es beim zweiten Lauf nicht vorhanden und dieser verhält sich wie der erste Lauf.

Ich muss einfach daran denken, tatsächlich zwei Läufe direkt hintereinander zu machen, dann gehts.

Mhm... Alternativ könnte ich das aux-file auch vor einem Lauf aus dem Unterordner wieder hochholen. Das mach ich mit dem toc und bbl file bereits so.
XeLaTeX, TeX Live, vim-latexsuite

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Das ist simple. Beim ersten Lauf wird das aux erzeugt. Bis zum zweiten Lauf, wird dieses aber automatisch (15sec später, von einem Hintergrund-Script) ein einen Unterordner (.out) verschoben.
Naja, da würde ich (bei miktex) eher empfehlen, --aux-directory=dir und/oder --output-directory=dir zu benutzen.
Mhm... Alternativ könnte ich das aux-file auch vor einem Lauf aus dem Unterordner wieder hochholen. Das mach ich mit dem toc und bbl file bereits so.
Du kannst auch Unterordner in den Suchpfad aufnehmen. Bei miktex z.B. mit --include-directory=dir. In texlive kann man TEXINPUTS setzen.

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Hab ich schon durch. Funktioniert nicht, weil biber das nicht berücksichtigt, blabla.
Das zieht zu viele Komplikationen nach sich.

Schon das pdf-file sollte nicht im output sein. Ins root gehört *tex und *pdf - alles andere geht mich als Mensch nix an, sondern nur die Maschine - das will ich nicht sehen.

Mit meinem Script geht es ganz gut.
XeLaTeX, TeX Live, vim-latexsuite

Antworten