PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : figure - caption hypcap - Bildverlinkung



schranze
08-04-2010, 15:39
Hallo,

ich verwende für die Verlinkung meiner Bilder im Dokument einmal figure und für den Textumfluss um das Bild wrapfigure

Minimalbeispiel ist das


\documentclass[12pt,german,a4paper,DIV12,headsepline,bigheadings, liststotoc,bibtotoc,idxtotoc,pointlessnumbers,abst racton,oneside]{scrreprt}
\usepackage{scrpage2}
\usepackage[ngerman]{babel}
\usepackage{wrapfig}
\usepackage[final,dvips]{graphicx}
\usepackage[utf8x]{inputenc}
\usepackage[ps2pdf,breaklinks,colorlinks=true,citecolor=darkbl ue,linkcolor=darkblue,urlcolor=darkblue,filecolor= darkblue, hyperfootnotes=false]{hyperref}
\usepackage[all]{hypcap}

\newcommand{\Abbf}[5]{%
\begin{figure}[#1]%
\begin{center}
\includegraphics*[#2]{#3}%
\caption[#5]{#5}%
\label{#4}%
\end{center}
\end{figure}%
}

\newcommand{\Abbwrap}[6]{
\begin{wrapfigure}[#6]{#1}{#2}
\includegraphics*[width=#2]{#3}
\caption[#5]{#5}
\label{#4}
\end{wrapfigure}
}

\begin{document}
\phantomsection
\listoffigures
ein wenig Text bla bla bla

\Abbwrap{r}{0.4\textwidth}{Bildquelle}{fig:09_Bild 1}{umflossenes Bild}{12}

weiterer Text bla bla bla

\Abbf{!htb}{width=1.0\textwidth}{Bildquelle}{fig:0 1_Bild8}
{normales Bild allein}
\end{document}


Mein Problem ist, beim klicken im Abbildungsverzeichnis lande ich ohne

\usepackage[all]{hypcap} nur unten auf der Bildbeschriftung vom Bild. Das heißt das Bild sieht man nicht.

Wenn ich das Package hypcap mit verwende klappt es für die übliche Figureumgebung. Das Bild was umflossen ist mit wrapfigure landet immer noch an der falschen Stelle, wo ich die Zeile sehe, aber das Bild darüber eben nicht. Da muß noch hoch gescrollt werden.

Ich hab ein wenig recherchiert und bin so weit gekommen, das mit wrapfigure so eine Konfiguration nicht machbar ist. Wie kann ich das elegant lösen, das auch bei dem umflossenen Bild ich von der Verlinkung aus dem Abbildungsverzeichnis auf das Bild komme und nicht nur auf die Bildunterschrift.

Mein Ansatz momentan wäre, wrapfigure über Board zu hauen und das Bild mit figure einzubinden. Sähe nur im Dokument dann nicht so gut aus, bei so ganz kleinen Bildern. Das in Zusammenhang mit ner Tabelle ist kein guter Stil. Das wäre auch ne Lösung ja aber nicht so prickelnd.

Wie gesagt figure und hypcap klappt wie gewünscht - ist es mit figure möglich ein umflossenes Bild zu bekommen? Also wie links Text rechts Bild.

Danke für die Hilfe!

mechanicus
08-04-2010, 16:23
Hi,


\documentclass[12pt,a4paper,DIV12,headsepline,bigheadings,liststo toc,bibtotoc,idxtotoc,pointlessnumbers,abstracton, oneside,demo]{scrreprt}
\usepackage{scrpage2}
\usepackage[ngerman]{babel}

\usepackage[final]{graphicx}
\usepackage[utf8x]{inputenc}
\usepackage{caption}
\usepackage{wrapfig}
\captionsetup[figure]{position=above}
\usepackage{xcolor}
\colorlet{darkblue}{blue}
\usepackage[,colorlinks=true,citecolor=darkblue,linkcolor=dark blue,urlcolor=darkblue,filecolor=darkblue, hyperfootnotes=false]{hyperref}
% \usepackage[all]{hypcap}

\newcommand{\Abbf}[5]{%
\begin{figure}[#1]%
% \begin{center}
\centering
\includegraphics*[#2]{#3}%
\caption[#5]{#5}%
\label{#4}%
% \end{center}
\end{figure}%
}

\newcommand{\Abbwrap}[6]{
\begin{wrapfigure}[#6]{#1}{#2}
\includegraphics*[width=#2]{#3}
\caption[#5]{#5}
\label{#4}
\end{wrapfigure}
}
\usepackage{lipsum}
\begin{document}
\phantomsection
\listoffigures
\lipsum[1]

\Abbwrap{r}{0.4\textwidth}{Bildquelle}{fig:09_Bild 1}{umflossenes Bild}{12}

\lipsum[1]

\Abbf{!htb}{width=1.0\textwidth}{Bildquelle}{fig:0 1_Bild8}
{normales Bild allein}

\lipsum[1]
\end{document}


Anmerkungen:
Global definierst du german als Sprache, obwohl du babel mit ngerman lädst. Du verwendest bei der KOMA-Klasse keine Key-Value-Eingabe, was darauf schließen lässt, dass du nicht die neuste Version hast.

Den Treiber bei hyperref und graphicx weglassen. Die Paket finden die Treiber automatisch und es verursacht weniger Fehler.

Innerhalb von Umgebungen solltest du nicht die Umgebung center nutzen, sondern \centering.

Die Option breaklinks funktioniert bei der Kompilierung latex-ps-pdf nur, wenn du hypdvips lädst.



Gruß
Marco

schranze
08-04-2010, 17:56
Anmerkungen:
Global definierst du german als Sprache, obwohl du babel mit ngerman lädst. Du verwendest bei der KOMA-Klasse keine Key-Value-Eingabe, was darauf schließen lässt, dass du nicht die neuste Version hast.

Den Treiber bei hyperref und graphicx weglassen. Die Paket finden die Treiber automatisch und es verursacht weniger Fehler.

Innerhalb von Umgebungen solltest du nicht die Umgebung center nutzen, sondern \centering.

Die Option breaklinks funktioniert bei der Kompilierung latex-ps-pdf nur, wenn du hypdvips lädst.



Gruß
Marco

Danke Marco!

Ich habe mein Dokument in der Hinsicht komplett abgeändert und es funktioniert so wie davor auch.

Das Paket Caption laden und das Captionsetup mit above wird akzeptiert, tut aber nicht das was es vermutlich machen soll, den Anker oben setzen, wenn man auf die Verlinkung im Abbildungsverzeichnis klickt.

lad ich das Paket hypcap dazu, hab ich die Situation die ich davor auch hatte

Ich hab irgendwo gelesen das man das Caption Package in einer gewissen Version benötigt - wie finde ich das heraus welche ich hab und wie könnte ich da eine neue Version von installieren?

Mein System - Ubuntu 9.10 mit den ganzen Paketen von Ubuntu für Latex und als Tool nutze ich Kile.

Nochmal Danke für die ganze Hilfe!
Wegen den Definitionen des ganzen Dokumentes, warum die etwas "schief" sind, hängt sehr damit zusammen, das ich aus verschiedenen Vorlagen die Features gesucht hab und dementsprechend ergänzt habe, damit das Endresultat stimmt - je größer jetzt aber das Dokument wird, desto anfälliger wird es für Fehler - jetzt mitten in einer Ausarbeitung will ich jedenfalls das ganze Grundgerüst von vorn rein nicht ändern - danach hab ich Zeit und kann von Grund auf ein sauberes Dokument der Reihe nach erstellen.

lockstep
08-04-2010, 18:08
Ich hab irgendwo gelesen das man das Caption Package in einer gewissen Version benötigt - wie finde ich das heraus welche ich hab und wie könnte ich da eine neue Version von installieren?

Stelle \listfiles noch vor \documentclass in deinen Code, kompiliere und begutachte die file list in deiner log-Datei. Neuere Paketversionen (so nicht per automatischem Update verfügbar) lädst du von CTAN herunter, installierst sie in einem lokalen Verzeichnis (z.B. C:\localtexmf) und deklarierst dieses Verzeichnis als zusätzliches root directory deines TeX-Systems.

lockstep

tral
08-04-2010, 18:08
In Ubuntu 9.10 ist das sehr betagte TeX Live 2007 dabei. Entweder, du installierst TeX Live 2009 manuell (siehe hier (http://www.mrunix.de/forums/showpost.php?p=309678&postcount=5)) oder du wartest ein paar Tage auf Ubuntu 10.04...

Christian.

mechanicus
08-04-2010, 18:27
oder du wartest ein paar Tage auf Ubuntu 10.04..
Beta 2 ist raus und das läuft schon :rolleyes:

Gruß
Marco

schranze
08-04-2010, 19:10
ah okay - wenn es nur an der Aktualität jetzt von meinem LaTeX fehlt, dann bin ich beruhigt!

bei mir gibt der Output dann das aus!


caption.sty 2007/01/07 v3.0k Customising captions (AR)
caption3.sty 2007/01/07 v3.0k caption3 kernel (AR)

lockstep
08-04-2010, 19:22
Die aktuelle Version von caption hat die Nummer 3.1m (14.1.2010), und im Zusammenspiel von caption und hyperref hat sich im letzten Jahr einiges getan.

lockstep

schranze
08-04-2010, 19:38
Die aktuelle Version von caption hat die Nummer 3.1m (14.1.2010), und im Zusammenspiel von caption und hyperref hat sich im letzten Jahr einiges getan.

lockstep

gut zu wissen - bin momentan dabei das Update zu installieren ;)

Erstmal aber gibt es Abendbrot und danach meld ich mich, in der Vorfreude das danach alles klappt!

Nochmal großen Dank an alle hier, die mir bislang hier geholfen haben. Die Community ist einfach Spitze!

schranze
08-04-2010, 21:11
gut zu wissen - bin momentan dabei das Update zu installieren ;)

Erstmal aber gibt es Abendbrot und danach meld ich mich, in der Vorfreude das danach alles klappt!

Nochmal großen Dank an alle hier, die mir bislang hier geholfen haben. Die Community ist einfach Spitze!

Leute ich werd verrückt! Es geht! Ich hatte dann zwar noch ein paar Dinge auszubessern, die auch anders sind, aber das war nicht die Hürde das zu ändern.

Gewisse Sachen sind dann auch obsolete - hab die Zeile auf das abkürzen können


\documentclass[12pt,a4paper,DIV12,headsepline,abstracton,oneside]{scrreprt}


Nochmal vielen vielen Dank für die ganzen Infos!

sommerfee
10-04-2010, 08:02
P.S.: Das "hypcap"-Feature hat das caption-Paket ab Version 3.1 (2007/09/01).