Flutuadores de página dupla: dpfloat substitui o alinhamento vertical?

Flutuadores de página dupla: dpfloat substitui o alinhamento vertical?

Para carros flutuantes de página dupla (ou seja, pares de carros flutuantes que deveriam aparecer juntos em uma página completa), o dpfloatpacote é recomendado regularmente e funciona muito bem para mim também.

No entanto, decidi substituir o alinhamento vertical padrão de pontos flutuantes do LaTeX, que é centralizado, e em vez disso especifiquei que cada ponto flutuante de página inteira, independentemente de sua altura, seja alinhado com a linha superior da área de texto - ou seja, eu removo todo o espaço em branco acima de um float de página inteira e coloque todo o espaço em branco restante abaixo dele.

Eu uso @fptoppara isso.

Em teoria, um dos benefícios disso seria que as duas metades de um float de página dupla, mesmo que tenham alturas diferentes, ainda terão, pelo menos, suas bordas superiores alinhadas, proporcionando um visual muito mais agradável. resultado esteticamente.

Mas com dpfloateste não é o caso. O pacote parece substituir de alguma forma as modificações feitas com o @fptop. Os carros alegóricos são centralizados verticalmente novamente. Um dos piores efeitos disso são os floats de página dupla que consistem em duas metades da mesma imagem (ou seja, mesma altura!) e consequentemente possuem apenas uma legenda comum, colocada no lado direito. Como a legenda e a imagem são colocadas dentro de uma caixa que depois fica centralizada, as duas imagens ficam totalmente desalinhadas, o que meio que vai contra o propósito da embalagem na situação em que você mais precisa: manter juntas coisas que pertencem umas às outras.

Eu olhei para dpfloat.sty, é claro, mas não consegui descobrir o que causa o problema. Alguma ideia?

insira a descrição da imagem aqui

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

Responder1

O pacote força o float a ter altura total para que o preenchimento de látex adicionado nunca seja maior que 0pt. Em vez disso, você precisa afetar a maneira como o conteúdo é colocado na caixa de altura total do pacote (remover \vssdo topo)

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

informação relacionada