1 .\" A package for managing floating objects
3 .\" The package provides the following macros:
6 .\" Starts a floating object. The argument specifies its type:
7 .\" 'f' for simple floating objects, 't' for floating objects
8 .\" that should be printed at page top, and 'd' for non-floating
12 .\" Ends a floating object.
15 .\" This macro should be called at the beginning of each page,
16 .\" after printing page header.
19 .\" This macro should be called when the document ends, to
20 .\" output all queued floating objects.
23 .\" This macro is called by this package just before printing a
24 .\" floating object. It may be redefined if necessary.
27 .\" This macro is called by this package just after printing
28 .\" a floating object. It may be redefined if necessary.
30 .nr keepi 0 \" current queued object index
31 .nr keepn 0 \" the last queued object
35 . if 'd'\\$1' .nr keeptype 0
36 . if 't'\\$1' .nr keeptype 2
46 . if \\n[keepprint]=0 \{\
61 . ie \\n[keeptype]=0 \{\
62 . if \\n(.t<=\\n(dn .bp
63 . keepprint keepdiv \}
64 . el .ie (\\n[keeptype]=1)&(\\n[keepi]=\\n[keepn])&(\\n(.t>\\n(dn) \{\
65 . keepprint keepdiv \}
67 . nr keep\\n[keepn].top \\n[keeptype]-1
68 . nr keep\\n[keepn].len \\n(dn
69 . rn keepdiv keep\\n[keepn].div
74 . if (\\n[keepi]<\\n[keepn])&(\\n[keep\\n[keepi].len]<\\n(.t) \{\
75 . keepprint keep\\n[keepi].div
77 . if (\\n[keepi]<\\n[keepn])&(1-\\n[keep\\n[keepi].top]) .keepbop
82 . if \\n[keepi]<\\n[keepn] \{\