*** empty log message ***
[m17n/m17n-docs.git] / styles / float.sty
1 %%
2 %% This is file `float.sty',
3 %% generated with the docstrip utility.
4 %%
5 %% The original source files were:
6 %%
7 %% float.dtx  (with options: `package')
8 %% 
9 %% IMPORTANT NOTICE:
10 %% This file is a stripped version of `float.dtx',
11 %% copyright (c) 1991-2000 Anselm Lingnau
12 %% (lingnau@tm.informatik.uni-frankfurt.de)
13 %% 
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.
17 %% 
18 %% Package `float' to use with LaTeX 2e
19 %% Copyright (C) 1991-2000 Anselm Lingnau, all rights reserved
20 %%
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}%
29   {\float@error{#1}}%
30   {\def\float@style{#1}}}
31 \newcommand\float@error[1]{\PackageError{float}{%
32   Unknown float style `#1'
33 }{\@eha}}
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}}
48   \restylefloat{#1}%
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}}}%
54       {}}}
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.}}}
60 \let\@Hxfloat\@xfloat
61 \def\@xfloat#1[{\@ifnextchar{H}{\@HHfloat{#1}[}{\@Hxfloat{#1}[}}
62 \newsavebox\float@box
63 \newif\if@flstyle
64 \def\@HHfloat#1[H]{%
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
73   \ignorespaces}
74 \newcommand\float@makebox{%
75   \vbox{\hsize\columnwidth \@parboxrestore
76     \@fs@pre\@fs@iftopcapt
77       \ifvbox\@floatcapt\unvbox\@floatcapt\par\@fs@mid\fi
78       \unvbox\@currbox
79     \else\unvbox\@currbox
80       \ifvbox\@floatcapt\par\@fs@mid\unvbox\@floatcapt\fi
81     \fi\par\@fs@post\vskip\z@}}
82 \newcommand\float@end{\global\@minipagefalse \outer@nobreak
83   \egroup \color@endbox
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
92      \fi\fi\egroup}
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
107       \let\@tempf\@caption
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}
141 \floatstyle{plain}
142 \endinput
143 %%
144 %% End of file `float.sty'.