Problem mit URL-Quellen in Captions

Tabellen und Grafiken erstellen und anordnen


Sputnik83
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 71
Registriert: Fr 28. Dez 2012, 22:58

Problem mit URL-Quellen in Captions

Beitrag von Sputnik83 »

...und das nächste Problem :(

ich habe Probleme mit URL´s als Quelle in Bildunterschriften

Irgendwie reicht mei Tex-Vokabular nicht aus um das Problem effizient zu beschreiben, daher habe ich ein lauffähiges Beispiel gebastelt:
\documentclass[ngerman]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[demo]{graphicx}
\usepackage{float}

\usepackage{url}
\usepackage[
    bookmarks,
    bookmarksopen=true,
    colorlinks=true,
% diese Farbdefinitionen zeichnen Links im PDF farblich aus
    linkcolor=blue, % einfache interne Verknüpfungen
    anchorcolor=black,% Ankertext
    citecolor=blue, % Verweise auf Literaturverzeichniseinträge im Text
    filecolor=magenta, % Verknüpfungen, die lokale Dateien öffnen
    menucolor=red, % Acrobat-Menüpunkte
    urlcolor=cyan, 
    backref,
    plainpages=false, % zur korrekten Erstellung der Bookmarks
    pdfpagelabels, % zur korrekten Erstellung der Bookmarks
    hypertexnames=false, % zur korrekten Erstellung der Bookmarks
    linktocpage % Seitenzahlen anstatt Text im Inhaltsverzeichnis verlinken
]{hyperref}

\begin{document}

%klappt wunderbar!
\url{http://www.bis_hier_wird_der_Link_gezeigt.de %ab %hier %nicht %mehr}

%klappt nicht!
\begin{figure}[H]
	\centering
   		\includegraphics[width=10cm]{Test}
   		\caption[Bildbeschreibung]{\url{http://www.bis_hier_wird_der_Link_gezeigt.de %ab %hier %nicht %mehr
   		}
   		}
   		\label{Beispiel}		
\end{figure}
\end{document}
Wie ihr seht, wird der selbe Dummylink im oberen Beispiel korrekt ausgegeben, binde ich ihn allerdings in die Caption einer Grafik ein, wird der Link ab dem ersten "%-Zeichen" abgeschnitten.
Wie kann ich einen solchen Link trotzdem als Quelle in der Bildunterschrift angeben?

Vielen Dank für eure Hilfe!

Benutzeravatar
Sepp99
Forum-Meister
Forum-Meister
Beiträge: 1569
Registriert: So 29. Aug 2010, 17:26
Wohnort: Offenhausen/OÖ

Beitrag von Sepp99 »

Dafür stellt das Paket url den Befehl
\urldef{...}\url{...}
zur Verfügung. Es wird von hyperref geladen, daher braucht es nicht extra geladen werden.
\documentclass[ngerman]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[demo]{graphicx}
\usepackage{float}

%\usepackage{url}% wird von hyperref geladen
\usepackage[
    bookmarks,
    bookmarksopen=true,
    colorlinks=true,
% diese Farbdefinitionen zeichnen Links im PDF farblich aus
    linkcolor=blue, % einfache interne Verknüpfungen
    anchorcolor=black,% Ankertext
    citecolor=blue, % Verweise auf Literaturverzeichniseinträge im Text
    filecolor=magenta, % Verknüpfungen, die lokale Dateien öffnen
    menucolor=red, % Acrobat-Menüpunkte
    urlcolor=cyan,
    backref,
    plainpages=false, % zur korrekten Erstellung der Bookmarks
    pdfpagelabels, % zur korrekten Erstellung der Bookmarks
    hypertexnames=false, % zur korrekten Erstellung der Bookmarks
    linktocpage % Seitenzahlen anstatt Text im Inhaltsverzeichnis verlinken
]{hyperref}

\urldef{\Bildbeschreibung}\url{http://www.bis_hier_wird_der_Link_gezeigt.de %ab %hier %nicht %mehr}
\begin{document}

%klappt wunderbar!
\url{http://www.bis_hier_wird_der_Link_gezeigt.de %ab %hier %nicht %mehr}

%klappt nicht!
\begin{figure}[H]
   \centering
         \includegraphics[width=10cm]{Test}
         \caption[Bildbeschreibung]{\Bildbeschreibung}
         \label{Beispiel}      
\end{figure}
\end{document}
Leider kann hier seit einiger Zeit keine Datei mehr hochgeladen werden!

Gruß, Sepp

Sputnik83
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 71
Registriert: Fr 28. Dez 2012, 22:58

Beitrag von Sputnik83 »

hmmmm.... das wäre eine Lösung, nur habe ich ca. 100 Bilder mit 100 verschiedenen URLs als Quelle in der Bildunterschrift. Das wird nen Haufen Schreibarbeit!
Jedenfalls danke für den Vorschlag!
Wieso kann man denn eigentlich \url{etwas} nicht gleich in die caption schreiben?

Sputnik83
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 71
Registriert: Fr 28. Dez 2012, 22:58

Beitrag von Sputnik83 »

Hmmm.... ;)
es geht weiter!
Die Lösung funktioniert prima in der figure-Umgebung, leider nicht bei SCfigure oder mach ich was falsch?
\documentclass[ngerman]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[demo]{graphicx}
\usepackage{float}
\usepackage{sidecap}
\usepackage{ifthen} 

\usepackage{url}
\usepackage[
    bookmarks,
    bookmarksopen=true,
    colorlinks=true,
% diese Farbdefinitionen zeichnen Links im PDF farblich aus
    linkcolor=blue, % einfache interne Verknüpfungen
    anchorcolor=black,% Ankertext
    citecolor=blue, % Verweise auf Literaturverzeichniseinträge im Text
    filecolor=magenta, % Verknüpfungen, die lokale Dateien öffnen
    menucolor=red, % Acrobat-Menüpunkte
    urlcolor=cyan,
    backref,
    plainpages=false, % zur korrekten Erstellung der Bookmarks
    pdfpagelabels, % zur korrekten Erstellung der Bookmarks
    hypertexnames=false, % zur korrekten Erstellung der Bookmarks
    linktocpage % Seitenzahlen anstatt Text im Inhaltsverzeichnis verlinken
]{hyperref}

\begin{document}

%klappt
\begin{figure}
\urldef{\makro}{\url}{http://beispielurl.html}
\centering
\includegraphics[width=5cm]{Test}
\caption[Beispielcaption]{Beispielcaption (aus \makro~Stand: xx.xx.xxxx)}
\label{Beispiellabel}		
\end{figure}

%klappt nicht
\begin{SCfigure}
\urldef{\makro}{\url}{http://beispielurl.html}
\centering
\includegraphics[width=5cm]{Test}
\caption[Beispielcaption]{Beispielcaption (aus \makro~Stand: xx.xx.xxxx)}
\label{Beispiellabel}		
\end{SCfigure}

\end{document} 

Epllus
Forum-Guru
Forum-Guru
Beiträge: 470
Registriert: So 23. Sep 2012, 17:31

Beitrag von Epllus »

Versuch es mal hiermit:
\documentclass[ngerman]{scrreprt} 
\usepackage[ngerman]{babel} 
\usepackage[demo]{graphicx} 
\usepackage{float} 
\usepackage{sidecap} 
\usepackage{ifthen} 

\usepackage{url} 
\usepackage[ 
    bookmarks, 
    bookmarksopen=true, 
    colorlinks=true, 
% diese Farbdefinitionen zeichnen Links im PDF farblich aus 
    linkcolor=blue, % einfache interne Verknüpfungen 
    anchorcolor=black,% Ankertext 
    citecolor=blue, % Verweise auf Literaturverzeichniseinträge im Text 
    filecolor=magenta, % Verknüpfungen, die lokale Dateien öffnen 
    menucolor=red, % Acrobat-Menüpunkte 
    urlcolor=cyan, 
    backref, 
    plainpages=false, % zur korrekten Erstellung der Bookmarks 
    pdfpagelabels, % zur korrekten Erstellung der Bookmarks 
    hypertexnames=false, % zur korrekten Erstellung der Bookmarks 
    linktocpage % Seitenzahlen anstatt Text im Inhaltsverzeichnis verlinken
]{hyperref} 

\begin{document} 

%klappt 
\urldef{\makro}{\url}{http://beispielurl.html} 
\begin{figure} 
\centering 
\includegraphics[width=5cm]{Test} 
\caption[Beispielcaption]{Beispielcaption (aus \makro~Stand: xx.xx.xxxx)} 
\label{Beispiellabel}       
\end{figure} 


\urldef{\makro}{\url}{http://Anderer Url} \begin{SCfigure} 
\centering 
\includegraphics[width=5cm]{Test} 
\caption[Beispielcaption]{Beispielcaption (aus \makro~Stand: xx.xx.xxxx)} 
\label{Beispiellabel}       
\end{SCfigure} 

\end{document}
Wie du bemerkt hast, ist jetzt die \urldef außerhalb von SCfigure.
Es müsste jetzt funktionieren.

Hoffe es hilft
Epllus

Besserwisser

Beitrag von Besserwisser »

Sputnik83 hat geschrieben:Wieso kann man denn eigentlich \url{etwas} nicht gleich in die caption schreiben?
\url muss catcodes ändern, damit beispielsweise % kein Kommentarzeichen mehr ist, _ keine mathematische Tiefstellung etc. Es nimmt also Einfluss auf den Parser von TeX. Das geht natürlich nur, solange etwas noch nicht geparst ist. Wenn aber \url innerhalb des Arguments einer anderen Anweisung steht, dann wird das Argument geparst, bevor es ausgewertet wird. \url kann also catcodes ändern so viel es will, das kommt zu spät.

Sputnik83
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 71
Registriert: Fr 28. Dez 2012, 22:58

Beitrag von Sputnik83 »

uiii... das hatte ich eigentlich auch probiert, muss aber irgendwo nen anderen Fehler in der Syntax gehabt haben...
Danke auch nochmal fpr die Erklärung. Finde es immer besser auch zu verstehen, was ich mache ;)

Antworten