Bin Latex Anfänger und habe wohl das Thema mit den Referenzen noch nicht richtig verstanden. Dazu folgendes Minimalbeispiel:
\documentclass{article}
\usepackage[colorlinks, linkcolor = blue, citecolor = blue, urlcolor = blue]{hyperref}
\newcounter{Mycount}
\newcounter{ReqCounter}
\newcommand{\Projekt}{A}
\def\threedigits#1{%
\Projekt-%
\ifnum#1<100 0\fi
\ifnum#1<10 0\fi
\number#1}
\def\RefCount{%
\textbf{\threedigits{\theReqCounter}}
}
\def\RefCountRel#1{%
\setcounter{Mycount}{\theReqCounter}\addtocounter{Mycount}{#1}%
Anforderung \mbox{\textbf{\threedigits{\theMycount}}}%
}
\newcommand{\Anforderung}[1]{%
\begin{center}
\stepcounter{ReqCounter}
\begin{tabular}[!h]{p{1.5cm}p{13.5cm}ll}
\RefCount & #1\\
\end{tabular}
\end{center}
}
\begin{document}
\Anforderung{Das ist Text 1.}
\Anforderung{Das ist Text 2.}
\Anforderung{Das ist Text 3 mit Referenz nach \RefCountRel{-2}.}
\end{document}
Ich möchte, dass aus der 3. Zeile der Ausgabe eine Referenz wird und zwar der gesamte fett gedruckte Text. Also nicht nur eine Ziffer, wie sie z.B. ein \refstepcounter liefert.
Das von hyperref verwendete Paket nameref bietet die Anweisung \nameref, um nicht nur den Zähler, der zu einem Label gehört zu referenzieren, sondern auch den Namen. Bei Gliederungsstrukturen wie Überschriften wird dieser Name üblicherweise durch den Inhaltsverzeichniseintrag gegeben. Bei Nicht-Standard-Strukturen, wie eigenen Definitionen muss ggf. selbst dafür gesorgt werden, dass \@currentlabelname passend gesetzt wird. Natürlich sollte auch \refstepcounter statt \stepcounter verwendet werden. Erschwerend kommt bei dir hinzu, dass das Erhöhen des Zählers in einer Umgebung und damit innerhalb einer Gruppe erfolgt. Die Referenz ist nach dem Ende der Umgebung damit nicht mehr gültig. Das könnte dadurch gelöst werden, dass die Anweisung \refstepcounter und die Definition von \@currentlabelname vor die center-Umgebung verschoben wird. Oder es wird einfach ein optionales Argument zum Setzen des Labels hinzugefügt:
\documentclass{article}
\usepackage{scrbase}% für \IfArgIsEmpty (siehe scrguide.pdf)
\usepackage[colorlinks, linkcolor = blue, citecolor = blue, urlcolor = blue]{hyperref}
\newcounter{Mycount}
\newcounter{ReqCounter}
\newcommand{\Projekt}{A}
\def\threedigits#1{%
\Projekt-%
\ifnum#1<100 0\fi
\ifnum#1<10 0\fi
\number#1}
\def\RefCount{%
\textbf{\threedigits{\theReqCounter}}
}
\def\RefCountRel#1{%
\setcounter{Mycount}{\theReqCounter}\addtocounter{Mycount}{#1}%
Anforderung \mbox{\textbf{\threedigits{\theMycount}}}%
}
\makeatletter
\newcommand{\Anforderung}[2][]{% optionales Argument für Label hinzugefügt
\begin{center}
\def\@currentlabelname{#2}% Namen für die nachfolgende Referenz setzen.
\refstepcounter{ReqCounter}% Zählerreferenz erzeugen
\IfArgIsEmpty{#1}{}{\label{#1}}% Label nur setzen, wenn das optionale Argument nicht leer ist.
\begin{tabular}[!h]{p{1.5cm}p{13.5cm}ll}
\RefCount & #2\\
\end{tabular}
\end{center}
}
\makeatother
\begin{document}
\Anforderung{Das ist Text 1.}
\Anforderung{Das ist Text 2.}
\Anforderung[anf:test]{Das ist Text 3 mit Referenz nach \RefCountRel{-2}.}
Siehe: \nameref{anf:test}.
\end{document}
Im Text selbst wieder ein Label anzugeben ist etwas unglücklich, da es schon ein paar hundert Anforderungen gibt.
Du hast mich mit hyperref aber schon auf die richtige Spur gebracht. Ich verwende jetzt \hypertarget und \hyperlink. Damit erhalte ich das gewünschte Ergebnis.
\documentclass{article}
\usepackage[colorlinks, linkcolor = blue, citecolor = blue, urlcolor = blue]{hyperref}
\newcounter{Mycount}
\newcounter{ReqCounter}
\newcommand{\Projekt}{A}
\setcounter{ReqCounter}{10}
\def\threedigits#1{%
\Projekt-%
\ifnum#1<100 0\fi
\ifnum#1<10 0\fi
\number#1}
\def\RefCount{%
\textbf{\threedigits{\theReqCounter}}
}
\def\RefCountRel#1{%
\setcounter{Mycount}{\theReqCounter}\addtocounter{Mycount}{#1}%
Anforderung \mbox{\textbf{\hyperlink{\theMycount}{\threedigits{\theMycount}}}}}%
\newcommand{\Anforderung}[1]{%
\begin{center}
\refstepcounter{ReqCounter}
\hypertarget{\theReqCounter}{}
\begin{tabular}[!h]{p{1.5cm}p{13.5cm}ll}
\RefCount & #1\\
\end{tabular}
\end{center}
}
\begin{document}
\Anforderung{Das ist Text 1.}
\Anforderung{Das ist Text 2.}
\Anforderung{Das ist Text 3 \RefCountRel{-2}.}
\end{document}