Zitat von
ctansearch
[code]
\newcommand{\mylabel}[1]{\colorbox{green}{\label*{#1}}}
\newcommand{\myref}[1]{\ref*{#1}}
Deine beiden Beispieldokumente funktionieren bei mir nicht so recht, oder ich kapiere deinen Code nicht.
\label*{#1} ist identisch mit \label{*}{#1} (könnte man also auch genausogut als \label{*}#1 schreiben), setzt also ein Label namens "*" und gibt den Namen des Labels aus.
\ref*{#1} macht das gleiche mit \ref, ist also identisch mit \ref{*}{#1}, es sei denn, das hyperref-Paket ist geladen, denn das stellt ein "echtes" \ref* zur Verfügung.
Es wird also immer nur ein Label namens "*" generiert, und wenn man \mylabel mehrfach anwendet, bekommt man dementsprechend die Warnung "LaTeX Warning: There were multiply-defined labels." beim Übersetzen:
Code:
\documentclass[a4paper]{article}
\usepackage{color}
\newcommand{\mylabel}[1]{\colorbox{green}{\label*{#1}}}
\newcommand{\myref}[1]{\ref*{#1}}
\begin{document}
\section{Labeltest1}
Ein bisschen Text
\mylabel{mylabel1}
\myref{mylabel1}
\section{Labeltest2}
Ein bisschen Text
\mylabel{mylabel2}
\myref{mylabel2}
\end{document}
Die passende aux-Datei:
Code:
\relax
\@writefile{toc}{\contentsline {section}{\numberline {1}Labeltest1}{1}}
\newlabel{*}{{1}{1}}
\@writefile{toc}{\contentsline {section}{\numberline {2}Labeltest2}{1}}
\newlabel{*}{{2}{1}}
Lesezeichen