Anzeige:
Ergebnis 1 bis 5 von 5

Thema: autoref mit subfloat Bildern

  1. #1
    Registrierter Benutzer
    Registriert seit
    21.08.2008
    Beiträge
    88

    autoref mit subfloat Bildern

    Hallo und guten Tag liebe Forenleser!

    Ich habe eine kleine Frage, dessen Lösung bestimmt sehr klar ist. Jedoch bin ich durch Internetsuche und Forensuche bisher noch zu keiner Lösung gekommen. Es geht um folgendes unten stehendes Beispiel.

    Ich habe in einer figure Umgebung 2 oder mehr subfloats mit entsprechenden labels. Auf diese möchte ich gezielt im Text verweisen. Das klappt mit \ref wunderbar. Nun wollte ich jedoch mit dem hyperref package \autoref nutzen. Es scheint jedoch, dass dies für subfloat label nicht geht. Oder doch? Wisst ihr vielleicht wie?

    Herzlichen Gruß,
    TexBjoern

    Code:
    \documentclass[a4paper]{scrreprt}
    
    \usepackage{graphicx}
    \usepackage{subfig}
    \usepackage{hyperref}
    
    \begin{document}
    I'd like to have some reference to \autoref{img:1} and to \autoref{img:2} here. 
    How can I do this? 
    The reference \autoref{img:allpictures} works.
    However, not with subfloats it seems.
    
    \begin{figure}
    	\centering
    	\subfloat[\label{img:1}]{\includegraphics[width=0.5\textwidth]{my1test}}
    	\subfloat[\label{img:2}]{\includegraphics[width=0.5\textwidth]{mytest2}}
    	\caption{(a) my first picture, (b) my second picture}
    	\label{img:allpictures}%
    \end{figure}
    
    \end{document}
    Windows XP SP3, MikTeX 2.7, TexnicCenter RC 1.0, Foxit Reader 3.0

  2. #2
    Registrierter Benutzer
    Registriert seit
    11.09.2005
    Beiträge
    1.712
    Hier und hier gibt es eine Lösung dazu.

    Die sieht dann mit deinem MB so aus:
    Code:
    \documentclass[a4paper]{scrreprt}
    
    \usepackage{graphicx}
    \usepackage{subfig}
    \usepackage{hyperref}
    
    % define autorefnames
    \usepackage[english]{babel}
    \addto\extrasenglish{%
      % ...
      \renewcommand*{\figureautorefname}{Fig.}
      % ...
    }
    \newcommand{\subfigureautorefname}{Subfig.}
    % or try \newcommand{\subfigureautorefname}{\figureautorefname}
    
    % extend autoref for subfloats
    \usepackage{xspace}
    \usepackage{ifthen}
    \makeatletter
    \let\@autoref=\autoref
    \renewcommand*{\autoref}[2][]{\ifthenelse{\equal{#1}{}}{\@autoref{#2}}{\hyperref[#1]{\begin{NoHyper}\@autoref{#2}~\subref{#1}\end{NoHyper}}}\xspace}
    \makeatother
    
    
    \begin{document}
    I'd like to have some reference to \autoref{img:1} and to \autoref{img:2} here. 
    How can I do this? 
    The reference \autoref{img:allpictures} works.
    And now also the subfloats work!
    
    \begin{figure}
    	\centering
    	\subfloat[\label{img:1}]{\rule{5cm}{5cm}}
    	\subfloat[\label{img:2}]{\rule{5cm}{5cm}}
    	\caption{(a) my first picture, (b) my second picture}
    	\label{img:allpictures}%
    \end{figure}
    
    \end{document}
    Geändert von Xenara (07-04-2009 um 09:48 Uhr)

  3. #3
    Registrierter Benutzer
    Registriert seit
    21.08.2008
    Beiträge
    88

    Thumbs up

    Das ist ja super! Vielen herzlichen Dank!
    Windows XP SP3, MikTeX 2.7, TexnicCenter RC 1.0, Foxit Reader 3.0

  4. #4
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von TeXBjoern Beitrag anzeigen
    Es scheint jedoch, dass dies für subfloat label nicht geht. Oder doch? Wisst ihr vielleicht wie?
    (Stinkendes Eigenlob an)

    Mit dem richtigen Paket geht es auch einfach so:

    Code:
    \documentclass[a4paper]{scrreprt}
    
    \usepackage[demo]{graphicx}
    \usepackage{caption,subcaption}
    \usepackage{hyperref}
    
    \begin{document}
    I'd like to have some reference to \autoref{img:1} and to \autoref{img:2} here. 
    How can I do this? 
    The reference \autoref{img:allpictures} works.
    However, not with subfloats it seems.
    
    \begin{figure}
    	\centering
    	\subfloat[\label{img:1}]{\includegraphics[width=0.5\textwidth]{my1test}}
    	\subfloat[\label{img:2}]{\includegraphics[width=0.5\textwidth]{mytest2}}
    	\caption{(a) my first picture, (b) my second picture}
    	\label{img:allpictures}%
    \end{figure}
    
    \end{document}
    (Stinkendes Eigenlos aus)

    Liebe Grüße,
    Axel

  5. #5
    Registrierter Benutzer
    Registriert seit
    21.08.2008
    Beiträge
    88
    Manchmal kann es auch so einfach sein
    Vielen Dank!
    Windows XP SP3, MikTeX 2.7, TexnicCenter RC 1.0, Foxit Reader 3.0

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •