summaryrefslogtreecommitdiff
path: root/tex/context/base/strc-flt.mkvi
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/strc-flt.mkvi')
-rw-r--r--tex/context/base/strc-flt.mkvi74
1 files changed, 38 insertions, 36 deletions
diff --git a/tex/context/base/strc-flt.mkvi b/tex/context/base/strc-flt.mkvi
index 000b74831..06fd02bdc 100644
--- a/tex/context/base/strc-flt.mkvi
+++ b/tex/context/base/strc-flt.mkvi
@@ -595,7 +595,7 @@
\splitfloat{\strc_floats_place_next_box_normal}}
\unexpanded\def\strc_floats_place_next_box_normal
- {\ifsomefloatwaiting
+ {\ifconditional\c_page_floats_some_waiting
% this was \checkwaitingfloats spread all over
\doifinsetelse\v!always\floatlocation
{\showmessage\m!floatblocks5\empty}
@@ -703,19 +703,15 @@
% documenteren in details
\def\strc_floats_analyze_variables_one
- {\doifelse{\floatparameter\c!local}\v!yes % fout keyword
- \globalcenterfloatboxtrue
- \globalcenterfloatboxfalse
- \ifglobalcenterfloatbox
- \localcenterfloatboxtrue
+ {\doifelse{\floatparameter\c!local}\v!yes\settrue\setfalse\c_page_floats_center_box_global % fout keyword
+ \ifconditional\c_page_floats_center_box_global
+ \settrue\c_page_floats_center_box_local
\else
- \doifinsetelse\v!local\floatlocation
- \localcenterfloatboxtrue
- \localcenterfloatboxfalse
+ \doifinsetelse\v!local\floatlocation\settrue\setfalse\c_page_floats_center_box_local
\fi
\doifnotcommon{\v!always,\v!here,\v!force}\floatlocation % ! ! ! ! ! !
- {\globalcenterfloatboxfalse
- \localcenterfloatboxfalse}}
+ {\setfalse\c_page_floats_center_box_global
+ \setfalse\c_page_floats_center_box_local}}
\let\naturalfloatheight\!!zeropoint
\let\naturalfloatwidth \!!zeropoint
@@ -817,7 +813,7 @@
\global\insidefloatfalse}
% \def\strc_floats_set_local_hsize
-% {\iflocalcenterfloatbox
+% {\ifconditional\c_page_floats_center_box_local
% \seteffectivehsize
% \hsize\localhsize
% \else
@@ -830,7 +826,7 @@
\newdimen\availablefloatheight
\def\strc_floats_set_local_hsize
- {\iflocalcenterfloatbox
+ {\ifconditional\c_page_floats_center_box_local
% also available check here?
\seteffectivehsize
\hsize\localhsize
@@ -1171,7 +1167,7 @@
\dostoptagged
\blank[\rootfloatparameter\c!spaceafter]%
\strc_floats_end_text_group
- \doinsertfloatinfo}
+ \page_floats_report_total}
\def\borderedfloatbox
{\begingroup
@@ -1756,6 +1752,8 @@
% test \placefigure{\input zapf\relax}{\externalfigure[cow.pdf][frame=on,grid=depth]} test \page
% \stoptext
+% This might move to page-flt:
+
\newif\ifpostponecolumnfloats \postponecolumnfloatsfalse % don't change
\setnewconstant\postcenterfloatmethod\plusone
@@ -1774,9 +1772,9 @@
\global\setbox\floatbox\hbox to \scratchdimen
% {\hfill\box\floatbox\hfill}} % geen \hss, gaat mis in kolommen !
% {\hss \box\floatbox\hss }} % wel \hss, anders mis in colset
- {\ifglobalcenterfloatbox
+ {\ifconditional\c_page_floats_center_box_global
\donetrue
- \else\iflocalcenterfloatbox
+ \else\ifconditional\c_page_floats_center_box_local
\donetrue
\else
\donefalse
@@ -1909,7 +1907,7 @@
{\ctxcommand{analysefloatmethod("#1")}}
\def\somesomewherefloat[#1]%
- {\dofloatssavesomewherefloat\s!somewhere{#1}}
+ {\page_floats_save_somewhere_float\s!somewhere{#1}}
\def\strc_floats_get_box
{\ifvisible
@@ -2072,45 +2070,49 @@
%D Local floats:
-\def\setuplocalfloats
- {\getparameters[\??lf]}
+\installcorenamespace{localfloats}
+\installcorenamespace{localfloatstack}
+
+\installsetuponlycommandhandler \??localfloats {localfloats}
\setuplocalfloats
[%\c!before=\blank,
%\c!after=\blank,
\c!inbetween=\blank]
-\initializeboxstack{localfloats}
+\initializeboxstack\??localfloatstack
-\newcounter\noflocalfloats
+\newcounter\c_strc_localfloats_n
-\def\resetlocalfloats
- {\doglobal\newcounter\noflocalfloats
- \initializeboxstack{localfloats}}
+\unexpanded\def\resetlocalfloats
+ {\global\c_strc_localfloats_n\zerocount
+ \initializeboxstack\??localfloatstack}
-\def\somelocalfloat
- {\doglobal\increment\noflocalfloats
- \savebox{localfloats}{\noflocalfloats}{\box\floatbox}}
+\unexpanded\def\somelocalfloat
+ {\global\advance\c_strc_localfloats_n\plusone
+ \savebox\??localfloatstack{\number\c_strc_localfloats_n}{\box\floatbox}}
-\def\getlocalfloats
- {\dorecurse\noflocalfloats
+\unexpanded\def\getlocalfloats
+ {\dorecurse\c_strc_localfloats_n
{\ifnum\recurselevel=\plusone % 1\relax
- \getvalue{\??lf\c!before}%
+ \directlocalfloatsparameter\c!before
\else
- \getvalue{\??lf\c!inbetween}%
+ \directlocalfloatsparameter\c!inbetween
\fi
- \dontleavehmode\hbox{\foundbox{localfloats}\recurselevel}%
- \ifnum\recurselevel=\noflocalfloats\relax
- \getvalue{\??lf\c!after}%
+ \dontleavehmode\hbox{\foundbox\??localfloatstack\recurselevel}%
+ \ifnum\recurselevel=\c_strc_localfloats_n\relax
+ \directlocalfloatsparameter\c!after
\fi}}
\def\flushlocalfloats
{\getlocalfloats
\resetlocalfloats}
-\unexpanded\def\getlocalfloat#1{\expanded{\foundbox{localfloats}{\number#1}}}
+\unexpanded\def\getlocalfloat#1%
+ {\normalexpanded{\foundbox{\??localfloatstack}{\number#1}}}
-\def\forcelocalfloats{\let\forcedfloatmethod\v!local}
+\unexpanded\def\forcelocalfloats
+ {\let\forcedfloatmethod\v!local}
\installfloatmethod \s!singlecolumn \v!local \somelocalfloat
\installfloatmethod \s!multicolumn \v!local \somelocalfloat