PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abstand figure - text



Coccy
22-12-2009, 17:35
Hey,

mein Problem ist bestimmt einfacher, als es mir gerade vorkommt.
Bei meinen Abbildungen ist der Abstand unterhalb der Abbildung größer als oberhalb, obwohl ich mit \intextsep einen festen Abstand vorgegeben habe. Kann es sein, dass \parskip und \intextsep sich an dieser Stelle aufsummieren? Zwischen zwei Abbildungen ist der Abstand nämlich passend :confused:

Ein kleines Beispiel:


\documentclass[a4paper,12pt,draft]{scrreprt}
\usepackage{blindtext}
\usepackage{graphicx,float}
\usepackage{ngerman}
\usepackage{geometry}
\geometry{a4paper,left=22mm,right=13mm,top=12mm,bo ttom=19mm}

\setlength{\footskip}{9mm}
\setlength{\parskip}{12pt}
\setlength{\parindent}{0em}
\setlength{\topskip}{0ex}
\setlength{\floatsep}{12pt}
\setlength{\textfloatsep}{12pt}
\setlength{\intextsep}{12pt}
\renewcommand{\textfraction}{0.1}

\begin{document}
\begin{figure}[H]
\includegraphics[width=\textwidth]{Bild1}
\caption{erste Abbildung}
\end{figure}
%% Hier ist der Abstand zu groß
\blindtext
%% Hier passt der Abstand
\begin{figure}[H]
\includegraphics[width=\textwidth]{Bild2}
\caption{zweite Abbildung}
\end{figure}
\end{document}


Der Abstand ist in der Vorlage, die ich basteln soll, fest vorgegeben, also eine Zeile vor und eine Zeile nach dem Bild freilassen.

Wäre sehr dankbar für eure Hilfe :)

lockstep
22-12-2009, 21:05
Dein Beispiel ist nicht lauffähig.

lockstep

Coccy
12-01-2010, 15:23
Sorry, habe \begin und \end {document} vergessen. Ansonsten klappt das Beispiel aber, wenn man Bilder einfügt

voss
12-01-2010, 16:14
Sorry, habe \begin und \end {document} vergessen. Ansonsten klappt das Beispiel aber, wenn man Bilder einfügt

klappt nicht ... es kann doch nicht so schwierig sein, das selber mal zu
kontrollieren ...


\documentclass[english,parskip]{scrreprt}
\usepackage{caption,babel}
\usepackage{blindtext}
\usepackage[demo]{graphicx}
\begin{document}

\includegraphics[width=\textwidth]{Bild1}
\captionof{figure}{erste Abbildung}

\blindtext

\includegraphics[width=\textwidth]{Bild2}
\caption{zweite Abbildung}

\end{document}


Herbert

sinnfluter
21-02-2010, 23:11
hallo,

ich find dazu passt meine frage:

was is der standardabstand zwischen bildern und tabellen (floats) in latex. Ich benutz die scrreprt-klasse.

Ich brauch das, da ich ein paar bilder in form von minipages habe und ich da keinen abstand zum text hab und den würde ich dann vorher und nachher mit \vspace setzen, aber dazu brauch ich eben die Längen.

vg und danke

tral
21-02-2010, 23:17
\textfloatsep und \floatsep klingen für mich nach den gesuchten Längen...

Christian.

sinnfluter
21-02-2010, 23:23
dankeschön, das wars!!!

lockstep
22-02-2010, 07:49
Nur zur Sicherheit: Auch wenn man nicht im Zweispaltensatz arbeitet, gibt es noch die Länge \intextsep (Abstand vor und nach Gleitobjekten mitten im Text).

lockstep

Coccy
22-02-2010, 18:53
So, nach einer langen Diskussion mit meinem Telefonanbieter bin ich nun wieder online.
Ich bitte vielmals um Entschuldigung für meine nichtlauffähigen Beispiele und gelobe Besserung. Habe das Beispiel geändert und nochmal rüberkopiert und getestet. Ich versichere es läuft.
Mein Problem besteht aber weiterhin. Unter der Abbildungsunterschrift ist der Abstand zum Text einfach zu groß. Mit welchem Befehl kann man den Abstand manipulieren?

LuPi
22-02-2010, 19:37
Eigentlich gibt es für sowas Suchmaschinen, oder? Das erste Ergebnis für die von
tral genannten Abstände lautet bei mir:

http://www.weinelt.de/latex/textfloatsep.html

Coccy
23-02-2010, 09:06
Suchmaschinen finde ich auch sehr sinnvoll und du kannst mir ruhig glauben, bevor ich hier etwas nachfrage, suche ich alles ab. Man traut sich ja bald schon gar nicht mehr, hier ne Frage zu stellen.
Wenn du mal in das Mini-Beispiel ganz oben schaust, kannst du sehen, dass ich \setlength{\textfloatsep}{1em} geschrieben habe. Das sollte also den Abstand auf eine Zeilenhöhe festlegen, oder? Wenn ich mir mein Dokument anschaue, sind das aber locker 2 Zeilen, aber nur unterhalb der Abbildung. Daher meine Vermutung, dass ich parskip und textfloatsep irgendwie falsch benutze.

