diff options
author | Marius <mariausol@gmail.com> | 2010-07-04 15:35:28 +0300 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2010-07-04 15:35:28 +0300 |
commit | b0f61c557fa27bddb54ad085c9dc9beefc851a30 (patch) | |
tree | a69dff7e9ee8d0022554603e8715fd482d4ac01c /tex/context/base/strc-flt.mkii | |
parent | 85b7bc695629926641c7cb752fd478adfdf374f3 (diff) | |
download | context-b0f61c557fa27bddb54ad085c9dc9beefc851a30.tar.gz |
beta 2010-06-23 12:49
Diffstat (limited to 'tex/context/base/strc-flt.mkii')
-rw-r--r-- | tex/context/base/strc-flt.mkii | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/tex/context/base/strc-flt.mkii b/tex/context/base/strc-flt.mkii index e64a439ec..62d02aa2a 100644 --- a/tex/context/base/strc-flt.mkii +++ b/tex/context/base/strc-flt.mkii @@ -2139,5 +2139,49 @@ \def\somerightpagefloat{\placesomerightpagefloat} \def\somefacefloat {\placesomefacefloat} \def\someslotfloat {\placesomeslotfloat} - + +%D Local floats. + +\def\setuplocalfloats + {\getparameters[\??lf]} + +\setuplocalfloats + [%\c!before=\blank, + %\c!after=\blank, + \c!inbetween=\blank] + +\installfloathandler \v!local \somelocalfloat + +\initializeboxstack{localfloats} + +\newcounter\noflocalfloats + +\def\resetlocalfloats + {\doglobal\newcounter\noflocalfloats + \initializeboxstack{localfloats}} + +\def\somelocalfloat[#1]% + {\doglobal\increment\noflocalfloats + \savebox{localfloats}{\noflocalfloats}{\box\floatbox}} + +\def\getlocalfloats + {\dorecurse\noflocalfloats + {\ifnum\recurselevel=\plusone % 1\relax + \getvalue{\??lf\c!before}% + \else + \getvalue{\??lf\c!inbetween}% + \fi + \dontleavehmode\hbox{\foundbox{localfloats}\recurselevel}% + \ifnum\recurselevel=\noflocalfloats\relax + \getvalue{\??lf\c!after}% + \fi}} + +\def\flushlocalfloats + {\getlocalfloats + \resetlocalfloats} + +\def\getlocalfloat#1{\expanded{\foundbox{localfloats}{\number#1}}} + +\def\forcelocalfloats{\let\forcedfloatmethod\v!local} + \protect \endinput |