使用 PGF 及其友元时出现 IEEE 类文件“ieee.cls”错误(根本原因是颜色包)

使用 PGF 及其友元时出现 IEEE 类文件“ieee.cls”错误(根本原因是颜色包)

我必须使用可以在这里找到的 IEEE 类文件:

http://mocha-java.uccs.edu/ieee/

您可以在那里下载类文件本身(ieee.cls)和一个名为的演示 tex 文件ieeecls.tex。当我加载pgfplots包时,我收到以下错误

! } 太多了。\color@endbox ->\color@endgroup \egroup l.811 \end{figure}

我看到有其他关于这个问题的帖子,最好的帮助是

为什么使用包旋转时会出现“太多}”的错误

在我看来。这是由史蒂芬·柯特维茨。这个解决方案对我的情况没有帮助。Stefan 的解决方案是:

有些类和样式文件以可能导致此错误的方式定义宏 \@xfloat。在这种情况下,请考虑删除/重新定义此宏,或使用其他类

\makeatletter
\let\latex@xfloat=\@xfloat
\def\@xfloat #1[#2]{%
  \latex@xfloat #1[#2]%
  \def\baselinestretch{1}
  \@normalsize\normalsize
  \normalsize
}
\makeatother

我无法在这里添加最小的工作示例 - 但您可以下载如上所述所需的两个文件。

我已经向 IEEE 提交了一份错误报告,但我认为他们不会及时回复。

答案1

color当 1994 年引入该软件包时,您经常会看到该错误,但您通常会期望过去 20 年内使用过的任何类文件现在都已经更新了。

该类ieee重新启用了 LaTeX2.09 浮点处理程序,因此删除了对!浮点选项、颜色(导致错误消息)的支持以及自 LaTex2e 发布以来添加的任何修复。

如果你确实必须使用此类,你可以重新启用 lateX2e 的浮点处理(这里我使用了 中的版本fixltx2e),

\documentclass{ieee}
\usepackage{color}

\makeatletter
\def\@xfloat #1[#2]{%
  \@nodocument
  \def \@captype {#1}%
   \def \@fps {#2}%
   \@onelevel@sanitize \@fps
   \def \reserved@b {!}%
   \ifx \reserved@b \@fps
     \@fpsadddefault
   \else
     \ifx \@fps \@empty
       \@fpsadddefault
     \fi
   \fi
   \ifhmode
     \@bsphack
     \@floatpenalty -\@Mii
   \else
     \@floatpenalty-\@Miii
   \fi
  \ifinner
     \@parmoderr\@floatpenalty\z@
  \else
    \@next\@currbox\@freelist
      {%
       \@tempcnta \sixt@@n
       \expandafter \@tfor \expandafter \reserved@a
         \expandafter :\expandafter =\@fps
         \do
          {%
           \if \reserved@a h%
             \ifodd \@tempcnta
             \else
               \advance \@tempcnta \@ne
             \fi
           \fi
           \if \reserved@a t%
             \@setfpsbit \tw@
           \fi
           \if \reserved@a b%
             \@setfpsbit 4%
           \fi
           \if \reserved@a p%
             \@setfpsbit 8%
           \fi
           \if \reserved@a !%
             \ifnum \@tempcnta>15
               \advance\@tempcnta -\sixt@@n\relax
             \fi
           \fi
           }%
       \@tempcntb \csname ftype@\@captype \endcsname
       \multiply \@tempcntb \@xxxii
       \advance \@tempcnta \@tempcntb
       \global \count\@currbox \@tempcnta
       }%
    \@fltovf
  \fi
  \global \setbox\@currbox
    \color@vbox
      \normalcolor
      \vbox \bgroup
        \hsize\columnwidth
        \@parboxrestore
        \@floatboxreset
}

\makeatother
\begin{document}

\begin{figure}
\fbox{x}
\caption{zzz}
\end{figure}

\end{document}

相关内容