Flotadores de doble página: ¿dpfloat anula la alineación vertical?

Flotadores de doble página: ¿dpfloat anula la alineación vertical?

Para flotadores de doble página (es decir, pares de flotadores que se supone que deben aparecer juntos en una página completa), dpfloatse recomienda el paquete con regularidad y a mí también me funciona bastante bien.

Sin embargo, he decidido anular la alineación vertical predeterminada de los flotantes de LaTeX, que está centrada, y en su lugar especifiqué que cada flotante de página completa, independientemente de su altura, se alinee con la línea superior del área de texto; es decir, elimino todo el espacio en blanco encima de un flotador de página completa y coloque todo el espacio en blanco restante debajo de él.

Yo uso @fptoppara eso.

En teoría, uno de los beneficios de esto sería que las dos mitades de un flotador de doble página, incluso si tienen diferentes alturas, tendrán al menos sus bordes superiores alineados, lo que brindará una visualización mucho más agradable. resultado estético.

Pero dpfloateste no es el caso. El paquete parece anular de alguna manera las modificaciones realizadas con @fptop. Los flotadores vuelven a estar centrados verticalmente. Uno de los peores efectos de esto se produce con los flotadores de doble página que constan de dos mitades de la misma imagen (es decir, ¡la misma altura!) y, en consecuencia, sólo tienen un título común, colocado en el lado derecho. Como el título y la imagen se colocan dentro de un cuadro que luego se centra, las dos imágenes quedan completamente desalineadas, lo que frustra el propósito del paquete en la situación en la que más lo necesita: mantener juntas las cosas que pertenecen juntas.

Por supuesto, miré dpfloat.sty, pero no pude encontrar la causa del problema. ¿Algunas ideas?

ingrese la descripción de la imagen aquí

\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} 

Respuesta1

El paquete obliga al flotador a tener la altura completa, por lo que el látex de relleno agregado nunca es mayor que 0 puntos; en su lugar, debe afectar la forma en que se coloca el contenido en el cuadro de altura completa del paquete (eliminar \vssdesde la parte superior).

\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} 

información relacionada