Für Doppelseiten-Floats (also Float-Paare, die gemeinsam auf einer Doppelseite erscheinen sollen) dpfloat
wird das Paket regelmäßig empfohlen, und bei mir funktioniert es auch recht gut.
Ich habe mich jedoch dazu entschlossen, die zentrierte vertikale Standardausrichtung von Floats in LaTeX außer Kraft zu setzen und stattdessen festzulegen, dass jedes Float, das sich über eine ganze Seite erstreckt, unabhängig von seiner Höhe an der oberen Zeile des Textbereichs ausgerichtet wird. Das heißt, ich entferne sämtlichen Leerraum über einem Float, der sich über eine ganze Seite erstreckt, und platziere sämtliche verbleibenden Leerräume darunter.
Ich verwende @fptop
dafür.
Einer der theoretischen Vorteile hiervon besteht darin, dass die beiden Hälften eines Doppelseiten-Floats, selbst wenn sie unterschiedliche Höhen aufweisen, zumindest ihre oberen Ränder ausgerichtet bleiben, was zu einem ästhetisch viel ansprechenderen Ergebnis führt.
Bei ist das jedoch dpfloat
nicht der Fall. Das Paket scheint die mit vorgenommenen Änderungen irgendwie zu überschreiben @fptop
. Floats werden wieder vertikal zentriert. Eine der schlimmsten Auswirkungen davon sind Doppelseiten-Floats, die aus zwei Hälften desselben Bildes (also gleicher Höhe!) bestehen und daher nur eine gemeinsame Beschriftung auf der rechten Seite haben. Da Beschriftung und Bild in einem Feld platziert werden, das dann zentriert wird, sind die beiden Bilder völlig falsch ausgerichtet, was den Zweck des Pakets in der Situation, in der Sie es am meisten brauchen, zunichte macht: Dinge zusammenzuhalten, die zusammengehören.
Ich habe mir natürlich dpfloat.sty angesehen, konnte aber nicht herausfinden, was das Problem verursacht. Irgendwelche Ideen?
\documentclass[DIV=9,twoside=true]{scrartcl}
\usepackage{blindtext,dpfloat}
%make sure figure starts at text area's top
\makeatletter
\setlength{\@fptop}{0pt}
\makeatother
\begin{document}
\Blindtext
\begin{figure}[p]
\rule{.5\textwidth}{.5\textheight}
\caption{A usual full-page float that's not part of a pair}
\end{figure}%
\Blindtext
\begin{figure}[p]
\begin{leftfullpage}
\rule{.5\textwidth}{.5\textheight}
\end{leftfullpage}
\end{figure}%
\begin{figure}[p]
\begin{fullpage}
\rule{.5\textwidth}{.5\textheight}
\caption{Right half of a double-page float pair with common caption.}
\end{fullpage}
\end{figure}%
\Blindtext
\Blindtext
\end{document}
Antwort1
Das Paket erzwingt, dass der Float die volle Höhe einnimmt, sodass die von Latex hinzugefügte Polsterung nie größer als 0pt ist. Sie müssen stattdessen die Art und Weise beeinflussen, wie der Inhalt in die Box mit voller Höhe des Pakets eingefügt wird ( \vss
von oben entfernen).
\documentclass[DIV=9,twoside=true]{scrartcl}
\usepackage{blindtext,dpfloat}
%make sure figure starts at text area's top
\makeatletter
\setlength{\@fptop}{0pt}
\def\endfullpage{\egroup\dp\@@wholepage\z@
\vbox to\textheight{\unvbox\@@wholepage\vss}}
\def\endleftfullpage{\egroup\dp\@@wholepage\z@
\vbox to\textheight{\unvbox\@@wholepage\vss}\global\@LPtrue}
\makeatother
\begin{document}
\Blindtext
\begin{figure}[p]
\rule{.5\textwidth}{.5\textheight}
\caption{A usual full-page float that's not part of a pair}
\end{figure}%
\Blindtext
\begin{figure}[p]
\begin{leftfullpage}
\rule{.5\textwidth}{.5\textheight}
\end{leftfullpage}
\end{figure}%
\begin{figure}[p]
\begin{fullpage}
\rule{.5\textwidth}{.5\textheight}
\caption{Right half of a double-page float pair with common caption.}
\end{fullpage}
\end{figure}%
\Blindtext
\Blindtext
\end{document}