LuPi
23-02-2010, 10:51
1em ist keine Zeilenhöhe sondern die Breite eines Gedankenstrichs. Für den Zeilenabstand innerhalb eines Absatzes (den Du wahrscheinlich am ehesten meinst) ist \baselineskip zuständig.

Und noch ein Tip für Dein Beispiel: Da ich kein Bild1 und Bild2 zur Verfügung habe, ist es bei so etwas sinnvoll, die Bilder durch Boxen zu ersetzen.

Deine Vermutung, ob sich die Längen addieren, kann ich so leider auch nicht
beantworten. Aber hier bietet sich ein Test mit entsprechend großen Werten für die Parameter (10\baselineskip oder so) an.

Ergänzung: Laut ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0279510.pdf stellt \intextsep *zusätzlichen* Abstand her.

Coccy
23-02-2010, 12:11
Oh echt? :eek: Bei mir steht em = Höhe M. Naja egal, ersetzen wir alles durch 12 pt, das passt immer.
Wenn ich Boxen anstatt Bilder nehme, tritt das Problem nicht auf.
Wenn ich \parskip nicht benutze, passt der Abstand zwischen Bildunterschrift und Text. Aber dann macht er bei den Absätzen im Text wieder blödsinn (das hatte ich schon). Wenn ich die Leerzeile manuell mit \\ anordne, macht er nur manchmal ne Leerzeile.
Ich werde dann wohl den abstand zwischen Bildunterschrift und Text mit vspace korrigieren, solange ich keine elegantere Lösung finde.
Aber vielen Dank für eure Bemühungen und vorallem für eure Geduld.

LuPi
23-02-2010, 12:50
Oh echt? Bei mir steht em = Höhe M.


Aber ich würde doch eher mit dem Zeilenabstand als mit der Zeilenhöhe arbeiten. Ohne das jetzt direkt begründen oder mit einer Quelle belegen zu können.

Das mit den Boxen (etwas ungenau formuliert, ich weiß) war so gemeint:



\documentclass[a4paper,12pt,draft]{scrreprt}
\usepackage{blindtext}
\usepackage{graphicx,float}
\usepackage{ngerman}
\usepackage{geometry}
\geometry{a4paper,left=22mm,right=13mm,top=12mm,bo ttom=19mm}

\setlength{\footskip}{9mm}
% \setlength{\parskip}{1em}
\setlength{\parindent}{0em}
\setlength{\topskip}{0ex}
\setlength{\floatsep}{1em}
\setlength{\textfloatsep}{1em}
\setlength{\intextsep}{1em}

\begin{document}
\begin{figure}[H]
\rule{\linewidth}{3cm}
\caption{erste Abbildung}
\end{figure}
%% Hier ist der Abstand zu groß
\blindtext
%% Hier passt der Abstand
\begin{figure}[H]
\rule{\linewidth}{3cm}
\caption{zweite Abbildung}
\end{figure}
\end{document}




Wenn ich \parskip nicht benutze, passt der Abstand zwischen Bildunterschrift und Text. Aber dann macht er bei den Absätzen im Text wieder blödsinn (das hatte ich schon).


Könntest Du den "Blödsinn" eventuell etwas spezifizieren? Ich habe da zwar eine Idee, weiß aber genaugenommen nicht, was Du meinst.

Da Du mit einer KOMA-Script-Klasse arbeitest, bietet es sich natürlich an, die dort vorhandenen diversen parskip-Klassenoptionen einer Würdigung zu unterziehen. Beim einfachen "parskip" taucht allerdings auch wieder der von Dir beschriebene Effekt auf.

tral
23-02-2010, 14:47
Setz doch einfach \textfloatsep auf 0em. Dann sollte doch alles prima sein?

Christian.

LuPi
23-02-2010, 14:53
Das bringt's hier leider nicht (bestätigt auch ein kurzer Test), da hier \intextsep zuständig ist.

Coccy
23-02-2010, 16:27
Setz doch einfach \textfloatsep auf 0em. Dann sollte doch alles prima sein?
\textfloatsep gilt nut für die Bilder die nicht mit [H] positioniert werden (warum eigentlich?) Naja, lässt man [H] weg, sieht alles toll aus, nur Bilder sind an der falschen Stelle.
Halten wir fest: \textfloatsep und \parsep funktionieren zusammen.
Ich positioniere meistens meine Bilder mit [H] und dann soll angeblich \intextsep zuständig sein.

Jetzt sagst du, LuPi:

