사용자 정의 플로트 내에서 로컬 `@fptop` 달성

사용자 정의 플로트 내에서 로컬 `@fptop` 달성

다음과 같은 정책을 원합니다.

  • 상단 figuretable페이지 플로트는 페이지 아래로 15% 있어야 합니다(이상적으로는 수치가 텍스트 높이의 85%를 초과하는 경우 더 높게 이동할 수 있음).
  • 사용자 정의 환경( smallbox)은 수직 중앙에 위치해야 합니다.

기본적으로 (기본값이 적용되어야 하는 경우 ) 제외로 @fptop설정 하고 싶습니다 .0.15\textheight minus 0.15\textheightmybox@fptop

내 초기 솔루션은 다음을 설정하는 것이었습니다.

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

그런 다음 다음 환경을 사용합니다.

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

\vspace*{\fill}환경의 마지막 인수 와 같이 큰 공간을 추가합니다 . 그러나 이는 아무 작업도 수행하지 않습니다(상단을 smallbox텍스트 높이의 15%로 유지하거나 너무 멀리 이동합니다(즉, 작은 상자가 페이지 상단에 있음).

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}

답변1

나는 minipage게시 후 몇 시간 후에 를 사용하는 것이 작동하는 것으로 나타났습니다.

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

관련 정보