我正在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 中存在冲突。