我需要使用自定义的文档类来修改xfloat ...
\input{report.cls}
% Single Space Figures, Tables, and Footnotes
% Redefine the macro used for floats (including figures and tables) so
% that single spacing is used. (Note \def\figure{\@float{figure}set
% single spacing} doesn't work because figure has an optional argument)
\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@
% leave captions indented, I hope
% \hsize\columnwidth
\@parboxrestore
}
但是,在使用float ...
创建文档时\documentclass{customclass}
\begin{document}
\begin{figure}
TEST
\end{figure}
\end{document}
我收到了错误......
失控的争论? tbp] TEST \ end {figure}!段落之前结束 \ @xfloat完成了。 \ par l.7
答案 0 :(得分:0)
看来断线造成了问题。将整个块放在同一行的文档类中可以解决问题。
答案 1 :(得分:0)
这里有两件事:
\def
的参数文字非常特别,如果更改它应该小心。例如,
\def\abc#1[#2] {...}
需要\abc{..}[..]
中的尾随空格。
\def
(LaTeX的\newcommand*
)在其定义中不允许段落(空行或显式\par
)。为此,您需要使用\long\def
(LaTeX的\newcommand
)。
在大多数情况下,使用补丁程序很容易对宏进行小的更改(和添加)。此类修补程序由etoolbox
,xpatch
或regexpatch
提供。