
Ich bin ein TEX-Anfänger und lerne gerade, wie man eine Referenz erstellt. Ich lese das Buch „The Not So Short Introduction to LATEX2“ von Oetiker, Partl, Hyna, Schlegl; auf Seite 42, Abschnitt 2.8 Cross Reference, steht der Code wie folgt:
A reference to this section \label{sec:this} looks like:
"see section~\ref{sec:this} on page~\pageref{sec:this}"
Ich verwende CTex und WinEdt und meine Fragen sind:
- Ich habe aus dem obigen Code eine PDF-Datei erstellt, aber die Abschnitts- und Seitenzahlen sind nicht hervorgehoben und ich kann nicht darauf klicken. Warum ist das so?
- Ich habe versucht, auf andere Seiten zu verweisen, indem ich die Seitenzahl wie folgt eingebe:
{sec:37}
, aber das funktioniert nicht. Wie kann ich das Problem beheben? - Was bedeutet der Code
sec
eigentlich? Ist er beliebig oder eine vorgegebene Syntax? - Als ich eingab
\label{}
, erschien ein Menüfeld mit dem Namen Labels (51) und es gibt Dropdown-Menüs wiec:ISYAC
,c:UNBOUND
,c:UNIFBURN
, ... usw. ... was ist das? Müssen wir aus dieser Liste auswählen oder können wir unsere eigenen schreiben, wie{sec:this}
?
Hilfe wird sehr geschätzt! Vielen, vielen Dank!
Antwort1
Der allgemeine Mechanismus besteht darin, irgendwo in Ihrem Dokument einen Anker mit zu setzen \label{<name>}
, wobei es <name>
sich um eine Kombination aus Zahlen, Buchstaben :
und -
(zur Sicherheit) handeln kann. Diese Anker müssen ausdrücklich vom Autor gesetzt werden, deshalb funktioniert es nicht, es sei denn, Sie definieren sie nicht. Nachdem Sie einen Anker gesetzt haben, können Sie mit (unter Angabe des entsprechenden Zählers, wie Kapitel oder Abschnitt oder Gleichung oder … Zahl) oder (unter Angabe der entsprechenden Seitenzahl) \ref{sec:47}
darauf verweisen .\ref{<name>}
\pageref{<name>}
Einige Autoren verwenden Bezeichner wie sec:
, eq:
, thm:
usw., um Ankernamen für Menschen lesbarer zu machen, aber das ist für die Funktion des Mechanismus nicht erforderlich.
Pakete
Der Mechanismus von LaTeX kann durch einige Pakete erweitert werden:
hyperref
macht Referenzen zu anklickbaren Hyperlinks (und hat noch einige weitere Funktionen).cleveref
findet die passenden Namen für Etiketten und druckt beispielsweise\ref{anchor5}
alssection~5
statt5
.varioref
vergleicht die Seitenzahlen von Anker und Referenz und fügt automatisch Text wieon previous page
usw. hinzuon page 6
.nameref
kann den tatsächlichen Titel eines Ankers drucken.
MWE
\documentclass[english]{article}
% langage
\usepackage{babel}
% only for \lipsum blind text
\usepackage{lipsum}
% ref packages
\usepackage{nameref}
% folowing must be in this order
\usepackage{varioref}
\usepackage{hyperref}
\usepackage{cleveref}
\begin{document}
\section{First section}
\lipsum[1-10]
\section{My section}\label{sec:mysection}
\lipsum[1-22]
\section{References}
\begin{itemize}
\item \verb+\ref{sec:mysection}+: \ref{sec:mysection}
\item \verb+\pageref{sec:mysection}+: \pageref{sec:mysection}
\item \verb+\cref{sec:mysection}+: \cref{sec:mysection}
\item \verb+\cpageref{sec:mysection}+: \cpageref{sec:mysection}
\item \verb+\vref{sec:mysection}+: \vref{sec:mysection}% already combined with \cref
\item \verb+\vpageref{sec:mysection}+: \vpageref{sec:mysection}
\item \verb+\nameref{sec:mysection}+: \nameref{sec:mysection}
\end{itemize}
\end{document}