PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zusammenrutschen von Absätzen verhindern



klinsel
17-06-2008, 11:34
Ich habe z.B. folgende Struktur:


Absatz

figure[ht]

Absatz

Durch die Definition [ht] kann es ja passieren, dass die Abbildung auf die nächste Seite rutscht. Wie verhindere ich in diesem Fall, dass der zweite Absatz an den ersten Absatz anschließt. Im Fall, dass die Grafik jedoch zwischen den beiden Absätzen platziert wird, soll kein "übergroßer" Abstand zwischen erstem Absatz und der Grafik entstehen.

aakaasha
17-06-2008, 11:56
Wie verhindere ich in diesem Fall, dass der zweite Absatz an den ersten Absatz anschließt.

Wie soll man das verstehen? Natürlich schließt der zweite Absatz an den ersten an! Was soll er denn sonst machen? :D

Wenn du die Graphik unbedingt dort haben willst, verwende das placeins-Paket.

MfG Florian

Sabrina.Dankers
17-06-2008, 12:04
Wenn ich das hier richtig sehe, dann sind dort keine Leerzeilen zwischen der Abbildung und dem Text. Mach nach dem Bild eine Leerzeile, damit der nachfolgende Text auch wirklich ein Absatz ist.

Stefan_K
17-06-2008, 12:22
Hallo klinsel,

bezüglich Einbindung von Bildern lohnt der Blick in das LaTeX Bilder-HowTo (http://www.ctan.org/tex-archive/info/l2picfaq/german/l2picfaq.pdf), insbesondere in Abschnitt 3.4, darin werden mehrere Möglichkeiten gezeigt, wie man das Gleiten von Bildumgebungen beeinflussen kann.

Viele Grüße,

Stefan

klinsel
17-06-2008, 13:12
wrapfig oder picins erscheinen mir nicht das richtige zu sein.

Ich hätte nur gerne einen newline-Befehl, der nur dann ausgeführt wird, wenn kein Gleitobjekt auf ihn folgt.

Natürlich könnte ich einfach jeden Absatz mit "\\" abschließen, aber ich finde die Abstände sind dann zu groß. Das stört zwar nicht vor Überschriften, bei Tabellen und Bildern jedoch schon.

Sabrina.Dankers
17-06-2008, 13:17
Zeig mal die Ausgabe, die du nicht haben willst.

klinsel
17-06-2008, 13:37
Beispiel:


Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1.

Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2.


Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1.
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2.

Beispiel 1 stellt es dar wie ich es mir wünsche (falls die Grafik, die im latex-code zwischen den beiden Absätzen mit [ht] definiert ist, auf die nächste Seite rutscht). Beispiel 2 ist das was derzeit passiert wenn die Grafik von latex verschoben wird.

Ich hoffe das ist verständlich.

Stefan_K
17-06-2008, 13:43
Hallo,

dann verwende \parskip (http://www.weinelt.de/latex/parskip.html) bzw. die entsprechende Option an die Dokumentklasse (parskip, halfparskip).

Stefan

Sabrina.Dankers
17-06-2008, 13:47
Es ist wie Stefan sagt. Du hast wohl nur die Absatzeinrückung abgestellt, aber keinen Abstand definiert. Wie erzeugst du denn sonst Absätze wie du sie wünscht?

klinsel
17-06-2008, 14:01
\parskip werde ich mir ansehen. Ich habe \parindent=0pt gesetzt.

Bisher habe ich es immer so im latex-code eingetippt, wenn die einzelnen Absätze zusammenhängen sollten:


Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1.\\
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2.

Und so, wenn sie durch eine Leerzeile getrennt sein sollen:


Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1.\\

Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2.

Nur jetzt ist eben das "Schönheits-Problem" bei Kombination mit Bildern oder Tabellen dazugekommen.

Donalduck
17-06-2008, 14:06
Das is aber keine schöne Lösung... \\ benutzt man normalerweise nicht, sondern macht nur eine leere Zeile.

Sabrina.Dankers
17-06-2008, 14:07
Absätze niemals durch \\. Wenn dann immer durch \par oder ne Leerzeile. Das hat die gleiche Bedeutung. Du verwechselst da Absätze und Zeilenumbrüche. \\ macht einen Zeilenumbruch, \par dagegen einen Absatz. Das ist etwas, was fast alle, die mit Word o.ä. Arbeiten schreiben falsch machen. Auch da soll man eine Zeile nie mit der Enter-Taste was dem \\ entspricht beenden. Gehört zu den 7-Word-Totsünden, wie sie unser "neue Medien"-Prof nennt.

klinsel
17-06-2008, 14:13
Na da habe ich mich wohl mit dem erstbesten das funktioniert hat zufrieden gegeben. In den meisten Fällen sollte aber ein \\ bei mir passen.
Also kann ich \par statt \\ für die Fälle verwenden in denen zwischen den Absätzen eine Grafik ist? Und kann ich davon ausgehen, dass keine Leerzeile eingefügt wird falls die Grafik nicht verschoben wird?

Sabrina.Dankers
17-06-2008, 14:25
Das wird dir so nichts bringen, denn du hast ja Absätze so definiert, dass dort kein Abstand eingefügt wird, sondern lediglich eine neue Zeile angefangen wird. Die Abstände zwischen zwei Absätzen hast du ziemlich geschummelt erzeugt. Du müsstest also entweder die Option parskip verwenden falls du eine KOMA-Klasse nutzt oder das Paket parskip. Dann musst du allerdings deine Schummeleien wieder richten. Und bei Absätzen bei denen du eine Leerzeile willst, die \\ entfernen. Wenn du dann einfach nach jeder Grafik eine Zeile frei lässt vor dem folgenden Text, müsste das stimmen.

klinsel
17-06-2008, 14:28
Oweia, und der Auslöser des ganzen Übels war das "\parindent=0pt"?
Wie muss ich \parskip richtig verwenden? Besser ich stelle das jetzt auf ein schönes System um als wenn die Arbeit noch umfangreicher ist...

Sabrina.Dankers
17-06-2008, 14:31
Welche Dokumentenklasse verwendest du?

klinsel
17-06-2008, 14:38
Derzeit "\documentclass [11pt, a4paper]{report}", was die Vorlage meiner Uni ist.

Im letzten Post von http://www.mrunix.de/forums/archive/index.php/t-40903.html steht auch einiges Interessantes. Jedoch ist mir nicht ganz klar wann nun auch Aufzählungen usw. von diesen Abständen betroffen sind.

Sabrina.Dankers
17-06-2008, 14:47
Dann bindest du einfach nur das Paket parskip ein.

\usepackage{parskip} und sollte dir dann der Abstand nicht ausreichen kannst du ihn mit \setlength\parskip{Abstand} ändern. Ich würde in aber dann in Bezug zu \baselineskip verändern. Also z.B. \setlength\parskip{\baselineskip}

Standard ist soweit ich weiß \setlength\parskip{0.5\baselineskip}

Und dann machst du deine Absätze so:

Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1. % Hier kein \\ sondern nur die leere Zeile

Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2.

Die anderen lässt du so:

Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1.\\
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2.

Es muss dir nur klar sein, dass du damit eigentlich keine Absätze machst, sondern lediglich an der rot markierten Stelle die Zeile umbrichst.

Und dann sollte es eben ausreichen, wenn du nach den Bilder eine Zeile leer lässt.

klinsel
17-06-2008, 14:50
OK, ich werds ausprobieren, vielen Dank.

klinsel
17-06-2008, 17:58
Eine Grundsatzfrage hätte ich noch: Schreibt ihr euren Latexcode hauptsächlich ohne Leerzeilen und wirklich nur dort Leerzeilen, wo auch ein Absatz entstehen soll?
Ich habe bis jetzt immer gerne vor und nach Aufzählungen, Bildern, Tabellen, usw. jeweils eine Leerzeile gemacht, damit der Latexcode nicht so unübersichtlich ist.

EDIT: War eine dumme Frage. Das hängt ja davon ab, wie ichs haben...

Stefan_K
17-06-2008, 18:06
Hallo klinsel,

Leerzeilen setze ich nur, wenn auch klar ist, dass dort ein Absatzumbruch wirkt. Beispielsweise sollte man vor und nach abgesetzten Formeln (equation, align, etc.) keine Leerzeilen setzen, diese Formeln sorgen von sich aus bereits für Abstand.
Wenn Du eine leere Zeile für mehr Übersichtlichkeit haben möchtest, ohne einen Absatzumbruch zu bewirken, kannst Du ein Prozentsymbol an den Beginn der ansonsten leeren Zeile setzen.

Stefan

klinsel
17-06-2008, 18:23
Danke für den Tipp.

klinsel
18-06-2008, 06:54
Ich hätte doch noch 2 Fragen zum Thema parskip:

1) Kann man verhindern, dass auch die Abstände von Überschriften vergrößert werden? Denn irgendwie ist ja nur mehr die halbe seite voll :-)