Laut ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0279510.pdf stellt \intextsep *zusätzlichen* Abstand her.
Das "zusätzlich" steht in meinen Aufzeichnungen mal wieder nicht, fände ich aber schon wichtig. Aber in deiner Quelle steht das Wort "zusätzlich" auch bei \textfloatsep und das funktioniert zusammen mit \parsep.
:confused: Puh, langsam bin ich echt verwirrt.
Kann es denn an dem [H] liegen?

Könntest Du den "Blödsinn" eventuell etwas spezifizieren? Ich habe da zwar eine Idee, weiß aber genaugenommen nicht, was Du meinst.
Sorry, mit Blödsinn kann man immer nicht so viel anfangen, das stimmt. Also, bei mir trat öfter das Problem auf, dass keine Leerzeile zwischen den Absätzen gemacht wurde, egal wie viele Zeilenumbrüche ich auch eingegeben habe. Da habe ich dann irgendwann mit \parsep die Leerzeile fest definiert und das hat geklappt. Ich fand mich toll :p bis dann die Bilder diese doppelten Zeilenabstände hatten.
Wie meinst du das denn mit den Zeilenabständen, anstelle der Zeilenhöhe? Vielleicht probiere ich das mal?

LuPi
23-02-2010, 16:40
Nur auf die Schnelle zu Deinem letzten Punkt: Im konventionellen Buchsatz (mir gefällt es auch besser) werden Absätze nicht durch vertikale Abstände (schon gar nicht durch Leerzeilen) gekennzeichnet, sondern durch einen kleinen horizontalen Einzug (im Allgemeinen gleich der Zeilenhöhe) der ersten Zeile des folgenden Absatzes. Das hat auch ganz handfeste Gründe, beispielsweise dass man sonst einen neuen Absatz nicht erkennt, wenn zufällig Absatz- und Seitenende zusammenfallen. Insofern ist das, was Du so nett umschrieben hast, eigentlich das normale, von TeX so gewollte, Verhalten.

Zu den Abständen bin ich mit meiner Weisheit jetzt auch am Ende. Aber noch den Hinweis: Wenn Du kein Gleitobjekt möchtest, wieso nutzt Du nicht \captionof (oder hatte ich das schon gesagt?)?

Coccy
23-02-2010, 17:04
\captionof hatte Voss in seinem Beispiel. Das kannte ich noch nicht, aber ich hab das so verstanden, dass das in die Beschriftung eingreift. Macht es das nicht? Was macht es dann?

LuPi
23-02-2010, 18:45
Da würde ich dann doch einmal einen Blick in die entsprechende Doku (Paket oder KOMA-Script) empfehlen. Kurz: Soweit ich weiß - ich nutze es nicht, daher ohne Gewähr - stellt es einen Ersatz für die reguläre caption-Anweisung außerhalb von Gleitumgebungen dar, so dass auch bei Mischen von beiden Versionen (ob das sinnvoll ist, sei dahingestellt) die einheitliche Darstellung und Zählung gewahrt bleibt. [Sollte das Unfug sein, bitte ich um Richtigstellung.]

lockstep
23-02-2010, 19:33
Soweit ich weiß - ich nutze es nicht, daher ohne Gewähr - stellt es einen Ersatz für die reguläre caption-Anweisung außerhalb von Gleitumgebungen dar, so dass auch bei Mischen von beiden Versionen (ob das sinnvoll ist, sei dahingestellt) die einheitliche Darstellung und Zählung gewahrt bleibt. [Sollte das Unfug sein, bitte ich um Richtigstellung.]

Im Prinzip korrekt; zu ergänzen ist allerdings, dass die Nummerierung von echten und nachgestellten Gleitobjekten durcheinander geraten kann (Tabelle 2 - mit captionof erstellt - vor Tabelle 1 in table-Umgebung). Dieses Problem kann mit Hilfe des Pakets perpage beseitigt werden (näheres siehe hier (http://www.tex.ac.uk/cgi-bin/texfaq2html?label=figurehere)).

lockstep

LuPi
24-02-2010, 06:53
Aha. Das scheint dann also das gleiche Problem zu sein wie bei der Mischung von \begin{figure}[H] und \begin{figure}. Hierbei kann es nach meiner Erfahrung auch zu inkonsistenten Numerierungen kommen.

Coccy
24-02-2010, 10:40
Folgender Lösungsvorschlag:


\usepackage{capt-of}
\begin{center}
%\includegraphics[width=1.0\textwidth]{Beispielbild.eps}
\rule{\linewidth}{3cm}
\captionof{figure}{Bildunterschrift}
\label{fig:label}
\end{center}


Abstände vor und nach dem Bild sind gleich (eine Zeile - juhuu)
Außerdem bleibt das Bild, da wo ich will, also 2 Fliegen mit einer Klappe.
Wenn ich jetzt nie wieder Gleitobjekte benutze, sollte Latex mit der Nummerierung klarkommen. Mal schauen, wie lange ich das durchhalte :p