Obwohl ich meine Abbildungen mittels

\begin{figure}[!ht]

abbilde, sind diese Ab und Zu auch am unteren Rand der Seite ausgerichtet. Obendrüber gibts dann noch Text. Warum passiert das? Ein Minimalbeispiel dazu zu stellen wäre gerade der absolute Overkill.

Edit: Ok, hier doch ein Minimalbeispiel:

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{graphicx} % Um Graphiken einzubinden
\usepackage{amsmath,amssymb} % Math. Symbole und sonstiges
\usepackage{algpseudocode} % Für Pseudocodes

\begin{document}
Doch was kann man tun, falls dieser Suchprozess zum Erliegen kommt, und es auch nach einigen Iterationen keine Verbesserungen gibt?\\ Naheliegend wäre wohl der Versuch, den  Algorithmus erneut mit einem anderem initialen Knoten zu starten. Doch selbst mit zufälliger (oder systematischer) Wahl eines solchen initialen Knotens besteht weiterhin die Gefahr, dass die Heuristik immer wieder die gleichen suboptimalen Cliquen liefert. Aus genau diesem Grund werden die Knoten, die häufig in einer Clique auftauchen, bestraft. Dadurch wird  ihnen in zukünftigen Betrachtungen weniger Aufmerksamkeit geschenkt. Wir bezeichnen diese Strafe im Folgenden als \textit{Knotenstrafpunkt} (manchmal auch kürzer: \textit{Knotenstrafe} oder \textit{Strafpunkt}).

Mit Hilfe von Abbildung \ref{DLS-MC} werden wir uns diesen Algorithmus etwas genauer anschauen.

