Absatz nach Abbildung

Tabellen und Grafiken erstellen und anordnen


mischl
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Fr 12. Okt 2012, 15:22

Absatz nach Abbildung

Beitrag von mischl »

Hallo Leute,
ich bin über folgendes Problem gestoßen, das ich bei Google und Co nicht befridigend beantwortet fand. Wenn ich folgende Situation habe
\documentclass{scrbook}
\usepackage{graphicx}

\begin{document}
Text Text Text Text Text.

\begin{figure}
...
\end{figure}
Bla Bla Bla Bla Bla Bla Bla Bla.
\end{document}
Dann ergibt sich der Output

Text Text Text Text Text.
[Abbildung]
Bla Bla Bla Bla
Bla Bla Bla Bla

Das ist ja ganz nett solange die Abbildung wiklich da ist. Ist aber das Gleitobjekt irgendwo anders, dann habe ich nicht nur einen Absatz (was auch so sein sollte) sondern auch eine Leerzeile (die ich nicht möchte). Also:

Text Text Text Text Text.

Bla Bla Bla Bla
Bla Bla Bla Bla .
Wenn ich jetzt auch noch im Code die Leerzeile zwischen dem Text und \begin{figure} lösche, d.h.
Text Text Text Text Text.
\begin{figure}
...
\end{figure}
Bla Bla Bla Bla Bla Bla Bla Bla.
Dann habe ich gar keinen Absatz mehr:

Text Text Text Text Text. Bla Bla Bla Bla
Bla Bla Bla Bla.

Das soll aber auch nicht sein. Wie mache ich es jetzt also, dass bei einem Gleitobjakt (Abbildung) zwar ein Absatz entsteht aber keine Leerzeile eingefügt wird?
Ich habe diese Frage in keinem anderen Forum gestellt.

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Dein Beispiel spiegelt das von dir beschriebene Verhalten nicht wieder. Solltest du irgendwo den parskip ändern wäre das eine Möglichkeit. Das beträfe allerdings auch alle anderen Absätze. Also:
\documentclass[parskip=full]{scrbook}
\usepackage[demo]{graphicx}

\begin{document}
Erster Absatz.

\begin{figure}[h]%
\includegraphics{hallo}%
\end{figure}
Absatz nach einem Bild ohne zusätzlichen Abstand.

Absatz ohne Bild mit zusätzlichen Abstand.
\end{document} 

Gast

Beitrag von Gast »

Im Prinzip gehört der Code von Gleitobjekten zwischen Absätze. D.h. Leerzeile davor und danach. Gleitobjekte sind in sich abgeschlossene, vom Textfluss getrennte Objekte, es macht keinen Sinn, sie in einen Absatz zu stecken.

Abgesehen davon, kann ich dein Problem nicht nachvollziehen. Es ist aber möglich, dass der Absatzabstand aus anderen Gründen gedehnt wird, z.B. um damit der Rand unten nicht flattert.

Ulrike Fischer
www.troubleshooting-tex.de

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Ulrike Fischer hat geschrieben:Im Prinzip gehört der Code von Gleitobjekten zwischen Absätze. D.h. Leerzeile davor und danach.
Das ist mir neu, aber ich lerne ja immer gerne dazu. Macht es denn einen Unterschied, ob ich eine Leerzeile davor, dahinter oder beides mache, außer die Lesbarkeit des Codes?

Gast

Beitrag von Gast »

sudo hat geschrieben:
Ulrike Fischer hat geschrieben:Im Prinzip gehört der Code von Gleitobjekten zwischen Absätze. D.h. Leerzeile davor und danach.
Das ist mir neu, aber ich lerne ja immer gerne dazu. Macht es denn einen Unterschied, ob ich eine Leerzeile davor, dahinter oder beides mache, außer die Lesbarkeit des Codes?
Es ging mir nicht um irgendwelche Auswirkungen/Nebeneffekte. Vom Code her sollte es egal sein, die Lesbarkeit ist mit mehr Leerzeilen natürlich besser. Aber am Wichtigsten ist, dass man Gleitobjekte nicht als Teil des laufenden Absatzes ansieht, sonst ist man hinterher verärgert, weil sie woanders sind. Man platziert Gleitobjekte immer nur "irgendwo hier".

Ulrike Fischer
www.troubleshooting-tex.de

mischl
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Fr 12. Okt 2012, 15:22

Beitrag von mischl »

Hm, ich bin mir gerade nicht so ganz sicher wo ich mich undeutlich ausgedrückt habe.
sudo hat geschrieben:Dein Beispiel spiegelt das von dir beschriebene Verhalten nicht wieder. Solltest du irgendwo den parskip ändern wäre das eine Möglichkeit. Das beträfe allerdings auch alle anderen Absätze. Also:
\documentclass[parskip=full]{scrbook}
\usepackage[demo]{graphicx}

