Sie sind hier

underful vbox

Hallo,

ich habe eine Frage zum Verständnis. Zur Info vorweg -- ich habe die FAQ zum Thema gelesen. Nun meine Frage.

Wenn man mit scrbook, also mit flushbottom, ein Dokument verfasst, in dem unterschiedlich große Bilder vorkommen, lassen sich dann underful vbox warnings überhaupt vermeiden?

Wenn ein Bild eine "ungünstige" Größe hat und eine Textzeile geradeso verdeckt und zudem kein neuer Absatz auf der Seite beginnt, muss dieser vertikale Platz ja trotzdem ausgeglichen werden.

Bin mir etwas unschlüssig, ob ich badness werte unter 10000 einfach ignorieren kann?

Grüße
-Stefan

forum: 
Bild von Markus Kohm

aber ist immerhin eine interessante LaTeX- und Typografie-Frage. Zunächst sollte Gleitobjekte möglichst nicht innerhalb eines Absatzes stehen, weil dadurch der Lesefluss erheblich behindert wird. Wenn man sich daran hält, dann können auf einer Seite, auf der sich kein Absatz befindet, eigentlich nur noch Abbildungen oben oder unten stehen. In dem Fall darf dann badness ggf. sogar 10000 sein, weil es zu keinem schlimmen Effekt kommt.

Hält man sich nicht an diese Regel, hat man also auch innerhalb eines Absatzes Gleitobjekte, macht das normalerweise auch nichts, solange sich auf der Seite außer den Gleitobjekten nur absatzloser Text befindet. Auch dann kann zusätzlicher Abstand von TeX nur zwischen den Gleitobjekten und zwischen Text und Gleitobjekten eingefügt werden.

In beiden Fällen, sollte man sich die Seite trotzdem anschauen. Im extremsten Extremfall könnte es passieren, dass die überdehnten Abstände so groß werden, dass sie unangenehm auffallen. Das passiert eher selten.

Etwas anderes ist, wenn auch andere Abstände überdehnt werden können. Wenn also beispielsweise Überschriften oder Absätze vorkommen. In diesen Fällen kann es weit besser sein, das \flushbottom an geeigneter Stelle (beispielsweise vor einer Überschrift) durch ein \clearpage zu verhindern.

Wie groß die badness sein darf ist eine schwierige Frage. Normalerweise neige ich dazu vertikale badness gar nicht zu tolerieren. Gedehnt reicht normalerweise. Überdehnt ist hier in der Regel eher schlecht. Ist ein Wert von 10 bereits überdehnt? Wenn ich das Problem einfach beheben kann: Ja.

Hallo Markus,

erstmal vielen Dank für die Antwort.

aber ist immerhin eine interessante LaTeX- und Typografie-Frage. Zunächst sollte Gleitobjekte möglichst nicht innerhalb eines Absatzes stehen, weil dadurch der Lesefluss erheblich behindert wird. Wenn man sich daran hält, dann können auf einer Seite, auf der sich kein Absatz befindet, eigentlich nur noch Abbildungen oben oder unten stehen. In dem Fall darf dann badness ggf. sogar 10000 sein, weil es zu keinem schlimmen Effekt kommt.

Ja, wenn oben ein Bild ist und dann absatzloser Text folgt, wird unter Umständen der Abstand zwischen Bild und Text überdehnt. Um diesen Fall geht es mir. Nach meinem Verständnis ist das Überdehnen nicht auszuschließen. Ich habe da ab und zu ein badness von etwa 3000. Ich wüsste nicht wie ich das verhindere.

Was meinst du mit Gleitobjekten nicht innerhalb von Absätzen? Bestimmt die explizite Positionierung mit [h], sodass das Bild irgendwo in der Mitte der Seite steht und dann oben und unten von Text eingeschlossen ist, oder? Ansonsten Sind Gleitobjekte doch häufig innerhalb von Absätzen, z. B. oben auf der Seite, angeordnet.

Bild von Markus Kohm

\documentclass{article}
\begin{document}
If you have a look at figure~\ref{fig:test} on page~\pageref{fig:test} you may
find it at the middle of a paragraph.
\begin{figure}[htbp]
\centering
\rule{1cm}{1cm}
\caption{black}
\label{fig:test}
\end{figure}
You may do this, but nevertheless you should avoid it. Put floats not into a
paragraph, but between paragraphs.
\end{document}

Wenn Du das Beispiel ausprobierst, wirst Du sehen, was ich meine.

Ansonsten gibt es immer Möglichkeiten. Eine Möglichkeit ist beispielsweise eine float-Seite zu machen. Eine andere ist sogar einen Abbildungsanhang zu machen. Ob solche Maßnahmen im konkreten Fall erforderlich sind, kann ich aus der holen Hand heraus unmöglich sagen.

Aber was ändert das? Folgendes Beispiel:

Ein langer Absatz.
float

Ein weiterer langer Absatz.

Damit wird die Gleitumgebung auf der folgenden Seite oben im Text des zweiten Absatzes positioniert. Die Einbindung von floats nach dem Absatz hat außerdem den Nachteil, dass das Bild unter Umständen weiter weg von der Referenz positioniert wird.

Bild von Markus Kohm

Durch das Umblättern wird der Lesefluss ohnehin unterbrochen. Es spielt dann keine so große Rolle mehr, ob auf der nächsten Seite oben noch eine Abbildung steht – vorausgesetzt es ist leicht erkennbar, wo der eigentliche Text weitergeht. Mit Seitenumbrüchen muss man leben. Natürlich kannst Du ein Buch auch auf eine Faxrolle drucken, aber dort stört dann wieder die Handhabung – spätestens wenn sie herunterfällt.

Wenn aber innerhalb einer Seite auch noch Abbildungen innerhalb der Absätze stehen, dann wird der Lesefluss an den Stellen zusätzlich auch noch unterbrochen. Diese Unterbrechung ist leicht vermeidbar. Also sollte man sie auch vermeiden.

Dass sie die Floats dann zwingend weit weg platziert werden, stimmt auch nicht. Notfalls fügt man float-Seiten ein. Ich habe jahrelang für Verlage gearbeitet, die Abbildungen und Tabellen nur oben oder unten erlauben. Ich kann mich genau an zwei Büchern erinnern, bei denen die Vorgabe, dass ein Bild frühestens auf der Seite der ersten Referenzierung und spätestens zwei Seiten später stehen soll, nicht erfülltbar war. Da hätte es aber auch nichts genützt, wenn die Abbildungen mitten in den Absätzen gestanden hätten. Das hätte das Problem sogar verschärft, weil dabei mehr zusätzlicher vertikaler Freiraum eingebaut wird. Bei sehr vielen Abbildungen wandern die Abbildungen dadurch dann sogar noch weiter nach hinten.

Klar, es macht etwas mehr Arbeit, die Regel einzuhalten, weil man ggf. eine Abbildung auch mal vor den Absatz verschieben muss, in dem sie erstmal referenziert wird.

weitergeht. Mit Seitenumbrüchen muss man leben. Natürlich kannst Du ein Buch auch auf eine Faxrolle drucken, aber dort stört dann wieder die Handhabung – spätestens wenn sie herunterfällt.
Hab mich köstlich amüsiert...:-)

Wenn aber innerhalb einer Seite auch noch Abbildungen innerhalb der Absätze stehen, dann wird der Lesefluss an den Stellen zusätzlich auch noch unterbrochen. Diese Unterbrechung ist leicht vermeidbar. Also sollte man sie auch vermeiden.
Das ist doch mit dem default placement [tbp] garnicht möglich.

