PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : too many unprocessed floats...



tt-web
03-03-2008, 08:00
Hallo,
ich weiß, das wurde schon häufiger diskutiert, aber ich habe keine Lösung finden können, die mir geholfen hat.

Zu meinem Problem:
Im Anhang meiner Diplomarbeit sollen einige Bilder von Messkurven auftauchen, die ich auch im Text referenzieren (muss) will.

Hierfür habe ich in meiner anhang.tex folgenden code stehen:


\chapter{Diagramme}
\input{diagramme_corrpot}
\input{diagramme_tafel_1}
\input{diagramme_tafel_2}

Als "Grafikrelevante" Pakete lade ich:


\usepackage{graphicx}
\usepackage{flafter}
\usepackage{float}
\usepackage{threeparttable}
\usepackage{subfig}

Die Grafiken in "diagramme_tafel_1" binde ich mittels minipages ein:


\begin{figure}[h]
\begin{minipage}[t]{6cm}
\includegraphics[width=6cm]{figures/1/001_tafel}
\caption{testcaptiontext}
\label{ref:bild1}
\end{minipage}
\hspace{1cm}
\begin{minipage}[t]{6cm}
\includegraphics[width=6cm]{figures/1/002_tafel}
\caption{testcaptiontext2}
\label{ref:bild2}
\end{minipage}
\end{figure}
%
\vspace{0.5 cm}
%

Hierdurch erreiche ich, dass ich immer zwei Grafiken nebeneinander mit 1cm Abstand bekomme, danach füge ich mit \vspace{0.5} etwas Zeilenabstand ein, um alles nicht zusammenzuquetschen. Nach dem \vspace kommt das obige Konstrukt wieder zum Einsatz. So kann ich bis zu 6 Bilder untereinander platzieren.

Sowohl die erste als auch die zweite Seite in diesem Stil gehen ohne Probleme, beide zusammen ergeben die Fehlermeldung "too many unprocessed floats".

Was kann ich hier tun?

L.G. Thomas

localghost
03-03-2008, 08:22
! LaTeX Error: Too many unprocessed floats.
Du hast wahrscheinlich zu viele Bilder in zu dichter Reihenfolge definiert, bevor diese auf den folgenden Seiten ausgegeben werden konnten. Ordne die letzten Definitionen weiter hinten im Text an. Der Fehler kann aber auch dadurch verursacht worden sein, dass ein Bild nicht auf der normalen Textseite untergebracht werden kann. Ein solches Bild wird auf einer eigenen Seite ausgegeben, entweder am Ende des Textes oder nach einem \clearpage- oder \cleardoublepage-Befehl. Da kein Bild vor einem vorher definierten Bild ausgegeben wird, kann so die Ausgabe aller Bilder bis zum Ende des Textes blockiert sein. Mit \clearpage oder \cleardoublepage kann die Ausgabe eines solchen blockierenden Bildes erzwungen werden. Gleiches gilt äquivalent für Tabellen.

tt-web
03-03-2008, 08:38
Hallo,
da es an der Grafikgröße (-> Unterbringung auf der Seitenbreite) nicht lag habe ich mir die Definitionen noch mal genau angeschaut. Ich hatte die Floatoption [h] benutzt, die von Latex in [ht] geändert wurde. Dadurch sind die Platzierungsprobleme entstanden. Ich konnte es mit der Option [H], also explizites "hier" beseitigen.

Danke für den Denkanstoß

voss
03-03-2008, 08:47
Hallo,
da es an der Grafikgröße (-> Unterbringung auf der Seitenbreite) nicht lag habe ich mir die Definitionen noch mal genau angeschaut. Ich hatte die Floatoption [h] benutzt, die von Latex in [ht] geändert wurde. Dadurch sind die Platzierungsprobleme entstanden. Ich konnte es mit der Option [H], also explizites "hier" beseitigen.


das ist aber die völlig falsche Lösung!

Herbert

localghost
03-03-2008, 08:59
Vielleicht solltest Du nicht gleich die Brechstange rausholen. Versuche es erstmal mit einem zusätzlichen Parameter für die Positionierung.

