dantefaq:floatplatzierung

%META:TOPICINFO{author=“HerbertVoss” date=“1294954274” format=“1.1” version=“1.6”}% %META:TOPICPARENT{name=“Gleitumgebungen”}%

Floatparameter und -platzierung

Das optionale Argument der ,figure`- oder ,table`-Umgebung schränkt die Plazierungsmöglichkeiten auf die angegebenen Orte ein. Mit dem optionalen Argument gibt man also nicht, wie oft fälschlich geglaubt und weiterverbreitet wird, die Plazierung für weitere Orte an. Deshalb nie Plazierungsangaben nur auf [h] einschränken, sondern mindestens einen weiteren Ort mit angeben! Grund: Kann die Abbildung nicht ,h`ier plaziert werden, darf sie nirgendwo anders gesetzt werden und wird nach hinten an das Ende des Kapitels bzw. des Dokuments geschoben. Da LaTeX die Reihenfolge der Abbildungen bzw. der Tafeln nicht verändert, werden alle nachfolgenden Abbildungen bzw. Tafeln mit dieser nicht plazierbaren Abbildung oder Tafel nach hinten verschoben. Genau dasselbe kann passieren, wenn die Plazierungsbeschränkung mit [p] angegeben wird, das Bild kleiner als \floatpagefraction ist und das nächste Bild nicht zusammen mit diesem auf eine Seite paßt. Ebenso bei einer Beschränkung auf [t] und einem Bild, das größer als \topfraction ist, dto. für [b] und \bottomfraction.

Tip: Lassen Sie zu Beginn das optionale Argument der ,figure`- oder ,table`-Umgebung weg - es ist nicht ohne Grund ein optionales Argument dieser Umgebungen! Fügen Sie später für eine Endfassung Ihres Dokuments nur an den Stellen ein optionales Argument mit Plazierungseinschränkungen ein, wenn z.B. eine bestimmte Abbildung oder Tafel auf einer eigenen Seite oder auf einer Seite oben erscheinen sollte.

Weitere Hinweise finden Sie in

In LaTeX werden diese Angaben, die sogenannten ,float placement specifier` für die ,figure`- und ,table`-Umgebungen, in den Makros \<fps@figure> und \<fps@table> abgelegt. Durch die Redefinitionen

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

fügt man noch die ,h`ier-Plazierung hinzu.

Die Standard-LaTeX-Klassen setzen die Default-Plazierungen auf ,tbp`, untersagen also die ,h`ier-Plazierung einer Abbildung bzw. Tafel. Dies ist in den meisten Fällen auch sinnvoll, da Abbildungen und Tafeln nur dazu dienen, die Aussagen im Text durch beispielsweise eine anschaulichere Darstellung oder kompakte Übersicht zu unterstützen. Die Abbildung oder Tafel ist damit nicht integraler Bestandteil des Textes, sondern ein dem Text noch zusätzlich zugeordneter Bestandteil des Dokuments. Daher sollten diese den Text nicht unterbrechen, was eine ,h`ier-Plazierung zweifellos tun würde. Somit ist der Default ,tbp` in den meisten Fällen sinnvoll.

Der Plazierungsalgorithmus von LaTeX erledigt diese Aufgabe eigentlich sehr gut, wenn man einmal selbst durchzuspielen versucht, wohin man selbst unter den gegebenen Bedingungen und Wechselwirkungen eine Abbildung oder eine Tafel hinsetzen bzw. schieben würde. Ist man mit dem Ergebnis dennoch nicht ganz zufrieden, kann man einmal folgendes probieren:

Zuerst sollte man die Plazierungsbeschränkungen an allen ,figure`- und ,table`-Umgebungen entfernen. Anschließend kann man die Parameter des Plazierungsalgorithmus ändern:

Eine oder mehrere Abbildungen kommen erst auf eine eigene Seite, eine sogenannte ,float page`, wenn diese mindestens 60% der Seite einnehmen. Damit gibt es weniger ,float pages`, die nur halbvoll sind. Empfehlenswert ist ein Wert zwischen 50% und 80%, je nachdem wie viele Abbildungen existieren, wie groß und wie unterschiedlich groß diese Abbildungen sind.

\renewcommand{\floatpagefraction}{.6}% vorher: .5 

Von einer Seite muß neben den Abbildungen, die ,h`ere, ,t`op und ,b`ottom plaziert werden, noch mindestens 15% Text erscheinen. Diesen Wert sollte man nicht zu klein wählen, um nicht nur Seiten zu erzeugen, bei denen man den Text suchen muß. Bei vielen Bildern lieber den Wert von \floatpagefraction kleiner wählen. Empfehlenswert ist ein Wert zwischen 10% und 30%.

\renewcommand{\textfraction}{.15} % vorher: .2 