Notfalls fügt man float-Seiten ein. Ich habe jahrelang für Verlage gearbeitet, die Abbildungen und Tabellen nur oben oder unten erlauben. Ich kann mich genau
Ja genau, nur oben oder unten. Beispielsweise der Teubner Verlag empfiehlt das so. Gleichzeitig geben sie die Empfehlung floats nahe der Referenz im Quelltext einzubinden. Also etwa so:

...Fließtext.
%
float
%
Fließtext...

Damit werden die Bilder oben, unten oder auf einer eigenen Seite plaziert. Also genauso wie wenn ich die Bilder vor oder nach einem Absatz in den Quelltext einbinde. Macht also keinen Unterschied.

Zurück zum Thema. Wenn also die Bilder oben auf einer Seite platziert werden und danach Text folgt bis zum Seitenende, ist es dann möglich Überdehnungen immer zu verhindern?

Bild von Markus Kohm

Bleibt die Frage:

Wenn also die Bilder oben auf einer Seite platziert werden und danach Text folgt bis zum Seitenende, ist es dann möglich Überdehnungen immer zu verhindern?

Verhindern kann man sie immer, allerdings kann die Verhinderung das schlechtere Ergebnis sein. So kann man natürlich die Bilder verschieben oder die Platzierung per Option auf p einschränken oder einzelne Bilder größer oder kleiner machen oder mit \looseness arbeiten (Leser von DTK 4/2007 wissen, dass dabei auch unerwartete Ergebnisse möglich sind) oder harte Umbrüche einfügen. Dabei kann es auch helfen, viel weiter vorn im Text einzugreifen.

Die Frage ist aber auch, ob die Überdehnung verhindert werden muss. Wenn man nur Bilder oben gefolgt von einem einzigen Absatz Text auf einer Seite hat, dann muss man die Überdehnung normalerweise nicht verhindern. In dem Fall wird nämlich insgesamt maximal weniger als eine Zeile Space zusätzlich zwischen den Bildern und zwischen den Bildern und dem Text eingefügt (eventuell auch noch zwischen Bildern und ihrer Unterschrift). Darüber sollte man sich keine Gedanken machen. Genau das würde jeder gute Schriftsetzer auch machen.

Und was ist, wenn man mehr als einen Absatz Text auf der Seite hat? Dann sollte man verhindern, dass die Absätze auseinandergerückt werden. Beim Feinschliff am Ende kann man das notfalls dadurch erreichen, dass man am Ende der untersten Abbildung den zusätzlichen notwendigen Abstand per \vspace* einfügt. Das ist zwar nicht die feine Art, aber eine pragmatische Lösung. Sie behindert die Wartbarkeit des Dokuments auch nur minimal, da man bei späterer Revision des Dokuments ohnehin wieder nach \vspace (und \looseness, \pagebreak, \newpage, \clearpage etc.) suchen und diese in der Regel auskommentieren sollte.

\newcommand{\Autsch}[1]{%
  \typeout{!!!!^^J%
    VORSICHT BISSIGER HUND!^^J%
  !!!!}%
  #1%
}
\Autsch{\vspace*{1ex}}

Danke für den interessanten Austausch!

Die Frage ist aber auch, ob die Überdehnung verhindert werden muss. Wenn man nur Bilder oben gefolgt von einem einzigen Absatz Text auf einer Seite hat, dann muss man die Überdehnung normalerweise nicht verhindern. In dem Fall wird nämlich insgesamt maximal weniger als eine Zeile Space zusätzlich zwischen den Bildern und zwischen den Bildern und dem Text eingefügt (eventuell auch noch zwischen Bildern und ihrer Unterschrift). Darüber sollte man sich keine Gedanken machen. Genau das würde jeder gute Schriftsetzer auch machen.

Das wollte ich wissen. Jetzt bin ich beruhigt, da ich es bis jetzt richtig gemacht habe. Mir gings darum, ob ich für einen guten Satz diese geringe Überdehnung zwischen Bild und Text unbedingt verhindern muss.

Schönen 1. Advent!

-Stefan

Comments for "underful vbox" abonnieren