catchfilebetweentags 是否与 endfloat 兼容?

catchfilebetweentags 是否与 endfloat 兼容?

我正在catchfilebetweentags按照描述的方式向文档中添加图形这里。另外使用 endfloat 包时出现错误。以下是示例:

主文件:

\documentclass[11pt]{article} 
\usepackage{catchfilebetweentags} 
\newcommand{\loadFigure}[1]{ % define command to load figures
    \ExecuteMetaData[figures_file]{#1} 
}
%\usepackage{endfloat} %un-comment to produce error
\begin{document}
Hello world\\   
\loadFigure{fig:figure1}
\end{document}

次要/图形文件(figures_file.tex):

%<*fig:figure1>
\begin{figure}[htpb!]
    \caption{A figure}
\end{figure}
%</fig:figure1>

此错误是由于取消注释 而产生的\usepackage{endfloat}。错误消息:

! Undefined control sequence.
\GenericError  ...                                
                                                    #4  \errhelp \@err@     ...
l.9 \loadFigure{fig:figure1}

我知道这似乎是一件奇怪的事情,但我主要想让图形位于文本中的位置,但偶尔也想让它们位于末尾(例如,如果编辑器要求我把它们放在那里)。

答案1

该问题似乎与解释的问题有关这里:通过宏添加浮点数时,endfloat 中存在问题。我采用了那里提供的解决方案阿克塞尔-索末费尔特可以了。启用 endfloat 时,应将以下内容添加到前言中:

\DeclareDelayedFloatFlavour{loadFigure}{figure}
\makeatletter
\newcommand\my@efloat@if@end[3]{#3#2}
\pretocmd\loadFigure{%
    \begingroup
    \let\efloat@if@end\my@efloat@if@end}{}{}
\makeatother

请参阅上面链接中的解释。该示例加载了 etoolbox 包,但我发现即使没有它,此示例也能成功运行。请注意,这可能会导致进一步的冲突;我已经注意到 floatrow 中存在冲突。

相关内容