Erreichen eines lokalen „@fptop“ innerhalb eines benutzerdefinierten Floats

Erreichen eines lokalen „@fptop“ innerhalb eines benutzerdefinierten Floats

Ich wünsche mir folgende Regelung:

  • Die Ober- figureund tableSeitenränder sollten 15 % der Seite nach unten zeigen (und idealerweise höher verschoben werden können, wenn die Abbildung mehr als 85 % der Texthöhe einnimmt).
  • Eine benutzerdefinierte Umgebung ( smallbox) sollte vertikal zentriert sein

Im Wesentlichen möchte ich es @fptopauf 0.15\textheight minus 0.15\textheight„Ausnahme für den myboxFall“ setzen (wo die Standardeinstellung @fptopgelten soll).

Meine erste Lösung bestand darin, Folgendes festzulegen:

\setlength{\@fptop}{0.15\textheight minus 0.15\textheight}
\setlength{\@fpbot}{0pt plus 1fil}

und dann mit der folgenden Umgebung:

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

Hinzufügen eines großen Leerzeichens (wie \vspace*{\fill}im letzten Argument der Umgebung). Dies bewirkt jedoch nichts (dhbehält die Oberkante smallboxbei 15 % der Texthöhe bei) oder verschiebt sie zu weit (d. h. das kleine Kästchen befindet sich oben auf der Seite).

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}

Antwort1

Ich habe festgestellt, dass die Verwendung von minipageeinige Stunden nach dem Posten zu funktionieren scheint.

\newenvironment{smallbox}[1][p]{%
\begin{boxe}[#1]
\begin{minipage}[c][\textheight]{\linewidth}
}{\end{minipage}\end{boxe}}

verwandte Informationen