PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wrapfig - Abstand über Grafik



thorsten_1
27-02-2012, 17:10
Hallo zusammen,

kaum habe ich vor einer Woche meine erste Seminararbeit in LaTeX geschrieben, steck ich voll drin: Meine Freundin war vom Ergebnis so begeistert, dass sie nun ihre Diplomarbeit getext haben will... was zur Folge hat, dass ich mich weiterhin mit Latex-Problemen herumschlagen muss.

Das folgende Problem ist nun das Erste, für das ich keine Lösung gefunden habe. Ich hoffe, dass ich nicht gesteinigt werde - ich bin immer noch ein ziemlicher Newby:
Und zwar möchte ich gerne Text um ein Bild fließen lassen. Das habe ich mit wrapfig gelöst. picins wollte ich nicht verwenden, da ich mehrfach gelesen hab, dass für die Aufgabe wrapfig genutzt werden sollte.
Nun gefällt mir aber der Abstand über und unter dem Bild gar nicht. Der ist m.E. übertrieben groß. Der obere Rand der Grafik sollte doch mit der Absatzhöhe beginnen.

Nach einiger Suche habe ich diesen Befehl als Lösung gefunden: \setlength{\intextsep}{0cm plus1cm minus1cm}

Das Blöde daran ist: der Befehl betrifft auch normale Bilder (figure). Da wiederum gefällt mir der Abstand eigentlich recht gut...

Die Frage nun: Gibt es eine Möglichkeit, dass der Abstand nur für die Bilder in "wrapfigure" korrigiert werden? Ich habe es nicht hinbekommen.

Hier ein Minimalbeispiel:


\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{wrapfig}

% \setlength{\intextsep}{0cm plus1cm minus1cm}

\begin{document}

\blindtext

\begin{wrapfigure}{L}{0pt}
\centering
\rule{2cm}{2cm}
\end{wrapfigure}

\blindtext

\begin{figure}[htbp]
\centering
\rule{3cm}{3cm}
\end{figure}

\blindtext

\end{document}

bobmalaria
27-02-2012, 17:39
hi,

gutes minimalbeispiel, weiter so.

ich denke du kannst den abstand optimieren wenn du die anzahl der gerkuerzten zeilen angibst. ausserdem solltest du die breite des bildes angeben und nicht einfach mit 0cm angeben.
hoffentlich hilft dir das. eventuell kann man noch zur feinabstimmung ganz am ende der arbeit ein paar \vspace{-0.5\baselineskip} (oder ein anderes mass) einbauen um abstaende zu verringern. aber
da muss man extrem aufpassen und es ist sicher kein heilmittel das man haeufig einsetzen sollte

gruss


\documentclass[parskip=half]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{wrapfig}


%% [number of narrow lines] {placement} [overhang] {width of figure}
\begin{document}
\begin{wrapfigure}[5]{l}{2.2cm}%
\centering%
\rule{2cm}{2cm}%
\end{wrapfigure}%
Ein bisschen test text der n icht von blindtext generiert wurde da das glaube
ich einen kleinen unterschied macht wo man denn letztendlich dann die
wrapfigure umgebung platziert. man kann sie gleich am anfang setzen, noch bevor
man etwas geschrieben hat, oder man setzt sie nachdem man bereits ein paaar
zeilen geschrieben hat.
mal sehen was das ausmacht. ausserdem kann es helfen
die anzahl der gekuerzten zeilen mit anzugeben, da stolpet manchmal der
algorithmus. hier habe ich fuernf gekuerzte zeilen angegeben und es scheint
besser zu funktionieren.


\blindtext
\begin{figure}[htbp]
\centering
\rule{2cm}{2cm}
\end{figure}
\blindtext

\end{document}

http://www.mrunix.de/forums/attachment.php?attachmentid=5069&stc=1&d=1330360732

thorsten_1
27-02-2012, 18:53
Danke für die schnelle Rückmeldung :-)

Mh, es gibt also wohl keine gute Möglichkeit dieses "\setlength" nur für wrapfigure zu setzen?

Ein Feintuning für jedes Bild, mit vspace oder angegebenen Zeilen, wollte ich eigentlich vermeiden. Vorallem, da ich für meine Freundin zum Einfügen der Bilder einen einfachen Befehl definiert hab.

Wegen der breite von 0pt: In der Doku steht, dass es sich in dem Fall automatisch anpasst. Dachte, dass kann man dann auch bedenkenlos verwenden.

thorsten_1
27-02-2012, 19:04
Ich habe gerade dein Minimalbeispiel getestet.

:(

Sah zuerst gut aus... bis ich noch einen Absatz vor dem ersten Bild hinzugefügt habe:

http://dl.dropbox.com/u/32704537/min2.PNG

Da muss man wohl doch für jedes Bild einzeln tunen ohne Ende. Sehr schade. Mal gucken, wie ich das meiner Freundin erklären soll ^^

AronaDaal
29-02-2012, 21:48
Hallo zusammen,
ich sitze hier gerade vor dem gleichen/ähnlichen Problem.
Folgendes Beispiel funktioniert im ersten Fall wunderbar: Die Grafik ist auf der gleichen Höhe wie der Text. Im zweiten Fall ist da ein kleiner Versatz drin.

Kann mich bitte jemand mal kurz aufklären, wieso das so ist?
Danke, aronadaal


\documentclass[ngerman,10pt,a4paper,portrait, parskip=full,pdftex]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{wrapfig}
\usepackage{blindtext}

\begin{document}
\begin{wrapfigure}[7]{l}{5.2cm}%
\centering%
\rule{5cm}{2cm}%
\caption{Text}
\end{wrapfigure}%
Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text.

\begin{wrapfigure}[7]{l}{5.2cm}%
\centering%
\rule{5cm}{2cm}%
\caption{Text}
\end{wrapfigure}%
Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text.
\end{document}

AronaDaal
29-02-2012, 22:05
so. Ich hab nun intensiv weitergegoogelt. Meistens findet man dann auch irgendwo eine Lösung, wenn man gerade ein Posting abgesetzt hat... :rolleyes:

\intextsep=0pt

Weiß jemand was der Standardwert dieser Variable ist? Ich würde das gerne wieder auf "default" zurücksetzen, wenn ich fertig bin...



\documentclass[ngerman,10pt,a4paper,portrait, parskip=full,pdftex]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{wrapfig}
\usepackage{blindtext}

\intextsep=0pt

\begin{document}
\begin{wrapfigure}[7]{l}{5.2cm}%
\centering%
\rule{5cm}{2cm}%
\caption{Text}
\end{wrapfigure}%
Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text.

\begin{wrapfigure}[7]{l}{5.2cm}%
\centering%
\rule{5cm}{2cm}%
\caption{Text}
\end{wrapfigure}%
Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text. Hier kommt ganz viel Text.
\end{document}

Sepp99
29-02-2012, 22:09
Vielleicht nicht die optimalste Lösung:

\documentclass[parskip=half]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{wrapfig}


%% [number of narrow lines] {placement} [overhang] {width of figure}
\begin{document}
\blindtext. Und hier noch ein wenig Text.
\begin{wrapfigure}[5]{l}{2.2cm}%
\vspace{-\baselineskip}
\centering%
\rule{2cm}{2cm}%
\end{wrapfigure}%
Ein bisschen test text der n icht von blindtext generiert wurde da das glaube
ich einen kleinen unterschied macht wo man denn letztendlich dann die
wrapfigure umgebung platziert. man kann sie gleich am anfang setzen, noch bevor
man etwas geschrieben hat, oder man setzt sie nachdem man bereits ein paaar
zeilen geschrieben hat.
mal sehen was das ausmacht. ausserdem kann es helfen
die anzahl der gekuerzten zeilen mit anzugeben, da stolpet manchmal der
algorithmus. hier habe ich fuernf gekuerzte zeilen angegeben und es scheint
besser zu funktionieren.


\blindtext
\begin{figure}[htbp]
\centering
\rule{2cm}{2cm}
\end{figure}
\blindtext

\end{document}

Siehe Anhang.
Gruß, Sepp.-

thorsten_1
06-03-2012, 16:26
Ich habe es jetzt mit einem negativen vspace gelöst. Bin damit eigentlich recht zufrieden. Ein Problem habe ich allerdings noch:
Mit dem aktuellen vspace beginnt das Bild immer brav auf Höhe des Textes. Außer wenn das Bild auf einer neuen Seite beginnt. Da ist es dann zu weit oben. Jetzt könnte ich natürlich einfach den vspace weglassen, da ich die komplette wrapfigure-Umgebung aber via Makro einfüge, möchte ich das aber dynamisch lösen. Gibt es da eine Möglichkeit?
Also das erste vspace soll nur dann eingefügt werden, wenn es nicht auf einer neuen Seite liegt.

Beispiel zum ausprobieren:


\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{wrapfig}

\begin{document}

\blindtext

\begin{wrapfigure}{L}{2cm}%
\vspace{-12pt}%
\centering
\rule{2cm}{2cm}
\vspace{-20pt}%
\end{wrapfigure}%

\blindtext

\newpage
%\section{t}
\begin{wrapfigure}{L}{2cm}%
\vspace{-12pt}%
\centering
\rule{2cm}{2cm}
\vspace{-20pt}%
\end{wrapfigure}%

\blindtext

\end{document}