Maximaler Anteil der Seite, die für Abbildungen, die ,t`op bzw. ,b`ottom plaziert werden, verwendet werden darf. Diese Werte sollte man nicht zu groß wählen, bei vielen Abbildungen lieber den Wert von \floatpagefraction kleiner wählen. Insbesondere \bottomfraction sollte man klein halten, da Abbildungen gewöhnlich auf einer Seite oben vermutet werden. Empfehlenswert sind Werte zwischen 50% und 85% für \topfraction und 20% bis 50% für \bottomfraction. Einer dieser beiden Werte sollte stets größer als \floatpagefraction sein! (\topfraction sollte nie auf 1.0, \textfraction nie auf 0.0 gesetzt werden)

\renewcommand{\topfraction}{.8}     % vorher: .7 
\renewcommand{\bottomfraction}{.5}  % vorher: .3 

Maximale Anzahl der Abbildungen und Tafeln, die auf einer Seite ,t`op bzw. ,b`ottom bzw. insgesamt auf der Seite plaziert werden. Hat man viele kleine Abbildungen sollte man diese Werte erhöhen. Will man Abbildungen möglichst auf eine ,float page` setzen, sollte man ,topnumber` und ,bottomnumber` auf 0 setzen und \floatpagefraction bis auf 0.01 erniedrigen.

\setcounter{topnumber}{3} % vorher: 2 
\setcounter{bottomnumber}{1} % vorher: 1 
\setcounter{totalnumber}{5} % vorher: 3 

Im zweispaltigen Textsatz können Abbildungen und Tafeln nur oben auf der Seite plaziert werden, so daß es hierfür nur zwei weitere Parameter gibt, die den Parametern \floatpagefraction und \topfraction für einspaltigen Satz entsprechen. Werden Abbildungen oben plaziert, so können Abbildungen und Tafeln über beide Spalten maximal \dbltopfraction Platz einnehmen. Schließlich gibt \dblfloatpagefraction eine Untergrenze an, ab der erst eine eigene ,float page` probiert wird.

\renewcommand{\dbltopfraction}{.8} % vorher: .7 
\renewcommand{\dblfloatpagefraction}{.6}% vorher: .5 

Nachdem man mit den geänderten Plazierungsparametern ein zufriedenstellendes Ergebnis erzielt hat, kann man durch gezielten Einsatz des optionalen Arguments der ,figure`- bzw. ,table`-Umgebung einzelne ungünstig plazierte Abbildungen und Tafeln entsprechend verschieben. Hierbei sollte man nur die nicht erwünschte Plazierung entfernen, also z.B. [bp] angeben, falls eine ,t`op-Plazierung ungünstig ist.

Die Bedeutung dieser Parameter wird anschaulich in bildlicher Form in dem Artikel ,The layouts package: User manual` (,layman`) von Peter R. Wilson beschrieben. Die für die verwendete Dokumentenklasse geltenden Werte können mit dem zugehörigen LaTeX-Paket ,layouts` angezeigt und einfach testweise geändert werden. ,layouts` zeigt darüberhinaus auch viele weitere für das Layout eines Dokumentes wichtigen Parameter an. | layouts: | macros/latex/contrib/layouts | | layman: | macros/latex/contrib/layouts/layman.tex |

Für die Zentrierung von Float-Objekten sind die internen Längenparameter \@fptop, \@fpsep und \@fpbot verantwortlich. Um die vertikale Zentrierung aufzuheben, ist daher \@fptop im Dokumentkopf oder in einer eigenen Paketdatei auf eine unflexible Länge zu setzen:

\setlength{\@fptop}{0pt} 

(Bitte beachten, dass \@fptop ein interner Parameter ist und außerhalb einer Paketdatei mit \makeatletter/\makeatother geklammert werden muß.) Diese Änderung gilt dann für alle Float-Objekte, also sowohl Abbildungen als auch Tabellen.

Mit dem LaTeX-Paket , flafter `, das Bestandteil jeder LaTeX-Verteilung ist, werden Abbildungen und Tafeln nie vor dem Text plaziert, in dem sie im Dokument angegeben werden. Damit LaTeX sie also nie vor dem ersten Verweis plaziert, schiebt man die entsprechende ,figure`- bzw. ,table`-Umgebung einfach hinter die erste \ref- bzw. \pageref -Anweisung. | flafter: | macros/latex/base/ |

Hierfür gibt es mittlerweile eine große Anzahl von Paketen mit unterschiedlichen Beschränkungen und Vor- und Nachteilen:

, cutwin ` , floatflt ` (für LaTeX2e, Vorgänger , floatfig ` ist für LaTeX 2.09), , picinpar ` (veraltet), , picins `, , window `, , wrapfig `.

Empfohlen werden: ,picins` (funktioniert auch in Listen-Umgebungen), ,floatflt` und ,wrapfig` (unterstützen neben ,figure`- auch ,table`-Umgebungen), da diese am meisten können und die wenigsten Fehler aufweisen. | cutwin: | macros/latex/contrib/cutwin | | picins: | macros/latex209/contrib/picins | | floatflt: | macros/latex/contrib/floatflt | | wrapfig: | macros/latex/contrib/wrapfig/ |

– Main.HerbertVoss - 07 Mar 2009

  • dantefaq/floatplatzierung.txt
  • Last modified: 2023/02/28 10:39
  • by 127.0.0.1