在 \afterpage 中使用时 \label 未定义?

在 \afterpage 中使用时 \label 未定义?

我正在尝试强制图形和图像连续显示在同一页上。我读过使用的解决方案,\afterpage效果很好。但现在\label未定义,我无法引用它们!

我目前拥有的:

\afterpage{
    \begin{figure}
        \centering
        \includegraphics[scale=0.28]{PATH_TO_IMAGE}
        \caption{Some Caption For My Image}
        \label{myFigure}
    \end{figure}
    \begin{table}
        \centering
        \caption{Some Caption For My Table}
        \label{myTable}
        \includegraphics[scale=0.09]{PATH_TO_TABLE}
    \end{table}
} 

\ref{myFigure}然后我使用或正常引用这些\ref{myTable}。但编译器说未定义的引用,PDF 显示??。如果我删除/afterpage,那么引用就可以正常工作。

为什么?

编辑

这是我在大学写的毕业论文。以下模板由大学提供使用。

主文件的路径.tex这里

答案1

afterpage这是和之间的时间问题。读取文件\include后,调用由重新定义的。首先输出页面,然后执行里面的内容。这些内容是浮点对象,因此尚未设置,等待下一次调用输出例程。与此同时,关闭包含文件的文件并完成其工作。然后,当输出浮点数时,将标签写入.tex\include\clearpageafterpage\afterpage\include.aux老的 .aux该文件是前一个包含文件的文件,但该.aux文件已关闭,因此标签将写入.log文件和控制台。在下一次运行 LaTeX 时,标签仍然未知。

解决方法:\clearpage包含文件末尾的显式有帮助。然后这\clearpage会触发afterpage钩子执行,并且\clearpage末尾的\include将触发浮点输出文件.aux被关闭。

相关内容