
Eu gostaria da seguinte política:
- A parte superior
figure
etable
os flutuadores da página devem estar 15% abaixo da página (e, idealmente, capazes de se mover para cima se a figura tiver mais de 85% da altura do texto). - Um ambiente personalizado (
smallbox
) deve ser centralizado verticalmente
Essencialmente, quero definir @fptop
como 0.15\textheight minus 0.15\textheight
exceto para o mybox
caso (onde o padrão @fptop
deve ser aplicado).
Minha solução inicial foi definir:
\setlength{\@fptop}{0.15\textheight minus 0.15\textheight}
\setlength{\@fpbot}{0pt plus 1fil}
e depois com o seguinte ambiente:
\usepackage{newfloat} %%
\DeclareFloatingEnvironment[listname={List of boxes}, name = {Box}]{boxe}
% The smallbox is a box intended for onecolumn.
\newenvironment{smallbox}[3][p]{%
\begin{boxe}[#1]
}{\end{boxe}}
adicionando um espaço grande (como \vspace*{\fill}
no último argumento do ambiente. No entanto, isso não faz nada (ou sejamantém o topo smallbox
em 15% da altura do texto) ou move-o muito longe (ou seja, a caixa pequena está no topo da página).
MWE:
\documentclass[12pt,twocolumn]{article} %% twocolumn makes fptop more obvious
\makeatletter
\setlength{\@fptop}{0.15\textheight minus 0.15\textheight}
\setlength{\@fpbot}{0pt plus 1fil}
\makeatother
\usepackage{newfloat}
\DeclareFloatingEnvironment[listname={List of boxes}, name = {Box}]{boxe}
\newenvironment{smallbox}[1][p]{%
\begin{boxe}[#1]
}{\end{boxe}}
\usepackage[showframe]{geometry}
\usepackage[demo]{graphicx}
\usepackage{lipsum}
\begin{document}
.
\begin{figure}[p]
\caption{foo}
\includegraphics{}
\end{figure}
\clearpage
.
\begin{smallbox}
\lipsum[1]
\end{smallbox}
\end{document}
Responder1
Descobri que usar a minipage
parece funcionar algumas horas após a postagem.
\newenvironment{smallbox}[1][p]{%
\begin{boxe}[#1]
\begin{minipage}[c][\textheight]{\linewidth}
}{\end{minipage}\end{boxe}}