Seite 1 von 1

hypcap um direkt an Bild/Tabellenanfang zu verlinken

Verfasst: Di 2. Aug 2022, 14:13
von _ME_
Ich arbeite in meiner Arbeit mit \hyperref um Abbildungen zu "verlinken". Jedoch springt Latex dabei nicht auf das Bild an sich, sondern auf die \caption. Darum hab ich versucht dies mit \hypcap (und Verwendung von \capstart) zu fixen. Dabei wird mir jedoch nur die Fehlermedlung "Undefined control sequence." für den Befehl \capstart. Siehe Minimalbespiel.

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage[hidelinks]{hyperref} 
\usepackage[all]{hypcap}
\usepackage{cleveref}
\usepackage{caption}
\usepackage{graphicx}
\usepackage{blindtext}

\begin{document}

Hier steht Text für eine Abbildung \ref{fig:bild}. \\
\blindtext
\vspace{0.5cm}

\begin{minipage}[h]{\linewidth}\centering
    \includegraphics[width=1\linewidth]{example-grid-100x100pt}
    \capstart
    \captionsetup{font=footnotesize, type=figure}
     \caption[caption-bild]{\textbf{caption-bild}\textmd{\blindtext}}
      \label{fig:bild}    
\end{minipage}

\end{document}

Wäre echt schön wenn mir jemand bei dem Problem helfen könnte.

Re: hypcap um direkt an Bild/Tabellenanfang zu verlinken

Verfasst: Di 2. Aug 2022, 16:36
von ich meine ja nur
Wie die Doku zu \capstart in der hypcap-Anleitung erklärt, führt das die Erhöhung des Zählers \@captype durch. \@captype ist außerhalb von Gleitumgebungen aber erst nach \captionsetup{…,type=figure} definiert. Hier liegt also dasselbe Problem, wie bei Verwendung von \caption außerhalb von einer Gleitumgebung vor. Wenn die Verlinkung auf die mit \includegraphics eingefügte Grafik verweisen soll, dann musst du also
    \captionsetup{font=footnotesize, type=figure}
    \capstart
    \includegraphics{…}
verwenden.

Re: hypcap um direkt an Bild/Tabellenanfang zu verlinken

Verfasst: Mi 3. Aug 2022, 08:21
von _ME_
Okay. Hab ich jetzt so gemacht. Funktioniert jetzt so wie ich das mir vorstelle. Danke für die Hilfe

Re: hypcap um direkt an Bild/Tabellenanfang zu verlinken

Verfasst: So 19. Mär 2023, 13:39
von sommerfee
Der Vollständigkeit halber:

Das caption Paket hat "hypcap" bereits eingebaut, und
\captionsetup{..., type=figure}
setzt (zumindest standardmäßig) einen Hyperref-Anker, gibt also durch die Position dieser Zeile im LaTeX code auch das Sprung-Ziel an.
Ein Verschieben dieser Zeile vor das Einfügen des Bildes via
[\includegraphics[width=1\linewidth]{example-grid-100x100pt}
wäre also ausreichend gewesen:
\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage[hidelinks]{hyperref} 
\usepackage{cleveref}
\usepackage{caption}
\usepackage{graphicx}
\usepackage{blindtext}

\begin{document}

Hier steht Text für eine Abbildung \ref{fig:bild}. \\
\blindtext
\vspace{0.5cm}

\begin{minipage}[h]{\linewidth}\centering
    \captionsetup{font=footnotesize, type=figure}
    \includegraphics[width=1\linewidth]{example-grid-100x100pt}
     \caption[caption-bild]{\textbf{caption-bild}\textmd{\blindtext}}
      \label{fig:bild}    
\end{minipage}

\clearpage
\blindtext

\end{document}
Ein Laden des "hypcap" Paketes deaktiviert das interne "hypcap" im caption-Paket, so daß dann (und nur dann) ein extra `\capstart` in diesem Falle notwendig ist.