是否可以通过 endfloat 排除附录中的图形重新定位?

是否可以通过 endfloat 排除附录中的图形重新定位?

目前,附录中的浮动元素也重新定位到了文档末尾。有没有办法将它们从 endfloat 中排除?

答案1

这既使用\processdelayedfloats又创建一个新环境。(没有它也可以工作\processdelayedfloats,但数字计数器会变得混乱。)

\documentclass{article}
\usepackage{endfloat}

\makeatletter
\newenvironment{nodelay}[1][tp]{\@float{figure}[#1]}{\end@float}
\makeatother

\begin{document}
text 1

\begin{figure}
  \caption{endfloat test}
\end{figure}

text2

\processdelayedfloats

\begin{nodelay}[h]
  \caption{nodelay test}
\end{nodelay}

\end{document}

答案2

endfloat包使用一个名为的宏\efloat@restorefloats来恢复其已重新定义的所有环境的旧定义。

因此,紧接着使用\csname efloat@restorefloats\endcsname(或)即可完成此工作:\makeatletter\efloat@restorefloats\makeatother\processdelayedfloats

\documentclass{article}
\usepackage{endfloat}

\begin{document}

\section{Whatever}

\begin{figure}
\caption{Figure 1}
\end{figure}
\begin{table}
\caption{Table 1}
\end{table}

\processdelayedfloats
\csname efloat@restorefloats\endcsname

\section{Appendix}

\begin{figure}
\caption{Figure 2}
\end{figure}
\begin{table}
\caption{Table 2}
\end{table}

\end{document}

缺点:这使用了软件包的内部命令endfloat。但由于它已经存在很长时间了(我在网上能找到的最旧版本是 1995 年的 v2.4),所以它不太可能在未来消失。

相关内容