\begin{figure][!ht]
...
\end{figure}
Die Wirkung des Ausrufezeichens wird in jeder guten Literatur über LaTeX erklärt. Dazu ist sicher auch etwas in den l2picfaq (http://dante.ctan.org/CTAN/help/Catalogue/entries/l2picfaq.html) nachzulesen.


MfG
Thorsten¹

voss
03-03-2008, 09:08
Vielleicht solltest Du nicht gleich die Brechstange rausholen. Versuche es erstmal mit einem zusätzlichen Parameter für die Positionierung.

\begin{figure][!ht]
...
\end{figure}
Die Wirkung des Ausrufezeichens wird in jeder guten Literatur über LaTeX erklärt. Dazu ist sicher auch etwas in den l2picfaq (http://dante.ctan.org/CTAN/help/Catalogue/entries/l2picfaq.html) nachzulesen.


Er einfach zuviele Gleitungebungen in einem Kapitel/Abschnitt. Da hilft dann auch
[!htb] nicht. Das Paket morefloats kann hier helfen oder eben alternativ zwischendurch
ein \clearpage, womit alle bis dahin aufgelaufenen Gleitumgebungen ausgegeben
werden.

Herbert

tt-web
03-03-2008, 09:47
Er einfach zuviele Gleitungebungen in einem Kapitel/Abschnitt. Da hilft dann auch
[!htb] nicht. Das Paket morefloats kann hier helfen oder eben alternativ zwischendurch
ein \clearpage, womit alle bis dahin aufgelaufenen Gleitumgebungen ausgegeben
werden.

Herbert

...Stimmt leider, aber ich kann es auch nicht ändern. Im Anhang werden nun mal die ganzen Abbildungen der Reihe nach aufgelistet. Kommentare (zur Erzeugung von Text, der umfliessen kann) sind nicht erwünscht und wären hier auch völlig fehl am Platz. Die Variante mit \clearpage hat nicht weitergeholfen. Das Paket "morefloats" werde ich mir anschauen.

Sicher ist [H] eine Brechstange, die ich gerne vermeiden würde...
Gruß Thomas

tt-web
03-03-2008, 09:50
...morefloats bringt nichts, da ich auch mehr als 36 Grafiken einfüge...
Das Problem wird quasi nur nach weiter hinten verlagert

Schade

Gruß Thomas

voss
03-03-2008, 09:55
...Stimmt leider, aber ich kann es auch nicht ändern. Im Anhang werden nun mal die ganzen Abbildungen der Reihe nach aufgelistet. Kommentare (zur Erzeugung von Text, der umfliessen kann) sind nicht erwünscht und wären hier auch völlig fehl am Platz. Die Variante mit \clearpage hat nicht weitergeholfen. Das Paket "morefloats" werde ich mir anschauen.


Was benutzt du denn Gleitumgebungen, wenn du sie einfach hintereinander
auflistest??
BEnutze dann einfach


\usepackage{caption}
...
\bgroup
\includegraphics{...}
\captionof{figure}{...}
\egroup

oder schreibe dir dafür ein eigenes Makro zur Vereinfachung.

Herbert

tt-web
04-03-2008, 10:34
Was benutzt du denn Gleitumgebungen, wenn du sie einfach hintereinander
auflistest??
BEnutze dann einfach


\usepackage{caption}
...
\bgroup
\includegraphics{...}
\captionof{figure}{...}
\egroup

oder schreibe dir dafür ein eigenes Makro zur Vereinfachung.

Herbert

Nun ja, ich habe Floatumgebungen benutzt, weil ich diese als einzige Möglichkeit gesehen habe meine Grafiken unterzubringen. Die obige Lösung ist natürlich um einiges eleganter. Danke für diesen Hinweis!

Ich arbeite zwar schon lange mit LaTex, aber mit jedem neuen Problem steht man wieder irgendwie als Anfänger da :-)

Gruß thomas

Mütze
21-04-2008, 08:08
Hallo zusammen,

ich arbeite auch schon ein paar Jahre mit LateX, aber der Trick war mir zugegebenermaßen auch neu :confused:

Ich hatte im Prinzip das gleiche Problem wie tt-web und habe das jetzt auch mit den \bgroup etc.-Befehlen gelöst. Jetzt habe ich aber ein neues Problem: Ich bekomme manchmal Seitenumbrüche zwischen den Bildern und den Bildunterschriften. Kann man das irgenwie generell abstellen oder muss ich da manuell mit \newpage ran?

Mütze

voss
21-04-2008, 08:25
Hallo zusammen,

ich arbeite auch schon ein paar Jahre mit LateX, aber der Trick war mir zugegebenermaßen auch neu :confused:

Ich hatte im Prinzip das gleiche Problem wie tt-web und habe das jetzt auch mit den \bgroup etc.-Befehlen gelöst. Jetzt habe ich aber ein neues Problem: Ich bekomme manchmal Seitenumbrüche zwischen den Bildern und den Bildunterschriften. Kann man das irgenwie generell abstellen oder muss ich da manuell mit \newpage ran?



\newenvironment{Bild}
{\par\noindent\minipage{\textwidth}\centering}
{\endminipage}
...
\begin{Bild}
\includegraphics{Abbildung}
\captionof{figure}{...}
\end{Bild}

Herbert

Mütze
21-04-2008, 09:34
Das ging ja zügig, vielen Dank.

Mit der Minipage-Umgebung klappt das jetzt auch. Sieht leider nicht ganz so gut aus, als wenn man das mit Floats macht, aber dafür läuft es sehr stabil.

Eine Möglichkeit, alle vorkommenden Bilder gleichmäßig auf die Seite zu verteilen, bietet TeX nicht, oder?

Mütze

voss
21-04-2008, 09:41
Das ging ja zügig, vielen Dank.

Mit der Minipage-Umgebung klappt das jetzt auch. Sieht leider nicht ganz so gut aus, als wenn man das mit Floats macht, aber dafür läuft es sehr stabil.

Eine Möglichkeit, alle vorkommenden Bilder gleichmäßig auf die Seite zu verteilen, bietet TeX nicht, oder?


was heißt "gleichmäßig"?

Herbert

Mütze
21-04-2008, 11:11
OK, das war wahrscheinlich wirklich nicht verständlich formuliert :o

Ich versuch's mal andersrum und beschreibe den Ist-Zustand: Wenn ich mehrere Bilder auf einer Seite habe, dann werden im Moment an der Oberseite ausgerichtet (Ich habe mal eine Seite hochgeladen, die das illustriert.) Würde ich die gleiche Seite mit Floats realisieren, dann würde TeX vor dem ersten Bild und auch zwischen den Bildern etwas mehr Platz lassen. Das führt dann dazu, dass die beiden Bilder die ganze Seite ausfüllen und sieht insgesamt sehr viel besser aus, wie ich finde, vor allem, wenn man mehrere Seiten nebeneinander hat.

Vielen Dank, dass Du Dir soviel Zeit nimmst!
Mütze

voss
21-04-2008, 12:55
OK, das war wahrscheinlich wirklich nicht verständlich formuliert :o

Ich versuch's mal andersrum und beschreibe den Ist-Zustand: Wenn ich mehrere Bilder auf einer Seite habe, dann werden im Moment an der Oberseite ausgerichtet (Ich habe mal eine Seite hochgeladen, die das illustriert.) Würde ich die gleiche Seite mit Floats realisieren, dann würde TeX vor dem ersten Bild und auch zwischen den Bildern etwas mehr Platz lassen. Das führt dann dazu, dass die beiden Bilder die ganze Seite ausfüllen und sieht insgesamt sehr viel besser aus, wie ich finde, vor allem, wenn man mehrere Seiten nebeneinander hat.


Versuche mal

newenvironment{Bild}
{\par\raggedbottom\null\vfill\noindent\minipage{\t extwidth}\centering}
{\endminipage\par\vfill\vfill}

Herbert

Mütze
21-04-2008, 16:58
Ich bin beeindruckt :eek:! Genauso hatte ich mir's gedacht. Vielen Dank!

HoshiPro
10-03-2011, 23:34
Hallo,
ich weiß, dass das Thema schon vor einiger Zeit begraben wurde, da es so gut passt, würde ich es aber trotzdem gern noch mal ausgraben.

Ich hatte das gleiche Problem und habe den vorgeschlagenen Code ausprobiert. Hat so nicht ganz funktioniert und ich musste ein paar Optionen raus nehmen (vielleicht fehlen mir die Pakete):



\newenvironment{Bild}
{\par\raggedbottom\null\noindent\minipage{\textwid th}\centering}
{\endminipage\vspace{0.7cm}}


Funktioniert soweit ganz gut, allerdings werden die Bilder nicht mehr so schön positioniert. Die Bilder erscheinen direkt an der Stelle, wo ich sie im Code habe, was teilweise zu sehr viel freiem Platz auf den Seiten führt.

Nun meine Frage, kann man das noch irgendwie so ändern, dass das mit der Platzierung ähnlich wie bei der Latex figure funktioniert? War das bei dem ursprünglichen Code vielleicht sogar so vorgesehen?

Ich würde mich sehr über eine rasche Antwort freuen, da das meine Diplomarbeit betrifft.

Danke schon mal im Voraus!

rstuby
11-03-2011, 06:13
Genau, das war so vorgesehen. Diese Lösung war extra für Leute, die keine Gleitungebung wollen/brauchen, weil sie alle Bilder gebündelt angeben wollen oder das Bild an einer bestimmten Stelle fest verankern.
Falls du nicht zu dieser Gruppe gehörst, was stört dich dann an der figure-Ungebung? Da lässt sich vielleicht auch was machen, aber dazu müsste man wissen, was du genau willst.

HoshiPro
11-03-2011, 12:40
Sowohl die erste als auch die zweite Seite in diesem Stil gehen ohne Probleme, beide zusammen ergeben die Fehlermeldung "too many unprocessed floats".

Was kann ich hier tun?

L.G. Thomas

Ich hatte genau die gleiche Fehlermeldung. Ich konnte einfach nicht mehr Bilder einfügen. Dabei war aber egal, welches Bild ich auskommentiert habe und an welcher Stelle, aber mehr Bilder gingen einfach nicht, deshalb bin ich auf diese Option umgestiegen.

Habe ich vielleicht was falsch verstanden? Bisher hatte ich verwendet:



\begin{figure}[btp]
\centering
\includegraphics[width=6.5024cm]{....png}
\caption{...}
\label{...}
\end{figure}



Eigentlich war ich ja soweit zufrieden, außer dass ich diese Fehlermeldung bekommen habe und einfach nicht mehr Bilder einfügen konnte.

Danke schon mal für die schnelle Antwort!

rstuby
11-03-2011, 12:53
Hast du schon ausprobiert, mal \clearpage dazwischen zu setzen, damit LaTeX eine freie Seite hat, wo es die angestauten Gleitumgebungen ausgeben kann?
Oder das Paket morefloats?
Das wurde ja in diesem Thread am Anfang auch beides vorgeschlagen, bevor klar war, dass es dem eigentlichen Themensteller nicht ums Gleiten ging und man die Bilder bei ihm ruhig "festsetzen" durfte.

HoshiPro
11-03-2011, 14:52
Tut mir Leid, mir hat da wohl etwas das Verständnis gefehlt. Mit \usepackage{morefloats} funktioniert es. Ich schreibe sonst nicht so voreilig und das ist überhaupt das erste Mal, dass ich eine Frage in einem Forum stelle. Ich hoffe ihr seht mir diese Unachtsamkeit deshalb nochmal nach.

Die schnellen Antworten muss ich auf jeden Fall sehr loben!

Warum ist es eigentlich nötig das Paket morefloats zu laden? Das sollte doch eigentlich so funktionieren oder mache ich etwas Unschönes?

Also auf jeden Fall vielen Dank noch mal!

rstuby
11-03-2011, 14:55
Du benutzt einfach so viele Gleitumgebungen, dass LaTeX nicht mehr weiß, wo es die alle hinpacken soll. Wenn soundsoviele Gleitumgebunben angestaut und noch nicht verarbeitet sind, kommt der Fehler. Das Paket erhöht diese Zahl. Falls ich das richtig verstanden habe.