Seite 1 von 1

Wie man einen Text labelt

Verfasst: Do 31. Mär 2016, 16:27
von Schmantii
Hallo zusammen!

Ich habe da ein kleines Problem mit folgendem Befehl, von dem ich nicht weiß wie (und ob) man das irgendwie lösen kann.
\documentclass{scrartcl}

\usepackage{hyperref}
	\providecommand\phantomsection{}
	
\makeatletter

	\newcommand{\textlabel}[2]{%
	  \edef\@currentlabel{#1}% Set target label
	  \phantomsection% Correct hyper reference link
	  #1\protect\label{#2}% Print and store label
	}
\makeatother

\begin{document}
This \textbf{\textlabel{word}{label}} has a label.\\ \newpage
	This is the reference to the \ref{label}.
\end{document}
Der Befehl soll einen bestimmten Textteil kennzeichnen / zwischenspeichern und ihn über ref ausgeben - was er auch bislang schön tut.

Mein Ziel ist aber nun, die Formatierung (nur Schriftart, keine Schriftgröße) des "gelabelten" Wortes / Textes (in diesem Fall fett) auf die Referenz zu übertragen - wenn möglich ganz einfach so:
\textlabel{\textbf{word}}{label}
Wobei er mir hier immer eine Fehlermeldung ausgibt, was wohl am label Befehl selbst liegen wird, da dieser keine Formatierungsbefehle annimmt.

Habe in meinem Anwendungskontext mehrere alternative Lösungswege versucht; allerdings wäre das hier immernoch die optimalste Lösung, bei der ich keine Abstriche machen müsste (wenn denn möglich).

Any ideas?

Schönen Gruß! :D

Verfasst: Do 31. Mär 2016, 16:33
von Noch so einer
Ziemlich seltsamer Code. Ich vermute, Du willst so etwas:
\documentclass{scrartcl}

\usepackage{hyperref}
\providecommand\phantomsection{}

\makeatletter
\newcommand{\textlabel}[2]{%
  \protected@edef\@currentlabel{#1}% Set target label
  \phantomsection% Correct hyper reference link
  #1\label{#2}% Print and store label
}
\makeatother

\begin{document}
This \textlabel{\protect\textbf{word}}{label} has a label.
\newpage
This is the reference to the \ref{label}.
\end{document}

Verfasst: Do 31. Mär 2016, 17:24
von Schmantii
Ne! Es ist nicht zu fassen!

Da probiert und sucht man ellenlang - und dann kommt er mit so einem kleinen Wort um die Ecke...:shock:
Noch so einer hat geschrieben: (...)
\textlabel{\protect\textbf{word}}{label}
(...)
Hätte man selbst wissen müssen! :oops:
Aber es tut auf jeden Fall seine Dienste. BESTEN Dank dafür! :wink:
Dann kann ich ja jetzt endlich weiter machen...

Schönen Tag noch! :D