diff options
author | Hans Hagen <pragma@wxs.nl> | 2018-01-12 08:12:50 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2018-01-12 08:12:50 +0100 |
commit | d0edf3e90e8922d9c672f24ecdc5d44fe2716f31 (patch) | |
tree | 5b618b87aa5078a8c744c94bbf058d69cd7111b2 /tex/context/base/mkiv/strc-flt.mkvi | |
parent | 409a95f63883bd3b91699d39645e39a8a761457c (diff) | |
download | context-d0edf3e90e8922d9c672f24ecdc5d44fe2716f31.tar.gz |
2018-01-08 23:11:00
Diffstat (limited to 'tex/context/base/mkiv/strc-flt.mkvi')
-rw-r--r-- | tex/context/base/mkiv/strc-flt.mkvi | 102 |
1 files changed, 60 insertions, 42 deletions
diff --git a/tex/context/base/mkiv/strc-flt.mkvi b/tex/context/base/mkiv/strc-flt.mkvi index 45d395f21..4f7d93645 100644 --- a/tex/context/base/mkiv/strc-flt.mkvi +++ b/tex/context/base/mkiv/strc-flt.mkvi @@ -141,6 +141,8 @@ \c!spaceafter=\v!big, \c!sidespacebefore=\rootfloatparameter\c!spacebefore, \c!sidespaceafter=\rootfloatparameter\c!spaceafter, + \c!spacebeforeside=, % extra, not part of, can be used to add whitespace before text + \c!spaceafterside=, % idem \c!sidealign=\v!normal, \c!textmethod=\ifgridsnapping2\else0\fi, % 0=raw 1=safe (.99pg) 2=tight (-1pt) % THIS WILL CHANGE \c!sidemethod=\ifgridsnapping2\else1\fi, % 0=raw 1=safe (.99pg) 2=tight (-1pt) % THIS WILL CHANGE @@ -737,6 +739,25 @@ % nicer is a bunch of states and one loop that sets those states +\newdimen\d_strc_floats_margin +\newdimen\d_strc_floats_top +\newdimen\d_strc_floats_bottom +%newdimen\d_strc_floats_top_side +%newdimen\d_strc_floats_bottom_side + +\def\strc_floats_calculate_skip#target#skip% + {\begingroup + \edef\askedfloatskip{\rootfloatparameter#skip}% + \ifx\askedfloatskip\empty + \global#target\zeropoint + \else\ifx\askedfloatskip\v!none + \global#target\zeropoint + \else + \setbox\scratchbox\vbox{\whitespace\blank[\askedfloatskip]}% todo: move whitespace inside blank + \global#target\ht\scratchbox + \fi\fi + \endgroup} + \def\strc_floats_analyze_variables_two {\ifinsidecolumns \global\setfalse\c_strc_floats_par_float @@ -745,13 +766,36 @@ {\global\settrue \c_strc_floats_par_float}% {\global\setfalse\c_strc_floats_par_float}% \fi - \global\d_page_sides_shift \zeropoint - \global\d_page_sides_maximum \zeropoint - \global\c_page_sides_method \floatparameter\c!sidemethod - \global\c_page_one_float_method \floatparameter\c!textmethod - \global\c_page_sides_align \zerocount - \global\c_strc_floats_rotation \zerocount - \strc_floats_calculate_skips + % variable initializations + \global\d_page_sides_shift \zeropoint + \global\d_page_sides_maximum \zeropoint + \global\c_page_sides_align \zerocount + \global\c_strc_floats_rotation \zerocount + \global\d_strc_floats_margin \rootfloatparameter\c!margin + \global\d_page_sides_leftshift \floatparameter \c!leftmargindistance + \global\d_page_sides_rightshift \floatparameter \c!rightmargindistance + \global\d_page_sides_topoffset \floatparameter \c!topoffset + \global\d_page_sides_bottomoffset\floatparameter \c!bottomoffset + \global\c_page_sides_method \floatparameter \c!sidemethod + \global\c_page_one_float_method \floatparameter \c!textmethod + \global\c_page_floats_n_of_top \rootfloatparameter\c!ntop + \global\c_page_floats_n_of_bottom\rootfloatparameter\c!nbottom + \ifconditional\c_strc_floats_par_float + \global\d_strc_floats_top \zeropoint + \global\d_strc_floats_bottom \zeropoint + %\strc_floats_calculate_skip\d_strc_floats_top_side \c!spacebeforeside + %\strc_floats_calculate_skip\d_strc_floats_bottom_side\c!spaceafterside + \strc_floats_calculate_skip\d_page_sides_topskip \c!sidespacebefore + \strc_floats_calculate_skip\d_page_sides_bottomskip \c!sidespaceafter + \else + \global\d_page_sides_topskip \zeropoint + \global\d_page_sides_bottomskip \zeropoint + %\global\d_strc_floats_top_side \zeropoint + %\global\d_strc_floats_bottom_side\zeropoint + \strc_floats_calculate_skip\d_strc_floats_top \c!spacebefore + \strc_floats_calculate_skip\d_strc_floats_bottom\c!spaceafter + \fi + % keyword handling \ifconditional\c_strc_floats_par_float \processaction [\floatparameter\c!sidealign] @@ -769,12 +813,9 @@ \fi \doifinset\v!high\floatlocation{\global\d_page_sides_topskip \zeropoint}% \doifinset\v!low \floatlocation{\global\d_page_sides_bottomskip\zeropoint}% - \doifinset\v!fit \floatlocation - {\global\d_page_sides_topskip \zeropoint - \global\d_page_sides_bottomskip\zeropoint - \global\d_strc_floats_margin \zeropoint}% - \global\advance\d_page_sides_topskip \floatparameter\c!topoffset - \global\advance\d_page_sides_bottomskip\floatparameter\c!bottomoffset + \doifinset\v!fit \floatlocation{\global\d_page_sides_topskip \zeropoint + \global\d_page_sides_bottomskip\zeropoint + \global\d_strc_floats_margin \zeropoint}% \else \processallactionsinset [\floatlocation]% @@ -799,7 +840,12 @@ \letfloatcaptionparameter\c!rightmargin\effectiverightskip}% \ifemptyfloatcaption \ifnofloatnumber \global\nofloatcaptiontrue - \fi \fi} + \fi \fi + % more variable initializations + \ifconditional\c_strc_floats_par_float + \global\advance\d_page_sides_topskip \d_page_sides_topoffset + \global\advance\d_page_sides_bottomskip\d_page_sides_bottomoffset + \fi} % documenteren in details @@ -1164,34 +1210,6 @@ \unexpanded\def\placefloats {\page_otr_command_flush_floats} -\newdimen\d_strc_floats_margin -\newdimen\d_strc_floats_top -\newdimen\d_strc_floats_bottom - -\def\strc_floats_calculate_skip#target#skip% - {\edef\askedfloatskip{#skip}% - \ifx\askedfloatskip\empty - \global#target\zeropoint - \else\ifx\askedfloatskip\v!none - \global#target\zeropoint - \else - \setbox\scratchbox\vbox{\whitespace\blank[\askedfloatskip]}% todo: move whitespace inside blank - \global#target\ht\scratchbox - \fi\fi} - -\def\strc_floats_calculate_skips - {\begingroup - \strc_floats_calculate_skip\d_strc_floats_top {\rootfloatparameter\c!spacebefore }% - \strc_floats_calculate_skip\d_strc_floats_bottom {\rootfloatparameter\c!spaceafter }% - \strc_floats_calculate_skip\d_page_sides_topskip {\rootfloatparameter\c!sidespacebefore}% - \strc_floats_calculate_skip\d_page_sides_bottomskip{\rootfloatparameter\c!sidespaceafter }% - \global\d_strc_floats_margin \rootfloatparameter\c!margin - \global\d_page_sides_leftshift \floatparameter \c!leftmargindistance - \global\d_page_sides_rightshift \floatparameter \c!rightmargindistance - \global\c_page_floats_n_of_top \rootfloatparameter\c!ntop - \global\c_page_floats_n_of_bottom\rootfloatparameter\c!nbottom - \endgroup} - \unexpanded\def\betweenfloatblanko % assumes that spaceafter is present {\blank[\rootfloatparameter\c!spacebefore]} % or v!back,.... |