如何将图形添加到其自己的页面,同时在第一次提及后直接出现?

如何将图形添加到其自己的页面,同时在第一次提及后直接出现?

我的论文有一个格式要求,即所有图表必须出现在首次提及的页面之后,并与任何文本分开。如果页面上提到了多个图表,它们可以放在不同的页面上。因此,如果我第一次在一页上提到 3 个图表,则接下来的 3 页将是图表。我在正确格式化它时遇到了问题。我无法执行,\clearpage因为我不能让一页几乎是空白的,所以页面必须保持完整。我试过了\begin{figure}[p!],虽然它可以按我想要的方式对图表进行分组,但它并没有将它们放在正确的位置。

答案1

flafter包(在baselatex 发行版中)将阻止浮动“向后”浮动到当前页面的顶部。因此,如果您将图形源放在图形的第一个引用点,那么您的要求应该可以满足。

答案2

\begin{figure}[p!]应该可以工作,但是您必须重新定义\floatpagefraction,以便小图形可以位于它们自己的浮动页面上(它定义了需要被浮动图形占用的页面的最小部分,以便形成浮动页面。)

\documentclass{article}
\usepackage{lipsum}
\renewcommand\floatpagefraction{0} %default 0.5
\begin{document}
abc

\begin{figure}[!p]
FIGURE
\end{figure}

\lipsum \lipsum
\end{document}

答案3

这个例子实现了你所要求的功能,但你必须把它放在上下文中才能说它是一个通用的解决方案。

\documentclass{article}
\usepackage{lipsum}
\usepackage{afterpage}
\usepackage{color}
\usepackage[demo]{graphicx}
%------------------------------------------------
% Inspired by:
% https://tex.stackexchange.com/a/334993/231952
\usepackage{environ}
\def\afterpagebody#1{%
  \afterpage{%%
    \begin{figure}
    \centering
    #1
    \end{figure}
  \clearpage
}}
\NewEnviron{myfigure}{%%
    \expandafter\afterpagebody\expandafter{\BODY}%%
}
%------------------------------------------------

\begin{document}
    
\section{A page with one figure}

\lipsum[1]
\textcolor{red}{See figure \ref{fig1}}

\begin{myfigure}
\includegraphics{test}
\caption{}\label{fig1}
\end{myfigure}

\lipsum[2-9]

\section{A page with three figures}

\lipsum[11]
\textcolor{red}{See figure \ref{fig2}}
    
\begin{myfigure}
\includegraphics{test}
\caption{}\label{fig2}
\end{myfigure}

\lipsum[11]
\textcolor{red}{See figure \ref{fig3}}

\begin{myfigure}
\includegraphics{test}
\caption{}\label{fig3}
\end{myfigure}

\lipsum[11]
\textcolor{red}{See figure \ref{fig4}}

\begin{myfigure}
\includegraphics{test}
\caption{}\label{fig4}
\end{myfigure}

\lipsum

\end{document}

答案4

你写了,

所有图表必须出现在首次提及的页面之后,并与任何文本分开。如果页面上提及了多个图表,则它们可以位于不同的页面上。... 我无法执行,\clearpage因为我不能让一页几乎空白,所以页面必须保持完整。

后页包可能是你的朋友。

\documentclass{article}
\usepackage{afterpage}
\begin{document}

As shown in Figures \ref{fig:xxx}, \ref{fig:yyy}, and \ref{fig:zzz}, \dots
% right after the end of this paragraph:
\afterpage{%
   \begin{figure}[p]
   \caption{xxx} \label{fig:xxx}
   \end{figure} \clearpage
   \begin{figure}[p]
   \caption{xxx} \label{fig:yyy}
   \end{figure} \clearpage
   \begin{figure}[p]
   \caption{xxx} \label{fig:zzz}
   \end{figure}
} % end of scope of `\afterpage` directive

\dots  % remainder of document
\end{document}

相关内容