程序包 endfloat 错误:未知环境“figure”

程序包 endfloat 错误:未知环境“figure”

当我使用包时\usepackage[tablesonly]{endfloat}\usepackage[figuresright]{rotating}我收到错误消息

Package endfloat Error: Unknown environment `figure'

在我的文档中我使用侧向图形。

\documentclass{article}

\usepackage{fancyhdr}
\usepackage[paperheight=10in,paperwidth=6.5in,margin=2cm,headsep=.5cm,top=2.5cm]{geometry}
\linespread{1.13} \date{}


\usepackage[tablesonly]{endfloat}

\usepackage[figuresright]{rotating}

\usepackage{lipsum}
\makeatletter

\@ifpackageloaded{endfloat}{\DeclareDelayedFloatFlavor{sidewaysfigure}{figure}}{}

\makeatother

\begin{document}

\title{Testing Rotate package}
\author{~}

\maketitle 


\lipsum[1]
\lipsum[1]

\bgroup
\begin{sidewaysfigure*}
\centering 
\includegraphics[draft]{fig.png}
\makeatother 
\caption{{Test caption}}
\label{figure-50fffe3f4a3f3fba00f6aeaa236c36ec}
\end{sidewaysfigure*}
\egroup
\lipsum[1]
\lipsum[1]

\begin{table}
\begin{tabular}{|l|l|}
\hline
Test & Test \\
\hline
Test & Test \\
Test & Test \\
\hline
\end{tabular}
\end{table}
\lipsum[1]
\lipsum[1]
\lipsum[1]
\lipsum[1-3]

\end{document

答案1

错误是因为您使用了仅限表格选项添加到 endfloat 包中,并将 sidewaysfigure 声明为延迟浮点。为了避免此错误,请将代码更改为

\@ifpackageloaded{endfloat}{\DeclareDelayedFloatFlavor{sidewaysfigure}{figure}}{}

至以下:

    \AtBeginDocument{%
  \@ifpackagewith{endfloat}{figuresonly}
  {\DeclareDelayedFloatFlavor{sidewaysfigure}{figure}}%true
  {\@ifpackagewith{endfloat}{tablesonly}{\DeclareDelayedFloatFlavor{sidewaystable}{table}}%true
  {\@ifpackageloaded{endfloat}{\DeclareDelayedFloatFlavor{sidewaysfigure}{figure}\DeclareDelayedFloatFlavor{sidewaystable}{table}}{}}%false
  }%false
  }

上述代码将检查所有可能的情况。这里我们可以使用命令\@ifpackagewith\@ifpackageloaded来实现这一点。

相关内容