2 %% This is file `float.sty',
3 %% generated with the docstrip utility.
5 %% The original source files were:
7 %% float.dtx (with options: `package')
10 %% This file is a stripped version of `float.dtx',
11 %% copyright (c) 1991-2000 Anselm Lingnau
12 %% (lingnau@tm.informatik.uni-frankfurt.de)
14 %% This file may only be distributed together with the corresponding
15 %% `float.dtx' file. See `float.dtx' for distribution conditions on
16 %% the original source.
18 %% Package `float' to use with LaTeX 2e
19 %% Copyright (C) 1991-2000 Anselm Lingnau, all rights reserved
21 \NeedsTeXFormat{LaTeX2e}[1994/12/01]
22 \ProvidesPackage{float}
23 [2000/03/09 v1.2e Float enhancements (AL)]
24 \newcounter{float@type}
25 \@ifundefined{c@figure}%
26 {\setcounter{float@type}{1}}%
27 {\setcounter{float@type}{4}}
28 \newcommand\floatstyle[1]{\@ifundefined{fs@#1}%
30 {\def\float@style{#1}}}
31 \newcommand\float@error[1]{\PackageError{float}{%
32 Unknown float style `#1'
34 \newcommand\floatname[2]{\@namedef{fname@#1}{#2}}
35 \newcommand\floatplacement[2]{\@namedef{fps@#1}{#2}}
36 \newcommand\restylefloat[1]{\expandafter\edef\csname
37 fst@#1\endcsname{\expandafter\noexpand\csname
38 fs@\float@style\endcsname}%
39 \@namedef{#1}{\bgroup\@nameuse{fst@#1}\@float{#1}}%
40 \@namedef{#1*}{\bgroup\@nameuse{fst@#1}\@dblfloat{#1}}%
41 \expandafter\let\csname end#1\endcsname\float@end
42 \expandafter\let\csname end#1*\endcsname\float@dblend}
43 \newcommand\newfloat[3]{\@namedef{ext@#1}{#3}
44 \floatplacement{#1}{#2}%
45 \@ifundefined{fname@#1}{\floatname{#1}{#1}}{}
46 \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}%
47 \addtocounter{float@type}{\value{float@type}}
49 \expandafter\edef\csname fnum@#1\endcsname%
50 {\expandafter\noexpand\csname fname@#1\endcsname{}
51 \expandafter\noexpand\csname the#1\endcsname}
52 \@ifnextchar[{\@xnewfloat{#1}}%
53 {\@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}%
55 \def\@xnewfloat#1[#2]{\@ifundefined{c@#1}{\newcounter{#1}[#2]%
56 \expandafter\edef\csname the#1\endcsname{%
57 \expandafter\noexpand\csname
58 the#2\endcsname.\noexpand\arabic{#1}}}%
59 {\PackageWarning{float}{Can't redefine counter variable for #1.}}}
61 \def\@xfloat#1[{\@ifnextchar{H}{\@HHfloat{#1}[}{\@Hxfloat{#1}[}}
65 \expandafter\let\csname end#1\endcsname\float@endH
66 \let\@currbox\float@box
67 \def\@captype{#1}\setbox\@floatcapt=\vbox{}%
68 \expandafter\ifx\csname fst@#1\endcsname\relax
69 \@flstylefalse\else\@flstyletrue\fi
70 \setbox\@currbox\color@vbox\normalcolor
71 \vbox\bgroup \hsize\columnwidth \@parboxrestore
72 \reset@font \normalsize \@setnobreak \@setminipage
74 \newcommand\float@makebox{%
75 \vbox{\hsize\columnwidth \@parboxrestore
76 \@fs@pre\@fs@iftopcapt
77 \ifvbox\@floatcapt\unvbox\@floatcapt\par\@fs@mid\fi
80 \ifvbox\@floatcapt\par\@fs@mid\unvbox\@floatcapt\fi
81 \fi\par\@fs@post\vskip\z@}}
82 \newcommand\float@end{\global\@minipagefalse \outer@nobreak
84 \global\setbox\@currbox\float@makebox
85 \ifnum\@floatpenalty <\z@ \@largefloatcheck
86 \@cons\@currlist\@currbox
87 \ifnum\@floatpenalty < -\@Mii
88 \penalty -\@Miv \@tempdima\prevdepth
89 \vbox{}\prevdepth \@tempdima \penalty\@floatpenalty
90 \else \vadjust{\penalty -\@Miv
91 \vbox{}\penalty\@floatpenalty}\@Esphack
93 \newcommand\float@endH{\par\vskip\z@skip
94 \global\@minipagefalse \outer@nobreak
95 \egroup \color@endbox \vskip\intextsep
96 \if@flstyle\float@makebox\egroup\else\box\@currbox\fi
97 \vskip\intextsep\relax}
98 \newcommand\float@dblend{\if@twocolumn
99 \par\vskip\z@\egroup \outer@nobreak \color@endbox
100 \global\setbox\@currbox\float@makebox
101 \ifnum\@floatpenalty <\z@ \@largefloatcheck
102 \@cons\@dbldeferlist\@currbox\fi
103 \ifnum \@floatpenalty =-\@Mii \@Esphack\fi\egroup\else\float@end\fi}
104 \newsavebox\@floatcapt
105 \renewcommand\caption{\refstepcounter\@captype
106 \expandafter\ifx\csname fst@\@captype\endcsname\relax
108 \else\let\@tempf\float@caption\fi \@dblarg{\@tempf\@captype}}
109 \long\def\float@caption#1[#2]#3{\addcontentsline{\@nameuse{ext@#1}}{#1}%
110 {\protect\numberline{\@nameuse{the#1}}{\ignorespaces #2}}
111 \global\setbox\@floatcapt\vbox\bgroup\@parboxrestore
112 \normalsize\@fs@capt{\@nameuse{fnum@#1}}{\ignorespaces #3}%
113 \@ifnextchar[{\float@ccon}{\egroup}}
114 \long\def\float@ccon[#1]{#1\par\egroup}
115 \newcommand\listof[2]{%
116 \@ifundefined{ext@#1}{\float@error{#1}}{%
117 \@ifundefined{chapter}{\def\@tempa{\section*}}%
118 {\def\@tempa{\chapter*}}%
119 \@tempa{#2\@mkboth{\uppercase{#2}}{\uppercase{#2}}}%
120 \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
121 \@starttoc{\@nameuse{ext@#1}}}}
122 \newcommand\floatc@plain[2]{\setbox\@tempboxa\hbox{{\@fs@cfont #1:} #2}%
123 \ifdim\wd\@tempboxa>\hsize {\@fs@cfont #1:} #2\par
124 \else\hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi}
125 \newcommand\fs@plain{\def\@fs@cfont{\rmfamily}\let\@fs@capt\floatc@plain
126 \def\@fs@pre{}\def\@fs@post{}\def\@fs@mid{\vspace{10pt}\relax}%
127 \let\@fs@iftopcapt\iffalse}
128 \newcommand\floatc@ruled[2]{{\@fs@cfont #1} #2\par}
129 \newcommand\fs@ruled{\def\@fs@cfont{\bfseries}\let\@fs@capt\floatc@ruled
130 \def\@fs@pre{\hrule height.8pt depth0pt \kern2pt}%
131 \def\@fs@post{\kern2pt\hrule\relax}%
132 \def\@fs@mid{\kern2pt\hrule\kern2pt}%
133 \let\@fs@iftopcapt\iftrue}
134 \newcommand\fs@boxed{\def\@fs@cfont{\bfseries}\let\@fs@capt\floatc@plain
135 \def\@fs@pre{\setbox\@currbox\vbox{\hbadness10000
136 \moveleft3.4pt\vbox{\advance\hsize by6.8pt
137 \hrule \hbox to\hsize{\vrule\kern3pt
138 \vbox{\kern3pt\box\@currbox\kern3pt}\kern3pt\vrule}\hrule}}}%
139 \def\@fs@mid{\kern2pt}%
140 \def\@fs@post{}\let\@fs@iftopcapt\iffalse}
144 %% End of file `float.sty'.