In Anlehnung an die Frage hier frage ich mich, was unter LaTeX richtig - im Sinne von "best practice" - wäre

Open in Online-Editor
\caption{Bar\label{Foo}}

oder

Open in Online-Editor
\caption{Bar}\label{Foo}

In der Antwort zu obiger Referenz ist zwar ein Hinweis zur Schachtelung gegeben, jedoch interessieren mich, ob es gravierende Gründe gegen eine Schachtelung gibt.

gefragt 29 Nov '16, 11:45

dzaic's gravatar image

dzaic
63194853
Akzeptiert-Rate: 42%

bearbeitet 30 Nov '16, 07:52

saputello's gravatar image

saputello
11.1k154365

2

Ist eigentlich egal, Hauptsache das Label steht nicht davor.

(29 Nov '16, 18:59) Johannes

Ich würde gerne eure Kommentare zu einer Antwort zusammenfassen oder wollte ihr das lieber tun, sodass die Urheberschaft auch gewährleistet wird?

(30 Nov '16, 13:55) dzaic

Wie @Johannes in seinem Kommentar bereits bemerkt hat und wie eigentlich auch bereits @stefan in seiner Antwort auf die in der Frage verlinkten Frage angedeutet hat, ist normalerweise beides korrekt.

Allerdings ist zu beachten, dass das obligatorische Argument von \caption ggf. an verschiedenen Stellen verwendet wird. Allein für die Entscheidung, ob es einzeilig zentriert oder mehrzeilig ausgegeben werden soll, muss es bereits einmal ausgewertet werden. Dann wird es ausgegeben. Zusätzlich wird es ggf. in eine Hilfsdatei geschrieben, über die dann wiederum in einem Verzeichnis ausgegeben wird. Je nach verwendeten Paketen können weitere Schritte hinzu kommen. Dadurch wird prinzipiell auch \label mehrfach ausgeführt.

Damit trotz der Mehrfachverwendung des Arguments nicht mehrfach Labels gesetzt werden, wird \label normalerweise an diversen Stellen lokal umdefiniert. Meist wird das richtig gemacht, manchmal leider auch nicht. Das gilt auch für Umdefinierungen, bei denen \caption betroffen ist oder \label generell gegenüber der Definition im LaTeX-Kern verändert wird. In den Fällen ist es dann besser, wenn das \label nach \caption steht. Das ist auch die Methode, die ich Anfängern meist empfehle.

Umgekehrt kann es Fälle geben, in denen es leichter ist, die korrekte Platzierung des Labels im Argument von \caption zu bewerkstelligen. So hat – wie ebenfalls bereits von @stefan erwähnt – die Platzierung von \label Auswirkungen darauf, was Paket showlabels ausgibt:

Open in Online-Editor
\documentclass{article}
\usepackage{mwe}
\usepackage{showlabels}
%\usepackage{float}
%\restylefloat{figure}
\begin{document}
\begin{figure}
  \centering
  \includegraphics{example-image}
  \caption{\label{fig:label}Test mit Unterschrift}
  \label{fig:testa}
\end{figure}
\begin{figure}
  \centering
  \includegraphics{example-image}
  \caption{Test \label{fig:label} mit Unterschrift}
  \label{fig:testb}
\end{figure}
\begin{figure}
  \centering
  \includegraphics{example-image}
  \caption{Test mit Unterschrift \label{fig:label}}
  \label{fig:testc}
\end{figure}
\begin{figure}
  \centering
  \includegraphics{example-image}
  \caption{Test mit Unterschrift}\label{fig:label}
  \label{fig:testd}
\end{figure}
\end{document}

Aktiviert man die beiden auskommentierten Zeilen, so sieht man, dass das aber nicht immer so sein muss.

Eine wirklich in allen Fällen beste Lösung im Sinne von best practice gibt es IMHO nicht. Es gibt verschiedene korrekte Lösungen. Derzeit erscheint mir die Platzierung hinter dem Argument von \caption das übliche Vorgehen zu sein. Das ist auch konsistent zur Platzierung von \label bei anderen Gelegenheiten.

Wie bereits @stefan in seiner oben verlinkten Antwort andeutet: Wichtig ist, dass \label nicht vor \caption steht, weil sonst nicht der Zähler der Gleitumgebung für das \label verwendet wird. Derzeit ist mir nur ein Fall bekannt, bei dem \label vor \caption funktionieren kann: longtable. Das liegt daran, dass longtable den Tabellenzähler nicht erst mit \caption, sondern bereits mit \begin{longtable} erhöht. Trotzdem soll das nicht als Einladung missverstanden werden, bei longtable nun \label vor \caption zu verwenden. Im Sinne der Konsistenz und der Gewöhnung an ein generell, korrektes Vorgehen sollte man genau das IMHO nicht tun.

Permanenter link

beantwortet 01 Dez '16, 08:17

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%

bearbeitet 01 Dez '16, 09:26

1

@saputello Wieder einmal ein hervorragender Beitrag. Auch wenn Du dir davon nichts kaufen kannst, so ist es die einzige Art der Anerkennung, die ich Dir gegenüber hier äuusern kann: Merci!

(01 Dez '16, 08:49) dzaic

@dzaic: Nichts zu danken. Ich hatte gerade Langeweile, weil ich darauf warten musste, dass die Rührmaschine mit dem Plätzchenteig fertig wird. Dadurch ist er jetzt etwas besser gerührt als eigentlich geplant. ;-)

(01 Dez '16, 09:28) saputello
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×40
×37
×32

gestellte Frage: 29 Nov '16, 11:45

Frage wurde gesehen: 6,408 Mal

zuletzt geändert: 01 Dez '16, 09:28