我正在准备一篇论文。除其他外,我正在使用基于UDO 论文由 Jose A. Flores 修改,2011 年 11 月。不幸的是,我找不到原始版本。包的一部分似乎重新定义了定义float
,我将错误归结为以下代码。我创建了一个小样式文件:(killer.sty),其中包含:
\def\@xfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
\@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner
\@parmoderr\@floatpenalty\z@
\else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
\multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
\@tfor \@tempa :=#2\do
{\if\@tempa h\advance\@tempcnta \@ne\fi
\if\@tempa t\advance\@tempcnta \tw@\fi
\if\@tempa b\advance\@tempcnta 4\relax\fi
\if\@tempa p\advance\@tempcnta 8\relax\fi
}\global\count\@currbox\@tempcnta}\@fltovf\fi
\global\setbox\@currbox\vbox\bgroup
\def\baselinestretch{1}\@normalsize
\boxmaxdepth\z@
\hsize\columnwidth \@parboxrestore
}
实际上,我没有 TeX 编程经验,但从我的角度来看,括号和if
-fi
是可以的。在最简单的情况下,它可以编译(pdflatex)并且看起来没问题。color
但是,如果我放入包,它会产生以下错误消息:
mini.tex(16): Error: Too many }'s.
mini.tex(16): Error: LaTeX Error: \begin{document} ended by \end{figure}.
mini.tex(16): Error: Extra \endgroup.
一个最小的非工作示例如下所示(放置您的 pdf 图):迷你特克斯
\documentclass[12pt,a4paper,twoside,openright]{report} %
%====
\usepackage{graphicx}
\usepackage{killer}
\usepackage{color}%this works if this line is commented
%====
\begin{document}
\begin{figure}[H]
\centering\includegraphics[width=1\columnwidth]{your.pdf}
\caption[]{Schematic representation}
\label{fig:yourFig}
\end{figure}
\end{document}
为什么这与 不兼容color
。我期望很多,但事实并非如此。
(Win7 64,SP1 上的 MikTex 2.9)
答案1
这个问题看起来与当我更改文档类别时 TikZ 出现问题
那里给出的解决方案也适用于您的设置:
\documentclass[12pt,a4paper,twoside,openright]{report} %
%====
\usepackage{graphicx}
% save a copy of \@xfloat
\makeatletter\let\latex@xfloat\@xfloat\makeatother
\usepackage{killer}
% redefine \@xfloat to have the intended behavior
\usepackage{etoolbox}
\makeatletter
\let\@xfloat\latex@xfloat
\apptocmd{\@xfloat}{\linespread{1}\normalsize}{}{}
\makeatother
\usepackage{color}%this works if this line is commented
%====
\begin{document}
\begin{figure}
\centering\includegraphics[width=1\columnwidth]{your.pdf}
\caption[]{Schematic representation}
\label{fig:yourFig}
\end{figure}
\end{document}
(不要使用[H]
,如果你使用了你会后悔的。)
如果错误代码在类中(我称之为killer
),则执行
% save a copy of \@xfloat
\makeatletter\let\latex@xfloat\@xfloat\makeatother
\documentclass{killer}
\usepackage{graphicx}
% redefine \@xfloat to have the intended behavior
\usepackage{etoolbox}
\makeatletter
\let\@xfloat\latex@xfloat
\apptocmd{\@xfloat}{\linespread{1}\normalsize}{}{}
\makeatother
\usepackage{color}%this works if this line is commented
\begin{document}
\begin{figure}
\centering\includegraphics[width=1\columnwidth]{your.pdf}
\caption[]{Schematic representation}
\label{fig:yourFig}
\end{figure}
\end{document}