\begin{figure}[!ht]
\begin{algorithmic}[1]
\State \textbf{Eingabe}: Graph $G=(V,E)$; Integer $tcs$, Integer $pd$, Integer $maxSteps$
\State \textbf{Ausgabe}: Clique in $G$ der Größe $tcs$ oder 'failed'
\Function{\textit{DLS-MC}}{$G, tcs, pd, maxSteps$}
\State $numSteps := 0$;
\State $C := \{random(V)\}$;
\State $initPenalties$;
\While{$numSteps<maxSteps$}
\State $(C,v) := expand(G,C)$;
\If{$\left|C\right|=tcs$}
\State \textbf{return }$C$;
\EndIf
\State $C':=C$;
\State $(C,v):=plateauSearch(G,C,C')$;
\While{$N_I(C) \ne \emptyset$}
\State $(C,v):=expand(G,C)$;
\If{$\left|C\right|=tcs$}
\State \textbf{return }$C$;
\EndIf
\State $(C,v):=plateauSearch(G,C,C')$;
\EndWhile
\State $updatePenalties(pd)$;
\If{$pd > 1$}
\State $C:=\{v\}$;
\Else
\State $v:=random(V)$;
\State $C:=C \cup \{v\}$;
\State Entferne alle Knoten aus $C$, die nicht benachbart zu $v$ sind;
\EndIf
\EndWhile
\State \textbf{return} 'failed';
\EndFunction
\end{algorithmic}
\caption{Pseudocode DLS-MC}
\label{DLS-MC}
\end{figure}
\end{document}

gefragt 22 Jun '13, 20:01

Chris311's gravatar image

Chris311
35691114
Akzeptiert-Rate: 0%

bearbeitet 14 Jul '13, 20:37

cgnieder's gravatar image

cgnieder
22.1k253463

2

Dann lass das Ausrufungszeichen weg.

(22 Jun '13, 20:24) Herbert
1

!, h, t, b und p sollte man besser als Platzierungsanweisungen denn als Ausrichtungsanweisungen auffassen. In die top- und die bottom-Bereiche wird eine Gleitumgebung eigentlich nur gesteckt, wenn da genügend Platz ist (entsprechend gesetzter Parameter, die die Größe der Bereiche steuern). Mit ! erlaubst Du aber unter anderem, sie auch dann zu setzen, wenn eigentlich nicht genügend Platz ist. Der bottom-Bereich ist allerdings mit !ht nicht erlaubt und wird auch nicht getestet. Bist Du sicher, dass das mit dieser Spezifikation passiert?

(22 Jun '13, 21:02) cgnieder
1

Das Ausrufungszeichen sagt LaTeX quasi: "Nimm das nich so genau wie sonst, mach irgendwie!" Um es mal ganz profan auszudrücken.

(22 Jun '13, 21:05) Johannes

! heißt, dass alle gesetzten Parameter nicht beachtet werden: http://projekte.dante.de/DanteFAQ/FloatPlatzierung#FloatParameter

(22 Jun '13, 21:07) Herbert

@Herbert hatte das aus latex2e so verstanden, dass Anzahl der Floats und Anteil der Floats (bezogen auf Text) quasi unendlich sein dürfen und TeX damit vollste Freiheit beim Platzieren hat.

(22 Jun '13, 21:15) Johannes

@Johannes: das sind doch die nicht beachteten Parameter.

(22 Jun '13, 21:22) Herbert

@Johannes die maximale Anzahl der Floats z.B. pro Seite oder die Größe des top-Bereichs und einiges mehr wird alles durch Parameter gesteuert. Wenn die alle ignoriert werden, fallen entsprechende Beschränkungen natürlich weg.

(22 Jun '13, 21:23) cgnieder

@Herbert Alles klar, hab jetzt erst verstanden, was du genau meintest. Sorry

(22 Jun '13, 21:24) Johannes
Ergebnis 5 von 8 show 3 more comments

In dem Beispiel ist die Abbildung schlicht entsprechend Option h ausgerichtet. Dass h in diesem Fall am Ende der Seite ist, ist reiner Zufall. Du siehst das sofort, wenn Du nach der Abbildung noch einen winzigen Absatz einfügst, beispielsweise ein simples `Ok', das dann nämlich noch unter der Abbildung eingefügt wird. Das Ausrufezeichen in den Optionen ändert in diesem Fall auch nicht wirklich etwas.

Das Ausrufezeichen sollte im übrigen nur in Ausnahmefällen verwendet werden, weil man damit alle weiteren Einschränkungen für Gleitobjekte beispielsweise bezüglich deren Häufung oder der Mindestmenge an Text, die noch auf der Seite vorhanden sein müssen ohne dass eine reine Gleitumgebungsseite erzeugt wird, abgeschaltet werden. Diese Einschränkungen sind aber durchaus berechtigt. Natürlich kann es aber sinnvoll sein, einzelne dieser Einschränkungen gezielt zu ändern. Daher will ich sie bei dieser Gelegenheit kurz aufführen:

  • \topfraction, Voreinstellung: 0.7 – Anteil einer Seite, der am Anfang einer Seite für t-platzierte Gleitobjekte verwendet werden darf. Der Wert sollte immer kleiner als 1 sein. Änderbar mit \renewcommand{\topfraction}{…}.
  • \bottomfraction, Voreinstellung: 0.3 – Anteil einer Seite, die am Ende der Seite für b-platzierte Gleitobjekte verwendet werden darf. Der Wert sollte immer kleiner als 1 sein, allerdings dürften \topfraction+\bottomfraction zusammen auch größer als 1 sein. Änderbar mit \renewcommand{\bottomfraction}{…}.
  • \textfraction, Voreinstellung: 0.2 — Anteil der Seite, der neben h-, t- und b-platzierten Gleitobjekten min. für Text frei bleiben muss, damit überhaupt noch Text mit auf die Seite kommt und nicht eine reine Gleitobjektseite erstellt wird. Dieser Wert muss größer als 0 sein. Änderbar mit \renewcommand{\textfraction}{…}.
  • \floatpagefraction, Voreinstellung: 0.5 – Eine reine Gleitobjektseite wird erst erstellt, wenn die dabei erzeugte Gleitobjektseite min. zu diesem Anteil gefüllt ist. Änderbar mit \renewcommand{\floatpagefraction}{…}.
  • topnumber, Voreinstellung: 2 – Anzahl der Gleitobjekte, die auf einer Seite maximal t-platziert werden dürften. Änderbar mit \setcounter{topnumber}{…}.
  • bottomnumber, Voreinstellung: 1 – Anzahl der Gleitobjekte, die auf einer Seite maximal b-platziert werden dürfen. Änderbar mit \setcounter{bottomnumber}{…}.
  • totalnumber, Voreinstellung: 3 — Anzahl der Gleitobjekte, die t-, h- und b-platziert zusammen auf einer Seite maximal platziert werden dürfen. Änderbar mit \setcounter{totalnumber}{…}.

Für den zweispaltigen Satz gibt es außerdem:

  • \dbltopfraction, Voreinstellung: 0.7 — Im zweispaltigen Satz der Anteil der Seite, die oben für über beide Spalten gesetzte Gleitobjekte verwendet werden darf. Änderbar mit \renewcommand{\dpltopfraction}{…}.
  • dbltopnumber, Voreinstellung: 2 – Im zweispaltigen Satz die Anzahl an Gleitobjekte, die oben über beide Spalten gesetzt werden darf. Änderbar mit `setcounter{dpltopnumber}'.
  • \dplfloatpagefraction, Voreinstellung: 0.5 – Entspricht im zweispaltigen Satz dem, was im einspaltigen Satz \floatpagefraction ist. Änderbar mit \renewcommand{\dplfloatpagefraction}{…}.

Alle angegebenen Voreinstellungen sind Voreinstellungen des LaTeX-Kerns selbst. Klassen oder Pakete können ggf. andere Voreinstellungen haben.

Zusätzlich interessant könnte \fps@Gleitumgebung sein. In diesem Makro befindet sich die Standard-Platzierungsoption für Gleitumgebung. Will man also beispielsweise Abbildungen in der Regel htbp statt nur tbp (Voreinstellung der Standardklassen und der KOMA-Script-Klassen) platziert haben, dann kann man das über die Dokumentpräambel per

\makeatletter
\renewcommand\fps@figure{htbp}
\makeatother

erreichen und muss keineswegs bei jeder figure-Umgebung die Option [htbp] setzen. Die Änderung in der Präambel hat darüber hinaus den Vorteil, dass man sie auf einen Schlag ändern kann und nicht versehentlich bei der einen oder anderen Abbildung schlicht vergisst.

Eine weitere Eingriffmöglichkeit bieten die Anweisungen \clearpage und \cleardoublepage des LaTeX-Kerns, bzw. die zusätzlichen Anweisungen \cleardoublestandardpage, \cleardoubleoddpage, \cleardoubleevenpage, \cleardoubleoddstandardpage, \cleardoubleevenstandardpage, \cleardoubleemptypage, \cleardoubleoddemptypage, \cleardoubleevenemptypage, \cleardoubleplainpage, \cleardoubleoddplainpage, \cleardoubleevenplainpage, \cleardoublepageusingpagestyle, \cleardoubleoddpageusingpagestyle und \cleardoubleevenpageusingpagestyle der KOMA-Script-Klassen. All diese Anweisungen beginnen nicht nur neue Seiten, sondern geben auch alle noch anhängigen Gleitumgebungen aus. Dazu werden ggf. sogar Gleitumgebungsseiten ausgegeben, wenn diese gegen \floatpagefraction bzw. \dblfloatpagefraction verstoßen. Mit dem Paket placeins kommt noch die Anweisung \FloatBarrier hinzu, die ebenfalls die Ausgabe aller noch anhängigen Gleitumgebungen erzwingt, allerdings keine neue Seite beginnt, falls dies nicht notwendig ist.

Permanenter link

beantwortet 23 Jun '13, 18:56

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 23 Jun '13, 19:06

Wenn du [ht] nimmst, wird natürlich versucht, die Umgebung dort zusetzen, wo sie erscheint, was bei dir bestens klappt. Lass die Option komplett weg, dann hast du deine Abbildung oben. Also:

\begin{figure}
...
\end{figure}

nimmt dann die Standardeinstellungen. Und nebenbei: Beispiele sind nie Overkill.

Permanenter link

beantwortet 23 Jun '13, 13:11

Herbert's gravatar image

Herbert
5.1k34
Akzeptiert-Rate: 31%

bearbeitet 23 Jun '13, 13:12

Ok, in diesem Minimalbeispiel funktioniert das wohl. Aber da sieht man doch ganz schön, dass das Minimalbeispiel unzulänglich ist. In meiner großen Arbeit funktioniert das nämlich nicht. Wenn ich die Optionen einfach nur weglasse, kommt das Bild bei mir auf eine seperate Seite und zwar nur das Bild! D.h. dort wird lustigerweise kein weiterer Text eingefügt. Ich spiele erstmal noch ein bischen mit den Optionen herum und schaue was passiert. Das Problem ist, dass die Optionen für eine Grafik natürlich von den Optionen der Grafiken in unmittelbarer Nähe abhängen.

(23 Jun '13, 13:27) Chris311

Deinen letzten Satz verstehe ich nicht. Ich benutze immer [!htb]

(23 Jun '13, 13:29) Herbert

@Chris311 ohne Optionen werden auch Float-Seiten erlaubt (die p-Spezifikation), also Seiten auf denen außer Gleitumgebungen sonst nichts gesetzt wird.

(23 Jun '13, 13:31) cgnieder

Das gute ist allerdings, dass die Anordnung meiner Abbildungen doch einem Schemata folgt, und zwar dem Folgendem: In meiner Arbeit stehen Abbildungen erst immer an einer Stelle nach ihrer ersten Referenzierung. Ist auf dieser Seite ausreichend Platz, wird die Grafik noch eingefügt (unter der Referenzierung). Ansonsten kommt die Abbildung auf die daran anschließende Seite und wird dort on top eingefügt.

Dieses Schema zieht sich durch meine gesamte Arbeit. Daher macht es zunächst den Eindruck einer Unordnung, obwohl doch eine tiefere Ordnung dahinter steckt.

Findet ihr das ok?

(23 Jun '13, 13:33) Chris311

@Clemens: aber nur, wenn die Abbildung sehr groß ist, sodass zu wenig Text erscheinen würde oder wenn es die letzte im aktuellen Kapitel ist.

(23 Jun '13, 13:34) Herbert

@Chris311: Natürlich, so sollte es sein. Jedenfalls für mich :-)

(23 Jun '13, 13:38) Herbert

Ok, für mich ist es nun ok. Haken wir das Thema ab. Meine Konvention ist nun, dass nur Grafiken stets top sein müssen, während diese Richtlinie für Pseudocode und Tabellen nicht gilt. Allgemein gilt zusätzlich, dass Abbildungen, Tabellen und Pseudocode nur nach ihrer Referenzierung erscheinen dürfen. Dabei habe ich eine Ausnahme gemacht, da es mir optisch mehr zusagt. Naja, die perfekte Lösung wird es wahrscheinlich eh nicht geben, sodass man sich für irgendetwas entscheiden muss.

(23 Jun '13, 14:20) Chris311
Ergebnis 5 von 7 show 2 more comments
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×46
×41
×32

gestellte Frage: 22 Jun '13, 20:01

Frage wurde gesehen: 16,344 Mal

zuletzt geändert: 14 Jul '13, 20:37