8
1

Wenn man in einer figure-Umgebung \label vor \caption setzt, gibt \ref die falsche Nummer wieder. Wieso?

Beispieldokument:

\documentclass{article}
\begin{document}
\section{Bla bla}
Ein Abschnitt mit Abbildung~\ref{fig:abbildung}.

\begin{figure}
\label{fig:abbildung}
...
\caption{Meine Abbildung}
\end{figure}

\end{document}

gefragt 10 Jun '13, 06:40

Clemens's gravatar image

Clemens
19.0k112960
Akzeptiert: 73%

bearbeitet 13 Okt '13, 18:54


Der \caption-Befehl aktualisiert die interne Referenz, welche von \label verwendet wird, also er erhöht den Tabellen- bzw. Abbildungszähler und weist ihn zu. Daher muss er vor \label stehen.

Wenn man zuerst \label aufruft, dann bezieht LaTeX sich auf die letzte gesetzte interne Referenz, was im angegeben Beispiel die section ist, daher liefert \ref hier die section-Nummer.

Eine verbreitete Praxis ist daher auch, \label innerhalb des \caption-Arguments zu schreiben. Das vermeidet ein analoges Problem, falls jemand \caption innerhalb einer Gruppe oder Umgebung verwendet, und hinterher \label, wie in (nicht empfohlenem) {\ttfamily\caption{Text}}\label{name} - hier "sieht" \label nicht mehr, was \caption getan hat, da dessen Wirkung durch die Gruppe {...} begrenzt ist, und wieder bezieht sich \label auf eine vorangehende Referenz. Nur als Erklärung, warum man das sehen kann - ich würde es nicht schachteln. Zum Beispiel zeigt das Paket showlabels (sehr nützlich beim Entwurfs-Schreiben) das Label dann an anderer Stelle an, etwa statt im Seitenrand direkt an der Bildunterschrift.

Permanenter link

beantwortet 12 Jun '13, 03:41

stefan's gravatar image

stefan ♦♦
5.8k12134

bearbeitet 12 Jun '13, 03:47

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×44
×31
×27
×25
×20

Frage gestellt: 10 Jun '13, 06:40

Frage wurde angeschaut: 5,399 Mal

Zuletzt aktualisiert: 13 Okt '13, 18:54