如果有多个图形,如何将文本放在新页面上的 \figure 之后?

如果有多个图形,如何将文本放在新页面上的 \figure 之后?

我有一章包含 10 多个代码示例+图片。我希望在新页面上显示代码示例(而不是与上一个图片在同一页上),而图片仍保留在页面顶部。

我尝试了一下\newpage,但它什么也没做,而且\clearpage只有第一次有效,之后它就把数字放在页面的中间,这不是我想要的。

我怎样才能做到这一点?

PS:我使用\lstinputlisting\begin{figure}[th]

答案1

我强制用 将图片置于顶部[t!]

\documentclass[12pt,a4paper]{report}
\usepackage{listings}
\usepackage{graphicx}

\begin{filecontents}{\jobname.txt}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
Curabitur dictum gravida mauris.
Nam arcu libero, nonummy eget,
consectetuer id, vulputate a, magna.
\end{filecontents}

\newcommand{\essai}{\clearpage%
    \begin{figure}[t!]
        \centering
        \includegraphics[width=.4\linewidth]{example-image-a}
    \end{figure}
    
    \lstinputlisting{\jobname.txt}
}

\begin{document}
    Some text
    \essai
    To try if \verb|\clearpage| works
    \essai
    \essai
\end{document}

编辑

只需切换命令中的顺序:

\newcommand{\essai}{%
    \lstinputlisting{\jobname.txt}
    \begin{figure}[ht]
        \centering
        \includegraphics[width=.4\linewidth]{example-image-a}
    \end{figure}
    \clearpage
}

相关内容