将整页浮动图形放置在引用页面的后面

将整页浮动图形放置在引用页面的后面

我有一份文档,其中有一个占据整个页面的浮动图形。我希望浮动页面出现在第一次引用它的页面之后。我还希望引用页面的底部填充文本。例如,如果引用在第 n 页,则图形应在第 n+1 页。如果我将图形插入为“\begin{figure}”或“\begin{figure}[p]”,则图形将放置在第 n+2 页。我怎样才能将其移动到第 n+1 页?

以下是 MWE:

\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage{calc}
\usepackage[english]{babel}
\usepackage[pangram]{blindtext}
\usepackage{caption}
\usepackage{floatrow}
\usepackage{afterpage}
\setlength{\textfloatsep}{20pt}
\setlength{\intextsep}{20pt}

\begin{document}
\vspace*{0.9\textheight}

\blindtext[40]

\blindtext[12]\textbf{(See Figure \ref{Fig1})} \blindtext[12] 

\begin{figure}[p]
\noindent \centering{}\ffigbox[\FBwidth]{%
\framebox{\begin{minipage}[t][0.8\textheight]{0.8\textwidth}%
\hspace*{\fill}%
\end{minipage}}}{\caption{\label{Fig1}This is figure 1. \blindtext[8]}}
\end{figure}

\blindtext[50] \textbf{(See Figure \ref{Fig2})}. \blindtext[10]

\begin{figure}
\ffigbox[\FBwidth]{%
\framebox{\begin{minipage}[t][3cm]{0.8\textwidth}%
\hfill{}%
\end{minipage}}}{\caption{\label{Fig2}This is figure 2. \blindtext[4]}}
\end{figure}

\blindtext[6] \textbf{(See Figure \ref{Fig3})} \blindtext[3] 

\begin{figure}
\noindent \centering{}\ffigbox[\FBwidth]{%
\framebox{\begin{minipage}[t][0.3\textheight]{0.8\textwidth}%
\hspace*{\fill}%
\end{minipage}}}{\caption{\label{Fig3}This is figure 3. \blindtext[2] }}
\end{figure}

\end{document}

输出结果如下:

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述 在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

答案1

Werner 解决方案的替代方法是将图形环境直接插入到引用之后,而不是插入到其他几行文本之后。例如:

\blindtext[12]\textbf{(See Figure \ref{Fig1})}
\begin{figure}[tbp]
\noindent \centering{}\ffigbox[\FBwidth]{%
\framebox{\begin{minipage}[t][0.8\textheight]{0.8\textwidth}%
\hspace*{\fill}%
\end{minipage}}}{\caption{\label{Fig1}This is figure 1. \blindtext[8]}}
\end{figure}
\blindtext[12]

tbp与放置一起工作或仅仅p进行放置。

答案2

这里的基本问题是你插入了一大堆文本参考使用\blindtext

...
\blindtext[6] \textbf{(See Figure \ref{Fig3})} \blindtext[3]
...

这可能意味着实际的浮点插入可能远远超出你的参考范围。相反,你可以使用以下通用方法:

...
<reference>
\afterpage{
  <figure>
}
...

where<figure>使用[H]浮点说明符,以便将其准确放置在调用的位置。以下是使用上述建议进行调整的最小示例:

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage[pangram]{blindtext}
\usepackage{caption}
\usepackage{floatrow}
\usepackage{afterpage}
\setlength{\textfloatsep}{20pt}
\setlength{\intextsep}{20pt}

\begin{document}
\vspace*{0.9\textheight}

\blindtext[40]

\blindtext[12]\textbf{(See Figure \ref{Fig1})}

\afterpage{%
  \begin{figure}[H]
    \centering
    \ffigbox[\FBwidth]{%
      \framebox{\begin{minipage}[t][0.8\textheight]{0.8\textwidth}%
      \hspace*{\fill}%
    \end{minipage}}}
    {\caption{\label{Fig1}This is figure 1. \blindtext[8]}}
  \end{figure}
  \clearpage
}

\blindtext[12]
\blindtext[50] \textbf{(See Figure \ref{Fig2})}.

\afterpage{
  \begin{figure}[H]
    \ffigbox[\FBwidth]{%
    \framebox{\begin{minipage}[t][3cm]{0.8\textwidth}%
    \hfill{}%
    \end{minipage}}}
    {\caption{\label{Fig2}This is figure 2. \blindtext[4]}}
  \end{figure}
  \clearpage
}

\blindtext[10]
\blindtext[6] \textbf{(See Figure \ref{Fig3})}

\afterpage{
  \begin{figure}[H]
    \centering
    \ffigbox[\FBwidth]{%
      \framebox{\begin{minipage}[t][0.3\textheight]{0.8\textwidth}%
      \hspace*{\fill}%
    \end{minipage}}}
    {\caption{\label{Fig3}This is figure 3. \blindtext[2] }}
  \end{figure}
  \clearpage
}

\blindtext[3]

\end{document}

添加\clearpage可确保仅将特定内容figure放置在页面上。

相关内容