PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit komavar und hyperref/href



Meta
17-01-2013, 17:09
Hallo zusammen,

ich würde gerne im Kopf eines scrlttr2-Briefes einen Hyperlink setzen.
So weit, so gut.
Wenn ich nun aber gerne eine komavar-Variable als Argument nutzen möchte, bekomme ich Fehlermeldungen und es wird kein Output erstellt.

Was mache ich falsch bzw. wie mache ich es richtig. ;)

Hier ein Minimalbeispiel:


\documentclass{scrlttr2}

\RequirePackage[latin1]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage[ngerman]{babel}
\RequirePackage{hyperref}

\setkomavar{fromurl}{url.tld}

\setkomavar{firsthead}{%
% does work
\href{http://url.tld}{url.tld}\\
\href{http://url.tld}{\usekomavar{fromurl}}\\

% does NOT work
% \href{\usekomavar{fromurl}}{url.tld}\\
% \href{\usekomavar{fromurl}}{\usekomavar{fromurl}}
}

\begin{document}

\begin{letter}{%
Max Muster\\
Musterstraße 1\\
12345 Musterstadt%
}

\setkomavar{subject}{Betreff ...}

\opening{Lieber Max,}
\end{letter}

\end{document}


Mir ist klar, dass das geht - und ja, ich weiß auch, dass das irgendwo im koma-skript steht und genutzt wird.
Ich habe auch gesucht, aber ich habe nicht gefunden, wo z.B. fromurl genutzt wird.

Wäre euch für eure Hilfe (und sei es auch nur der Name der Datei, in der genau das in koma gemacht wird) sehr dankbar!

klops
18-01-2013, 08:04
Warum setzt Du den Link nicht bereits bei der Definition der URL, denn das Ziel des Links ist doch eigentlich Bestandteil davon:
\setkomavar{fromurl}{\href{http://url.tld}{url.tld}}

\setkomavar{firsthead}{%
% does work
\href{http://url.tld}{url.tld}\\
\usekomavar{fromurl}\\

% does NOT work
% \href{\usekomavar{fromurl}}{url.tld}\\
% \href{\usekomavar{fromurl}}{\usekomavar{fromurl}}
}

Was bei mir ebenfalls funktioniert, ist der Trick, der in der KOMA-Script-Anleitung am Beispiel von \MakeUppercase gezeigt wird:
\setkomavar{fromurl}{url.tld}

\setkomavar{firsthead}{%
% does work
\href{http://url.tld}{url.tld}\\
\usekomavar[\url]{fromurl}\\

% does NOT work
% \href{\usekomavar{fromurl}}{url.tld}\\
% \href{\usekomavar{fromurl}}{\usekomavar{fromurl}}
}
Das geht auch mit \href:
\setkomavar{firsthead}{%
% does work
\href{http://url.tld}{url.tld}\\
\usekomavar[\href{http://url.tld}]{fromurl}\\

% does NOT work
% \href{\usekomavar{fromurl}}{url.tld}\\
% \href{\usekomavar{fromurl}}{\usekomavar{fromurl}}
}

Meta
18-01-2013, 20:47
Hallo klops,

und danke! :)
Ich habe es auf die erste Variante gemacht:

\setkomavar{fromurl}{\href{http://url.tld}{url.tld}}

Warum ich das bislang nicht gemacht habe?
Weil der Inhalt der Variablen in meinen Augen eigentlich ausschließlich reiner Text ist.
Ich gebe bei der E-Mail-Adresse ja auch keinen Link an, sondern nur die E-Mail-Adresse an sich.
Und dennoch wird die von KOMA als Hyperlink ausgegeben.
Daher wollte ich bei der Website ebenso vorgehen...

Na ja, scheinbar "muss" es wohl so gemacht werden.

Danke noch mal!

klops
21-01-2013, 08:32
Nein, die E-Mail-Adresse wird nicht automatisch als Link ausgegeben. Einige PDF-Viewer machen aber auch aus Text, hinter dem sie eine E-Mail-Adresse vermuten, je nach Einstellung selbst einen Link. AFAIK funktioniert das auch für WWW-Seiten, wenn ein http:// davor steht. Da das aber kein sicherer Weg ist, um beim Leser einen Link zu provozieren, ist es sicher besser, alle Links explizit als solche zu setzen. Und da der angezeigte Text und der Link miteinander korrespondieren, also bei einer Änderung es Textes in der Regel auch der Link zu ändern ist, bin ich durchaus der Meinung, dass das mit in die Variable gehört und nicht erst in deren Verwendung. Etwas anderes wäre, wenn Du mal einen Link haben wolltest und mal nicht. Dann wäre es eine reine Formatierung. In dem Fall bräuchte man aber eine zweite Variable für den Link, damit Form und Inhalt (in dem Fall Linkziel) wieder von einander getrennt sind.