2) Wenn ich wieder so etwas habe wie


Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1Absatz1Absatz1
Absatz1Absatz1.\\
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2Absatz2
Absatz2Absatz2Absatz2.

kann ich verhindern, dass die letzte Zeile von Absatz1 die Textbreite fast oder sogar ganz ausfüllt? Denn dann erkennt man die logische Trennung der beiden "Absätze" ja nicht mehr...

Sabrina.Dankers
18-06-2008, 07:02
Zu 2) Du könntest \\ durch \par\vspace{-\parskip} ersetzen. Dann ist es ein echter Absatz aber eben ohne Abstand. Um das zu vereinfachen könntest du dir einen eigenen Befehl definieren.

\newcommand{\opar}{\par\vspace{-\parskip}}

Dann musst du nur noch \opar statt \\ schreiben.

klinsel
18-06-2008, 07:29
Zu 2) Du könntest \\ durch \par\vspace{-\parskip} ersetzen. Dann ist es ein echter Absatz aber eben ohne Abstand. Um das zu vereinfachen könntest du dir einen eigenen Befehl definieren.

\newcommand{\opar}{\par\vspace{-\parskip}}

Dann musst du nur noch \opar statt \\ schreiben.

Es scheint dadurch keine Veränderung zu geben.
Irgendwie ja aber auch klar, denn dann müsste Absatz1 ja künstlich mit Zwischenräumen aufgebläht werden, nur damit das letze Wort in der letzen Zeile von Absatz1 in eine neue Zeile rutscht. Das sieht dann ja auch nicht wirklich schön aus.

Sabrina.Dankers
18-06-2008, 07:41
Du hast ja auch nicht geschriebenk, dass es sich dabei um einen Absatz handelt, in dem die letzte Zeile eigentlich ausgefüllt ist. Dann gibt es nur eine Möglichkeit. Schreib den Text so um, dass die letzte Zeile nicht völlig ausgefühlt wird.