
Beim Lesen von Handbüchern finde ich immer Abbildungen mit der Bezeichnung \label{fig:name}
. Ich frage mich, wo der Vorteil liegt, diese Notation mit zu verwenden, fig:
anstatt mit dem Namen selbst zu beginnen. Wenn ich in meinem Dokument nur Abbildungen habe, ist \ref
die Verwendung der Bezeichnung ohne fig:
schneller, da ich nicht fig:
vorher tippen muss, um die gewünschte Abbildung zu finden. Gibt es einen Vorteil, den ich übersehen habe? Soll ich verwenden fig:
?
Antwort1
Hier sind mindestens zwei Gründe:
Es drückt die Bedeutung des Etiketts auf sehr sinnvolle Weise aus. In allen folgenden Fällen ist die Absicht des Etiketts eindeutig und Sie können damit auch Dinge gruppieren, die füreinander eine Bedeutung haben
fig:system
undeq:system
die Bedeutung eines Systems haben, wobei das eine eine Zahl und das andere eine Gleichung ist.fig:
für Figurentbl:
/tabl:
für Tischeeq:
für Gleichungenchap:
/chp:
für Kapitelsec:
für Abschnitte
Es kann normalerweise von Ihrem Editor analysiert werden, um das Nachschlagen von nur Abbildungs-/Tabellen-/Gleichungsbeschriftungen zu erleichtern. Im Fall von Emacs gibt es RefTeX, das das Querverweissystem vereinfacht. Mehrere andere Editoren verfügen ebenfalls über solche Instanzen von Querverweissystemen.
Antwort2
Zusätzlich zu den von anderen genannten Gründen (Verständlichkeit der Quelle, Nutzung von Editorfunktionen usw.) fancyref
können Sie durch die Verwendung von aussagekräftigere Querverweise automatisieren. So können Sie ganz einfach sicherstellen, dass Ihre Querverweise im gesamten Dokument einheitlich formatiert sind. Das System kann angepasst werden, um Ihre eigenen bevorzugten Präfixe und Bezeichnungen zu verwenden, und kann erweitert werden, um Querverweise auf andere Elemente Ihres Dokuments abzudecken. Es kann sowohl einfache als auch Vario-Referenzen verarbeiten und bietet sofort einsatzbereite Befehle für Groß- und Kleinschreibung.
\documentclass{article}
\usepackage{fancyref}
\begin{document}
\section{A section}\label{sec:mysec}
\begin{figure}
\centering \fbox{A figure}
\caption{My figure}\label{fig:myfig}
\end{figure}
\Fref{sec:myothersec} will demonstrate that \fref{fig:myfig} is fantastic.
\section{Another section}\label{sec:myothersec}
\Fref{fig:myfig} showed whatever my figure showed in \fref{sec:mysec}.
\end{document}
Antwort3
Persönlich habe ich eine solche Konvention nie verwendet (und LaTeX geht nicht davon aus, dass die Beschriftungen eine Struktur haben). Die Beschriftungszeichenfolge ist eigentlich nur ein undurchsichtiger interner Bezeichner. Wenn Sie es praktisch finden, den Beschriftungen ähnlicher Objekte ein gemeinsames Präfix zu geben, dann tun Sie das, aber es ist sicherlich keine Anforderung des Systems. Einige Pakete und/oder Editoren versuchen möglicherweise, die Struktur der Beschriftungen zu analysieren und nach fig:
usw. zu suchen, aber das sollten sie wahrscheinlich nicht tun.
Antwort4
Ich schreibe gerade einigeSkriptum zu "Geometrie und Topologie"(auf Deutsch). Durch das Projekt habe ich gelernt, warum Namespaces für Labels sinnvoll sind.
Vermeiden Sie doppelte Beschriftungen: Ich hatte Probleme ohne Präfixe wie fig:
und sec:
oder bsp:
(zum Beispiel) oder thm:
, wegen doppelter Beschriftungen. Ziemlich oft hatte ich eine Abbildung, auf die ich verweisen wollte, und einen Lehrsatz. Namespaces lösen dieses Problem gut.
Machen Sie den Code leichter lesbar
Verwechslungen vermeiden: Manchmal wollte ich auf Abschnitte verweisen. Ich war mir also sicher, dass der Abschnitt eine Bezeichnung hatte, z. B. \label{lifting}
. Tatsächlich wurde diese Bezeichnung jedoch für eine Abbildung gewählt. Mit Präfixen wäre das nicht passiert. Mit Präfixen würde LaTeX welche erzeugen ??
und deutlich machen, dass ich einen Fehler gemacht habe.
Nachdem ich den Screenshot von oben gesehen habe, denke ich, dass sich für dich noch ein weiterer Vorteil ergibt:
Autovervollständigung: Ich schätze, meistens weiß man, ob man auf eine Abbildung, einen Abschnitt, eine Tabelle oder was auch immer verweisen möchte. Auf diese Weise reduziert man die Anzahl der Elemente, über die man tatsächlich nachdenken muss, erheblich. (Übrigens, welchen Editor benutzt du? Ich tippe mein LaTeX die meiste Zeit immer noch mit gEdit / pluma ... vielleicht hast du eine bessere Alternative?)
Cleveref und Fancref: Es gibt einige Gründe, warum Sie verwenden sollten \usepackage{cleveref}
(siehelange Antwort). Damit können Sie beispielsweise Folgendes tun:
\usepackage[nameinlink]{cleveref}
...
As you can see in \cref{sec:abc} ...
Das könnte heißen:
As you can see in section 7
wobei auf "Abschnitt 7" verwiesen wird. Zusätzlich können Sie Sprachoptionen angeben, cleveref
die die Übersetzung erleichtern können.
Es gibt also einige wichtige Gründe, für Label-Namespaces eine eigene Konvention zu verwenden.
Zusammenarbeitist der einzige Grund für die Verwendung eines „bekannten Namespace-Schemas“ wie fig:
für Abbildungen und sec:
Abschnitte.
LaTeX kümmert sich jedoch nicht um Label-Namespaces. Sie sind lediglich ein Teil des Namens des Labels.