\begin{document}
Erster Absatz.

\begin{figure}[h]%
\includegraphics{hallo}%
\end{figure}
Absatz nach einem Bild ohne zusätzlichen Abstand.

Absatz ohne Bild mit zusätzlichen Abstand.
\end{document} 
Bei diesem Besipiel sieht es natürlich gut aus, da die Abbildung genau zwischen den Absätzen platziert wird. Aber der Sinn der Gleitobjekte ist ja, dass diese auch wo anders plaziert werden können. Dann sind natürlich die beiden Absätze immer noch da, aber eben mit einer Leerzeile dazwischen, die ich nicht möchte.
Anonymous hat geschrieben:Im Prinzip gehört der Code von Gleitobjekten zwischen Absätze. D.h. Leerzeile davor und danach. Gleitobjekte sind in sich abgeschlossene, vom Textfluss getrennte Objekte, es macht keinen Sinn, sie in einen Absatz zu stecken.
Das sehe ich genauso. Allerdings sollten die Absätze nicht durch eine Leerzeile getrennt sein. Geanu dies passier ja auch wenn ich eine Leerzeile im Code mache (ohne eine Option für "parskip").
Anonymous hat geschrieben:Es ging mir nicht um irgendwelche Auswirkungen/Nebeneffekte. Vom Code her sollte es egal sein, die Lesbarkeit ist mit mehr Leerzeilen natürlich besser. Aber am Wichtigsten ist, dass man Gleitobjekte nicht als Teil des laufenden Absatzes ansieht, sonst ist man hinterher verärgert, weil sie woanders sind. Man platziert Gleitobjekte immer nur "irgendwo hier".
Dem muss ich widersprechen. Es macht einen Unterschied (s.o.).

Gast

Beitrag von Gast »

mischl hat geschrieben: Dem muss ich widersprechen. Es macht einen Unterschied (s.o.).
Es ist natürlich ein Unterschied zwischen "kein Absatz" (keine Leerzeilen) und "ein Absatz" (Leerzeilen vor und/oder nach der figure-Umgebung). Wir haben nur diskutiert, ob ein oder zwei Leerzeilen einen Unterschied macht.

Abgesehen davon: Wie sowohl ich als auch sudo angemerkt haben, ist in deinem Beispiel kein Abstand zu sehen. Mach ein echtes Beispiel, das dein Problem wirklich demonstriert. Ersetze falls nötig Bilder durch \rule{..}{..}.

Ulrike Fischer
www.troubleshooting-tex.de

SqilliS
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: Di 13. Nov 2012, 12:32

Beitrag von SqilliS »

Ich habe deine Frage nicht ganz genau verstanden, aber hier einige Ansätze, die dir vllt. helfen.

Möglichkeit 1 (ideal): Bildposition unabhängig vom Text machen. Und zwar durch Referenzieren. Sprich das Bild mit einem "\label{Bildxyz}" versehen und im Text mit "siehe Bild~\ref{Bildxyz}" darauf verweisen.
\begin{figure}
	\centering
		\includegraphics[width=1.00\textwidth]{IrgendeinBild}
	\caption{Testbeschriftung}
	\label{fig:IrgendeinBild}
\end{figure}

Möglichkeit 2 (etwas unsauber, aber oft nützlich): Paket
float einbinden und das automatische Anordnen mit "[H]" verhindern:
\begin{figure}[H]
	\centering
		\includegraphics[width=1.00\textwidth]{IrgendeinBild}
	\caption{Testbeschriftung}
	\label{fig:IrgendeinBild}
\end{figure}

Möglichkeit 3: Absatzabstand "löschen"
Absatz1

\vspace{-\parskip}
Absatz2 ohne Zwischenraum zu Absatz1
VG SqilliS

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

SqilliS hat geschrieben:

Möglichkeit 2 (etwas unsauber, aber oft nützlich): Paket
float einbinden und das automatische Anordnen mit "[H]" verhindern:
\begin{figure}[H]
	\centering
		\includegraphics[width=1.00\textwidth]{IrgendeinBild}
	\caption{Testbeschriftung}
	\label{fig:IrgendeinBild}
\end{figure}
Brrr... Warum sollte man denn etwas in ein Gleitobjekt setzten, wenn man gar nicht will, dass es gleitet? Da kann man das Gleitobjekt einfach weglassen.
SqilliS hat geschrieben: Möglichkeit 3: Absatzabstand "löschen"
Absatz1

\vspace{-\parskip}
Absatz2 ohne Zwischenraum zu Absatz1
VG SqilliS
Also bitte das ist ja furchtbar. Außerdem mach das mal bei 500 Abbildungen. Gleitobjekte werden gemäß den eingestellten Parametern an den Text herangsetzt. Die Längen die diese Größen speichern kann man in layouts nachlesen.
texdoc layouts
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


Antworten