使用{ieee}[2000/01/11].cls(通过使用 LaTeX2e 格式化 IEEE 论文),我对以下最小代码有疑问(构建良好\documentclass{article}
- 用于pdflatex
编译):
\documentclass[%
%draft,
%submission,
%compressed,
%final,
%
%technote,
%internal,
%submitted,
%inpress,
%reprint,
%
%titlepage,
notitlepage,
%anonymous,
narroweqnarray,
inline,
%twoside,
]{ieee}
% \documentclass{article}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{cite}
\usepackage{caption}
\begin{document}
Test ...
\begin{figure}
\end{figure}
\end{document}
它失败了:
! Too many }'s.
\color@endbox ->\color@endgroup \egroup
l.33 \end{figure}
? X
No pages of output.
Transcript written on test.log.
此错误在LaTeX 社区 • 查看主题 - 颜色包与图形不兼容?确实如此,IEEE 分类目录确实定义了\@xfloat
-但我正在尝试以下操作:
\makeatletter
% \undef\@xfloat % no work :)
% http://joonidea.blogspot.com/2010/04/how-to-undefine-command-in-latex.html
% \let\@xfloat\@undefined % undefine \@xfloat
% no work, fails with:
%% ! Undefined control sequence.
%% \@xfloat #1[#2]->\caption@ORI@xfloat
%% {#1}[#2]\caption@settype {#1}
%% l.49 \end
%% {figure}
% http://www.latex-community.org/forum/viewtopic.php?f=4&t=507&p=1978
% the below has no effect:
% \let\latex@xfloat=\@xfloat
% \def\@xfloat #1[#2]{%
% \latex@xfloat #1[#2]%
% \def \baselinestretch {1}\@normalsize %% GT: need \@normalsize?
% \normalsize
% }
\makeatother
...但显然无法让它工作。
我是否可以以某种方式使用\figure
此类{ieee}[2000/01/11]
,以便我在 tex 文件中覆盖其行为,而不是破解 .cls 文件?
非常感谢您的任何回答,
干杯!
答案1
我尝试过
\makeatletter
\let\kernel@xfloat\@xfloat
\makeatother
\documentclass[...]{ieee}
\makeatletter
\let\@xfloat\kernel@xfloat
\def\@floatboxreset{%
\reset@font
\linespread{1}\normalsize
\@setminipage}
\makeatother
结果似乎正是我们想要的。我认为问题在于一个非常古老的定义,\@xfloat
它与 LaTeX 通常处理浮点数的方式不兼容。
正如您所发现的,使用基于 LaTeX 2.09 文档样式的类以及更为现代的软件包会带来不便。